![]() |
|
|||||||
| Notices |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Newbie
Join Date: Feb 2008
Age: 41
Posts: 2
Thanks: 0
Thanked 0 Times in 0 Posts
Rep Power: 0
![]() |
How to set "bTemporalCompression" in avshws?
I am developing a PCI capture driver, and I use "avshws" as sample to develp the driver.
I can capture AVI with H.264 codec by AMCAP, and the avi file can play well. My problem is as following: I would like to set bTemporalCompression(in KS_DATARANGE_VIDEO) to be TREU. Then, the frames captured in AVI will not be all marked as key frame. I connect capture pin to "Dump" filter. I trace in avshws, the bTemporalCompression is TRUE. But, when I trace into Dump filter, in CheckMediatype, it shows bTemporalCompression as FALSE. My data range defines as following: KS_DATARANGE_VIDEO FormatH264_Capture = { // // KSDATARANGE // { sizeof (KS_DATARANGE_VIDEO), // FormatSize 0, // Flags DMAX_X * DMAX_Y * 2, // SampleSize 0, // Reserved STATICGUIDOF (KSDATAFORMAT_TYPE_VIDEO), // aka. MEDIATYPE_Video 0x34363248, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71, //aka. MEDIASUBTYPE_YUY2, STATICGUIDOF (KSDATAFORMAT_SPECIFIER_VIDEOINFO) // FORMAT_VideoInfo }, FALSE, // BOOL, bFixedSizeSamples (all samples same size?) TRUE, // BOOL, bTemporalCompression (all I frames?) 0, // Reserved (was StreamDescriptionFlags) 0, // Reserved (was MemoryAllocationFlags // (KS_VIDEO_ALLOC_*)) // // _KS_VIDEO_STREAM_CONFIG_CAPS // { STATICGUIDOF( KSDATAFORMAT_SPECIFIER_VIDEOINFO ), // GUID KS_AnalogVideo_None, // AnalogVideoStandard DMAX_X, DMAX_Y, // InputSize, (the inherent size of the incoming signal D_X,D_Y, // MinCroppingSize, smallest rcSrc cropping rect allowed DMAX_X, DMAX_Y, // MaxCroppingSize, largest rcSrc cropping rect allowed 8, // CropGranularityX, granularity of cropping size 1, // CropGranularityY 8, // CropAlignX, alignment of cropping rect 1, // CropAlignY; D_X, D_Y, // MinOutputSize, smallest bitmap stream can produce DMAX_X, DMAX_Y, // MaxOutputSize, largest bitmap stream can produce 8, // OutputGranularityX, granularity of output bitmap size 1, // OutputGranularityY; 0, // StretchTapsX (0 no stretch, 1 pix dup, 2 interp...) 0, // StretchTapsY 0, // ShrinkTapsX 0, // ShrinkTapsY 1428571, // MinFrameInterval, 100 nS units >>7 frames per second 640000000, // MaxFrameInterval, 100 nS units 8 * 2 * 30 * D_X * D_Y, // MinBitsPerSecond; 8 * 2 * 30 * DMAX_X * DMAX_Y, // MaxBitsPerSecond; }, // // KS_VIDEOINFOHEADER (default format) // { 0, 0, D_X, D_Y, // RECT rcSource; 0, 0, 0, 0, // RECT rcTarget; DMAX_X * DMAX_Y * 2 * 30, // DWORD dwBitRate; 0L, // DWORD dwBitErrorRate; 1428571, // REFERENCE_TIME AvgTimePerFrame; sizeof (KS_BITMAPINFOHEADER), // DWORD biSize; DMAX_X, // LONG biWidth; DMAX_Y, // LONG biHeight; 1, // WORD biPlanes; 16, // WORD biBitCount; FOURCC_H264, // DWORD biCompression; DMAX_X * DMAX_Y * 2, // DWORD biSizeImage; 0, // LONG biXPelsPerMeter; 0, // LONG biYPelsPerMeter; 0, // DWORD biClrUsed; 0 // DWORD biClrImportant; } Does anyone know hwo to set bTemporalCompression correctly, and can let the value update to transform filter? Thanks! Gordon |
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|
< Windows Help - MS Office Help - Hardware Support >
| New To Site? | Need Help? |