我想修改视频采集的制式在网上查到这段代码但有几个问题还请大家多多指教:
1、是不是要用到DirectShow,请问DirectShow的函数库和头文件是什么,该如何导入
2、在以下这段代码中的pBuilder如何声明的是不是:
ICaptureGraphBuilder* pBuilder;
3、还有就是pSrc,MEDIATYPE_Interleaved,MEDIATYPE_Video,IID_IAMAnalogVideoDecoder这几个是什么?
我对dirctshow和COM都不熟,还请大家解释的详细一些;先多谢了
代码:
typedef enum
{
AnalogVideo_None = 0x00000000
AnalogVideo_NTSC_M = 0x00000001,
AnalogVideo_NTSC_M_J = 0x00000002,
AnalogVideo_NTSC_433 = 0x00000004,
AnalogVideo_PAL_B = 0x00000010,
AnalogVideo_PAL_D = 0x00000020,
AnalogVideo_PAL_H = 0x00000080,
AnalogVideo_PAL_I = 0x00000100,
AnalogVideo_PAL_M = 0x00000200,
AnalogVideo_PAL_N = 0x00000400,
AnalogVideo_PAL_60 = 0x00000800,
AnalogVideo_SECAM_B = 0x00001000,
AnalogVideo_SECAM_D = 0x00002000,
AnalogVideo_SECAM_G = 0x00004000,
AnalogVideo_SECAM_H = 0x00008000,
AnalogVideo_SECAM_K = 0x00010000,
AnalogVideo_SECAM_K1 = 0x00020000,
AnalogVideo_SECAM_L = 0x00040000,
AnalogVideo_SECAM_L1 = 0x00080000,
AnalogVideo_PAL_N_COMBO = 0x00100000
} AnalogVideoStandard;
IAMAnalogVideoDecoder *pDecoder
hr =
pBuilder-> FindInterface(&PIN_CATEGORY_ANALOGVIDEOIN,&MEDIATYPE_Interleaved,
pSrc,IID_IAMAnalogVideoDecoder, (void **)&pDecoder);
if(hr != S_OK)
hr = pBuilder-> FindInterface(&PIN_CATEGORY_ANALOGVIDEOIN,&MEDIATYPE_Video,
pSrc,IID_IAMAnalogVideoDecoder, (void **)&pDecoder);
if(hr == S_OK)
{
pDecoder-> put_TVFormat(AnalogVideo_PAL_N );
|