小编Shu*_*eng的帖子

ffmpeg 仅从顶部裁剪像素

我发现的最接近的是这个命令ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4 ,它将视频从顶部裁剪 20px,从底部裁剪 20px。

仅从顶部裁剪的命令是什么?我想不通。

ffmpeg

5
推荐指数
1
解决办法
3634
查看次数

为什么我的std :: atomic <int>变量不是线程安全的?

我不知道为什么我的代码不是线程安全的,因为它输出了一些不一致的结果。

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)

c++ atomic thread-safety race-condition stdatomic

1
推荐指数
2
解决办法
117
查看次数

我可以在不知道捕获的情况下完美转发 lambda 函数吗?

这是我试图让它工作的片段

#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)

c++

1
推荐指数
1
解决办法
64
查看次数

标签 统计

c++ ×2

atomic ×1

ffmpeg ×1

race-condition ×1

stdatomic ×1

thread-safety ×1