#ifndef _DVDMEDIA_H #define _DVDMEDIA_H #if __GNUC__ >= 3 #pragma GCC system_header #endif #ifndef _STRMIF_H #include #endif #ifdef __cplusplus extern "C" { #endif /*--- DirectShow Reference - DirectShow Structures - AM_SAMPLE2_PROPERTIES Structure */ #define AM_VIDEO_FLAG_FIELD_MASK 0x0003 #define AM_VIDEO_FLAG_INTERLEAVED_FRAME 0x0000 #define AM_VIDEO_FLAG_FIELD1 0x0001 #define AM_VIDEO_FLAG_FIELD2 0x0002 #define AM_VIDEO_FLAG_FIELD1FIRST 0x0004 #define AM_VIDEO_FLAG_WEAVE 0x0008 #define AM_VIDEO_FLAG_REPEAT_FIELD 0x0040 /*--- DirectShow Reference - DirectShow Enumerated Types */ enum AM_MPEG2Level { AM_MPEG2Level_Low = 1, AM_MPEG2Level_Main, AM_MPEG2Level_High1440, AM_MPEG2Level_High }; enum AM_MPEG2Profile { AM_MPEG2Profile_Simple = 1, AM_MPEG2Profile_Main, AM_MPEG2Profile_SNRScalable, AM_MPEG2Profile_SpatiallyScalable, AM_MPEG2Profile_High }; typedef enum { AM_RATE_ChangeRate = 1, AM_RATE_FullDataRateMax = 2, AM_RATE_ReverseDecode = 3, AM_RATE_DecoderPosition = 4, AM_RATE_DecoderVersion = 5 } AM_PROPERTY_DVD_RATE_CHANGE; /*--- DirectShow Reference - DirectShow Structures */ typedef struct tagVIDEOINFOHEADER2 { RECT rcSource; RECT rcTarget; DWORD dwBitRate; DWORD dwBitErrorRate; REFERENCE_TIME AvgTimePerFrame; DWORD dwInterlaceFlags; DWORD dwCopyProtectFlags; DWORD dwPictAspectRatioX; DWORD dwPictAspectRatioY; union { DWORD dwControlFlags; DWORD dwReserved1; }; DWORD dwReserved2; BITMAPINFOHEADER bmiHeader; } VIDEOINFOHEADER2; #define AMINTERLACE_IsInterlaced 0x00000001 #define AMINTERLACE_1FieldPerSample 0x00000002 #define AMINTERLACE_Field1First 0x00000004 #define AMINTERLACE_FieldPatField1Only 0x00000000 #define AMINTERLACE_FieldPatField2Only 0x00000010 #define AMINTERLACE_FieldPatBothRegular 0x00000020 #define AMINTERLACE_FieldPatBothIrregular 0x00000030 #define AMINTERLACE_DisplayModeBobOnly 0x00000000 #define AMINTERLACE_DisplayModeWeaveOnly 0x00000040 #define AMINTERLACE_DisplayModeBobOrWeave 0x00000080 #define AMINTERLACE_FieldPatternMask 0x00000030 #define AMINTERLACE_DisplayModeMask 0x000000C0 #define AMCONTROL_USED 0x00000001 #define AMCONTROL_PAD_TO_4x3 0x00000002 #define AMCONTROL_PAD_TO_16x9 0x00000004 #define AMCONTROL_COLORINFO_PRESENT 0x00000008 typedef struct tagMPEG2VIDEOINFO { VIDEOINFOHEADER2 hdr; DWORD dwStartTimeCode; DWORD cbSequenceHeader; DWORD dwProfile; DWORD dwLevel; DWORD dwFlags; DWORD dwSequenceHeader[1]; } MPEG2VIDEOINFO; #define AMMPEG2_DoPanScan 0x00000001 #define AMMPEG2_DVDLine21Field1 0x00000002 #define AMMPEG2_DVDLine21Field2 0x00000004 #define AMMPEG2_SourceIsLetterboxed 0x00000008 #define AMMPEG2_FilmCameraMode 0x00000010 #define AMMPEG2_LetterboxAnalogOut 0x00000020 #define AMMPEG2_DSS_UserData 0x00000040 #define AMMPEG2_DVB_UserData 0x00000080 #define AMMPEG2_27MhzTimebase 0x00000100 #define AMMPEG2_WidescreenAnalogOut 0x00000200 #ifdef __cplusplus } #endif #endif