如何在IQualProp::get_AvgFrameRate中重置帧速率?
How to reset a frame rate in IQualProp::get_AvgFrameRate?
我使用 IQualProp::get_AvgFrameRate 方法从 EVR 渲染器获得平均帧速率。它运行良好,但是在 DirectShow 图形中调用暂停/运行后,我得到了错误的帧速率值。这是我的一些解决方案:
-
标准解决方案:
布尔暂停(( { IMediaControl* pMediaControl; pMediaControl->Pause((; }
布尔运行(( { IMediaControl* pMediaControl; pMediaControl->Run((; }
在 pMediaControl->Run(( 之后,渲染器向我显示的帧速率值比所需的低两倍。但是在 10-15 秒内,这些值会恢复。
-
Via Stop(( 方法:
布尔暂停(( { IMediaControl* pMediaControl; pMediaControl->Stop((; pMediaControl->Pause((; }
布尔运行(( { IMediaControl* pMediaControl; pMediaControl->Run((; }
在 Pause(( 中,我添加了 pMediaControl->Stop((。在 Run(( 之后,我得到了正确的帧速率,但渲染器冻结了 10-15 秒。
-
Using IMediaFilter::Run((
布尔暂停(( { IMediaControl* pMediaControl; pMediaControl->Stop((; pMediaControl->Pause((; }
布尔运行(( { IMediaFilter* pMediaFilter; pMediaFilter->Run(1000000(;延迟 10ms }
在这里,我得到了很好的结果,没有冻结和错误的值。但是 CPU 利用率比 Pause(( 之前高出两倍。
想法?
当我通过计算帧获得平均帧速率时,我可以返回到我的旧模式,但我想使用 IQualProp::get_AvgFrameRate 方法。
我回到了旧模式。 重写获取平均 FPS 的代码比三个源过滤器的返工更好
- 使用专用显卡进行 OpenGL 渲染时帧速率较低
- 在打开多个其他窗口时使用全屏窗口时帧速率非常低
- 如何在IQualProp::get_AvgFrameRate中重置帧速率?
- 如何在不同的线程中保持一定的帧速率
- 根据帧速率缩放/缩小数字
- 将Kinect v2帧速率(rgb、深度、骨架)设置为每秒25帧
- 直接显示返回错误的帧速率 FPS
- SDL 帧速率上限实施
- 在 OpenGL 中,在保持良好帧速率的同时,VBO 中有多少个顶点的好目标是什么
- 视频流控制帧速率x264
- 使用C (Linux)更改BlueFox3相机的流帧速率
- EDSDK 捕获高帧速率
- OPENCV C 多线程以改善帧速率
- SDL 2.0 中是否内置了帧速率上限
- OpenGL:在立方体内部时帧速率直线下降
- 使用背景扣除MOG2时,帧速率下降
- 设置帧速率?这是个好主意吗
- Kinect 手指跟踪和帧速率
- 使用 FFmpeg 库(不是 libav 分支)以编程方式捕获视频,在 C++ 中具有可变帧速率
- OpenCV:无法从视频中获取帧速率