我发现的最接近的是这个命令ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
,它将视频从顶部裁剪 20px,从底部裁剪 20px。
仅从顶部裁剪的命令是什么?我想不通。
我不知道为什么我的代码不是线程安全的,因为它输出了一些不一致的结果。
value 48
value 49
value 50
value 54
value 51
value 52
value 53
Run Code Online (Sandbox Code Playgroud)
我对原子对象的理解是,它防止其中间状态暴露出来,因此当一个线程正在读取它而另一线程正在写入它时,它应该解决该问题。
我曾经认为我可以使用没有互斥量的std :: atomic来解决多线程计数器增量问题,但情况并非如此。
我可能误解了原子对象是什么,有人可以解释吗?
value 48
value 49
value 50
value 54
value 51
value 52
value 53
Run Code Online (Sandbox Code Playgroud) 这是我试图让它工作的片段
#include <functional>
#include <stdio.h>
#include <utility>
void
bar(std::function<void(int* a)>&& aFunction)
{}
void
foo(std::function<void(int* a)>&& aFunction)
{
bar(std::forward(aFunction));
}
int
main()
{
int b = 123;
foo([b](int*) { printf("Calling \n"); });
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用 clang++ 编译给了我
? /tmp clang++ main.cpp -g -o main
main.cpp:12:7: error: no matching function for call to 'forward'
bar(std::forward(aFunction));
^~~~~~~~~~~~
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/move.h:76:5: note: candidate template ignored: couldn't infer template argument '_Tp'
forward(typename std::remove_reference<_Tp>::type& __t) noexcept
^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/move.h:87:5: note: candidate template ignored: couldn't infer template argument '_Tp' …
Run Code Online (Sandbox Code Playgroud)