【发布时间】:2014-07-20 10:39:33
【问题描述】:
我在 C# 中使用 DirectShowLib.net,并且我正在尝试更改我的 ALLOCATOR_PROPERTIES 设置,因为我使用的是实时视频源,并且更改不会“立即”在屏幕上显示。
在 GraphStudioNext 中构建过滤器图时,ALLOCATOR_PROPERTIES 会显示上游和下游引脚,尽管仅在连接之后。
我想使用 IAMBufferNegotiation 设置 ALLOCATOR_PROPERTIES,但是当尝试从我的捕获过滤器(AV/C 磁带录音机/播放器)获取接口时,我收到 E_UNEXPECTED (0x8000ffff) 错误。以下是相关的 C# 代码:
DS.IAMBufferNegotiation iamb = (DS.IAMBufferNegotiation)capturePin;
DS.AllocatorProperties allocatorProperties = new DS.AllocatorProperties();
hr = iamb.GetAllocatorProperties(allocatorProperties);
DS.DsError.ThrowExceptionForHR(hr);
当我使用下游视频解码器输入引脚时,我收到 System.InvalidCastException,因为该接口不受支持。
如何更改 ALLOCATOR_PROPERTIES 的 cBuffers 值?
【问题讨论】:
-
你有什么延迟?对于 DV 设备,3-5 帧的延迟应该是正常的。在数字视频工作流程中不可能减少延迟。
-
大约是。 20帧,但最后我发现问题出在过滤器链之外。
标签: c# directshow video-capture latency directshow.net