102 lines
2.8 KiB
C
102 lines
2.8 KiB
C
|
#ifndef _DVDMEDIA_H
|
||
|
#define _DVDMEDIA_H
|
||
|
#if __GNUC__ >= 3
|
||
|
#pragma GCC system_header
|
||
|
#endif
|
||
|
|
||
|
#ifndef _STRMIF_H
|
||
|
#include <strmif.h>
|
||
|
#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
|