⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pindataranges.cpp

📁 完整的基于Conxant平台的USB电视棒的WIN驱动程序。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
      0L,                                                    // dwBitErrorRate
      NTSC_FRAME_DURATION_60HZ,                                   // AvgTimePerFrame

      {
         sizeof( KS_BITMAPINFOHEADER ),                      // biSize
         NTSC_DEFAULT_WIDTH,                                 // biWidth;
         NTSC_DEFAULT_HEIGHT,                                // biHeight;
         1,                                                  // biPlanes;
         8,                                                 // biBitCount;
         FOURCC_CXY8,                                        // biCompression;
         NTSC_DEFAULT_WIDTH * NTSC_DEFAULT_HEIGHT,       // biSizeImage;
         0,                                                  // biXPelsPerMeter;
         0,                                                  // biYPelsPerMeter;
         0,                                                  // biClrUsed;
         0                                                   // biClrImportant;
      }
   }
};



KS_DATARANGE_VIDEO FORMAT_CXY8_PAL =
{
   // KSDATARANGE
   {
      {
         sizeof( KS_DATARANGE_VIDEO ),
         0,
         PAL_DEFAULT_WIDTH * PAL_DEFAULT_HEIGHT,         // SampleSize
         0,                                                  // Reserved
		STATIC_KSDATAFORMAT_TYPE_VIDEO,			             // MEDIATYPE_Video
		STATIC_KSDATAFORMAT_SUBTYPE_CXY8_VIDEO,	             // MEDIASUBTYPE_UYVY
		STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO	             // FORMAT_VideoInfo
      }
   },
   true,
   true,
   KS_VIDEOSTREAM_PREVIEW,                                   // StreamDescriptionFlags 
   0,                                                        // MemoryAllocationFlags   

   // _KS_VIDEO_STREAM_CONFIG_CAPS
   {
      { STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO },           // GUID
      PAL_ASPECT_VIDEO_STANDARDS,                            // AnalogVideoStandard
      {PAL_MAX_WIDTH, PAL_MAX_HEIGHT},                       //InputSize
      {PAL_MIN_WIDTH, PAL_MIN_HEIGHT},                       //MinCroppingSize
      {PAL_MAX_WIDTH, PAL_MAX_HEIGHT},                       //MaxCroppingSize
      2,                                                     //CropGranularityX
      2,                                                     //CropGranularityY;
      2,                                                     //CropAlignX
      2,                                                     //CropAlignY;
      {
         ROUND_TO_NEAREST_MULTIPLE(PAL_MIN_WIDTH,  4),       //MinOutputSize
         ROUND_TO_NEAREST_MULTIPLE(PAL_MIN_HEIGHT, 2)       
      },
      {
         ROUND_TO_NEAREST_MULTIPLE(PAL_MAX_WIDTH,  4),       //MaxOutputSize
         ROUND_TO_NEAREST_MULTIPLE(PAL_MAX_HEIGHT, 2)       
      },
      4,                                                     //OutputGranularityX
      2,                                                     //OutputGranularityY;
      0,                                                     // StretchTapsX 
      0,                                                     // StretchTapsY
      2,                                                     // ShrinkTapsX
      2,                                                     // ShrinkTapsY
      PAL_FRAME_DURATION_50HZ,                                    // MinFrameInterval
      PAL_FRAME_DURATION_50HZ,                                    // MaxFrameInterval
      PAL_FRAMES_PER_SEC * PAL_MIN_WIDTH * PAL_MIN_HEIGHT,               // MinBitsPerSecond;
      PAL_FRAMES_PER_SEC * PAL_MAX_WIDTH * PAL_MAX_HEIGHT                 // MaxBitsPerSecond;
   },

   // KS_VIDEOINFOHEADER (default format)
   {
      {0,0,0,0},                                             // rcSource
      {0,0,0,0},                                             // rcTarget
      PAL_DEFAULT_WIDTH * PAL_DEFAULT_HEIGHT * PAL_FRAMES_PER_SEC,      // dwBitRate
      0L,                                                    // dwBitErrorRate
      PAL_FRAME_DURATION_50HZ,                                    // AvgTimePerFrame

      {
         sizeof( KS_BITMAPINFOHEADER ),                      // biSize
         PAL_DEFAULT_WIDTH,                                  // biWidth;
         PAL_DEFAULT_HEIGHT,                                 // biHeight;
         1,                                                  // biPlanes;
         8,                                                 // biBitCount;
         FOURCC_CXY8,                                        // biCompression;
         PAL_DEFAULT_WIDTH * PAL_DEFAULT_HEIGHT,         // biSizeImage;
         0,                                                  // biXPelsPerMeter;
         0,                                                  // biYPelsPerMeter;
         0,                                                  // biClrUsed;
         0                                                   // biClrImportant;
      }
   }
};
/////////////////////////////////////////////////////////////////////
// CapturePinDataRanges:
//
// This is the list of data ranges supported on the capture pin.
const
PKSDATARANGE
CapturePinDataRanges[CAPTURE_PIN_DATA_RANGE_COUNT] = 
{
    (PKSDATARANGE) &FORMAT_UYVY_NTSC,
    (PKSDATARANGE) &FORMAT_CXY8_NTSC,
    (PKSDATARANGE) &FORMAT_UYVY_PAL,
    (PKSDATARANGE) &FORMAT_CXY8_PAL
};


//
// VBIPinDataRanges:
//
const
PKSDATARANGE
VBIPinDataRanges[VBI_PIN_DATA_RANGE_COUNT] = 
{
    (PKSDATARANGE) &g_stream_format_VBI
};

//Stream format for this pin.
const KSDATARANGE_AUDIO g_audio_stream_format =
{
    // KSDATARANGE
    {
        sizeof (KSDATARANGE_AUDIO),      		// FormatSize
        0,                                      // Flags
        4,        								// SampleSize
        0,  									// Reserved
            
        STATIC_KSDATAFORMAT_TYPE_AUDIO,   			// Media type
        STATIC_KSDATAFORMAT_SUBTYPE_PCM,			// Media subtype
        STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX,	// Media format specifier
    },
    
    // Audio format info
    2,										// MaximumChannels
    16,										// MinimumBitsPerSample
    16,										// MaximumBitsPerSample
    32000,									// MinimumSampleFrequency
    96000
};

//Data range array.  Structure used to pass our stream formats to the system in 
// the pin descriptor.
const PKSDATARANGE g_audio_pin_data_ranges[AUDIO_PIN_RANGE_COUNT] = 
{
    (PKSDATARANGE) &g_audio_stream_format
};

///////////////////////////////////////////////
//Sliced CC Pin format

KSDATARANGE g_stream_format_sliced_cc =
{
    // Definition of the CC stream
    {   
        sizeof (KSDATARANGE),           // FormatSize
        0,                              // Flags
        2,                              // SampleSize
        0,                              // Reserved
        { STATIC_KSDATAFORMAT_TYPE_AUXLine21Data },
        { STATIC_KSDATAFORMAT_SUBTYPE_Line21_BytePair },
        { STATIC_KSDATAFORMAT_SPECIFIER_NONE }
    }
};

const PKSDATARANGE g_sliced_cc_pin_data_ranges[SLICED_CC_PIN_RANGE_COUNT] = 
{
    (PKSDATARANGE) &g_stream_format_sliced_cc
};

/////////////////////////////////////////////////////////////////////////////////////////
//Stream format for the TS pin.
#define TS_PACKET_SIZE 188
#define TS_PACKETS_PER_SAMPLE 320 /*312*/
#define TS_SAMPLE_SIZE TS_PACKET_SIZE * TS_PACKETS_PER_SAMPLE


const KSDATARANGE g_ts_stream_format =
{
    {
        sizeof( KSDATARANGE),                               // FormatSize
        0,                                                  // Flags - (N/A)
        TS_SAMPLE_SIZE,                                     // SampleSize
        0,                                                  // Reserved
        { STATIC_KSDATAFORMAT_TYPE_STREAM },                // MajorFormat
        { STATIC_KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT },// SubFormat
        { STATIC_KSDATAFORMAT_SPECIFIER_NONE }              // Specifier
    }
};

//Data range array.  Structure used to pass our stream formats to the system in 
// the pin descriptor.
const PKSDATARANGE g_ts_pin_data_ranges[TS_PIN_DATA_RANGE_COUNT] = 
{
    (PKSDATARANGE) &g_ts_stream_format
};

const KS_DATARANGE_BDA_ANTENNA g_bda_antenna_pin_range =
{
   // insert the KSDATARANGE and KSDATAFORMAT here
    {
        sizeof( KS_DATARANGE_BDA_ANTENNA),        // FormatSize
        0,                                        // Flags - (N/A)
        0,                                        // SampleSize - (N/A)
        0,                                        // Reserved
        { STATIC_KSDATAFORMAT_TYPE_BDA_ANTENNA }, // MajorFormat
        { STATIC_KSDATAFORMAT_SUBTYPE_NONE },     // SubFormat
        { STATIC_KSDATAFORMAT_SPECIFIER_NONE }    // Specifier
    }
};

const PKSDATAFORMAT g_bda_antenna_pin_ranges[BDA_ANTENNA_PIN_DATA_RANGE_COUNT] =
{
    (PKSDATAFORMAT) &g_bda_antenna_pin_range,
};

const KS_DATARANGE_BDA_TRANSPORT g_bda_transport_pin_range =
{
    {
        sizeof(KS_DATARANGE_BDA_TRANSPORT),              // FormatSize
        0,                                               // Flags - (N/A)
        0,                                               // SampleSize - (N/A)
        0,                                               // Reserved
        {STATIC_KSDATAFORMAT_TYPE_STREAM},              // MajorFormat
        {STATIC_KSDATAFORMAT_TYPE_MPEG2_TRANSPORT},     // SubFormat
        {STATIC_KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT}   // Specifier
    },
    //BDA_TRANSPORT_INFO
    {
        TS_PACKET_SIZE,                                  //  ulcbPhyiscalPacket
        TS_SAMPLE_SIZE,                                  //  ulcbPhyiscalFrame
        0,                                               //  ulcbPhyiscalFrameAlignment (no requirement)
        0                                                //  AvgTimePerFrame (not known)
    }
};

const PKSDATAFORMAT g_bda_transport_pin_ranges[BDA_TRANSPORT_PIN_DATA_RANGE_COUNT] =
{
    (PKSDATAFORMAT) &g_bda_transport_pin_range,
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -