如何使用媒体基础在给定时间运行/启动线程
How to run/start a thread at a given time using Media Foundation?
我正在寻找在指定时间与媒体基金会启动线程。
我知道,在直接表中,有一个由 IMediaFilter
调用的函数,其中 tStart
是参考时钟的时间值。:
Interface::HRESULT Run(REFERENCE_TIME tStart);
但是在媒体基金会中,没有这样的功能可以运行或以时间为参数的线程。
是否有解决方案可以在媒体基金会中执行此操作?
DirectShow或Media Foundation均具有与问题描述相匹配的功能。
两个API都有在请求之后立即启动活动的方法。
DirectShow的IMediaFilter.Run
不会首先启动线程。然后,该方法是一个技巧,而不是预期的用途:
...当应用程序调用
IMediaControl::Run
方法时,过滤器图管理器在每个过滤器上调用IMediaFilter::Run
。它将将来稍微设置TSTART的值,以说明图形延迟。
请注意,您在调用IMediaFilter::Run
上没有任何消息,该方法应该在内部称为。
媒体基金会的内部设计不同。您无法安排启动,也不会对内部工作线程产生影响。假设您启动媒体会话活动并尽快开始。
相关文章:
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- KMP算法和LPS表构造的运行时间
- 如何计算Big-O表示法中的平均渐近运行时间
- 用时钟测量程序的运行时间
- 运行时错误:引用绑定到类型为"int"的空指针
- 为什么在尝试测量函数返回所需的时间时,我的运行时编号是错误的?
- 我不明白为什么我的代码不起作用并且需要更长的时间来运行
- 无法将运行时类绑定到 XAML T 必须是 WinRT 类型
- 如何减少代码的运行时间以对齐文本?
- 运行时错误:引用绑定到类型"int"的未对齐地址0xbebebebebebebec6,这需要 4 个字节对齐 (stl_vector.h)
- 我的 c++ 应用程序中的运行时间从 0 增加到 60 太快了(例如一毫秒或一微秒)
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- 为什么未达到的 try-catch 块会增加运行时时间
- 模板变量的绑定时间
- 如何了解c++应用程序在WINDOWS上运行的时间
- 在 QThread 中运行长时间操作并将信号发送到主线程仍会冻结 UI
- 需要包含运行任务时间的 2D 矩阵的最佳解决方案
- QT,运行特定时间的功能
- Constexpr问题,为什么这两个不同的程序在g++中运行的时间如此不同?
- 算法运行的时间