gpt4 book ai didi

c++ - 采集 NTSC 模拟板时 DirectShow 像素乱序

转载 作者:行者123 更新时间:2023-11-30 02:41:48 25 4
gpt4 key购买 nike

我正在为 Directshow 编写自定义视频渲染过滤器。我的渲染器假定传入像素一次组织一行像素(正确的假设?)并使用 DirectX 纹理将它们 blits 到其他地方的另一个 DirectX 显示器。

这种方法适用于网络摄像头作为输入,但是当我使用模拟捕获板时,渲染器接收到的样本没有按预期顺序排列(请参见下面的左图)。当我使用库存的 DirectShow 视频渲染器渲染捕获时,它看起来不错(见下图)。所以 directshow 渲染器必须做一些我的渲染器没有做的额外事情。知道它是什么吗?

更多细节:

  • 采集卡是 NTSC,我不确定这是否重要。
  • 作为自定义渲染器的输入,我只接受 MEDIASUBTYPE_RGB24,所以我认为这不是 YUV 问题(是吗?)。
  • 有点难看,但下面的第二张图是我的过滤图。我的自定义渲染器连接到最右侧的色彩空间转换器。
  • 我假设进入我的渲染器的像素都是一次组织一行像素。这是一个正确的假设吗?

sample output

My Rendering Graph

最佳答案

也许填充纹理以保持行对齐(乘以)每行 32 个字节?请注意,我从未使用过 DirectShow,但这是我在 D3D 中所期望的。

换句话说,您的输入可能与您想象的不同。不幸的是我不知道 DS 所以我只能假设计算输入/输出坐标的东西应该有不同的步幅因子,例如代码中的内容类似于 offset = y * stride + x

关于c++ - 采集 NTSC 模拟板时 DirectShow 像素乱序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com