/* * dvdmedia.h DVD media definitions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef __DVDMEDIA_H__ #define __DVDMEDIA_H__ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #ifdef __cplusplus extern "C" { #endif /* ActiveMovie primitive data types */ typedef LONG AM_MaxFullDataRate; typedef DWORD AM_Step; typedef LONGLONG AM_DecoderPosition; /* ActiveMovie AC3 alternate audio modes */ #define AM_AC3_ALTERNATE_AUDIO_1 1L #define AM_AC3_ALTERNATE_AUDIO_2 2L #define AM_AC3_ALTERNATE_AUDIO_BOTH 3L /* ActiveMovie AC3 bit stream modes */ #define AM_AC3_SERVICE_MAIN_AUDIO 0L #define AM_AC3_SERVICE_NO_DIALOG 1L #define AM_AC3_SERVICE_VISUALLY_IMPAIRED 2L #define AM_AC3_SERVICE_HEARING_IMPAIRED 3L #define AM_AC3_SERVICE_DIALOG_ONLY 4L #define AM_AC3_SERVICE_COMMENTARY 5L #define AM_AC3_SERVICE_EMERGENCY_FLASH 6L #define AM_AC3_SERVICE_VOICE_OVER 7L /* ActiveMovie copy protection flags */ #define AM_UseNewCSSKey 0x01 #define AM_ReverseBlockStart 0x02 #define AM_ReverseBlockEnd 0x04 /* ActiveMovie DVD CGMS copy protection flags */ #define AM_DVD_CGMS_COPY_PROTECT_MASK 0x00000018L #define AM_DVD_CGMS_COPY_PERMITTED 0x00000000L #define AM_DVD_CGMS_COPY_ONCE 0x00000010L #define AM_DVD_CGMS_NO_COPY 0x00000018L #define AM_DVD_COPYRIGHT_MASK 0x00000040L #define AM_DVD_NOT_COPYRIGHTED 0x00000000L #define AM_DVD_COPYRIGHTED 0x00000040L #define AM_DVD_SECTOR_PROTECT_MASK 0x00000020L #define AM_DVD_SECTOR_NOT_PROTECTED 0x00000000L #define AM_DVD_SECTOR_PROTECTED 0x00000020L /* ActiveMovie interlace flags */ #define AMINTERLACE_IsInterlaced 0x00000001L #define AMINTERLACE_1FieldPerSample 0x00000002L #define AMINTERLACE_Field1First 0x00000004L #define AMINTERLACE_FieldPatternMask 0x00000030L #define AMINTERLACE_FieldPatField1Only 0x00000000L #define AMINTERLACE_FieldPatField2Only 0x00000010L #define AMINTERLACE_FieldPatBothRegular 0x00000020L #define AMINTERLACE_FieldPatBothIrregular 0x00000030L #define AMINTERLACE_DisplayModeMask 0x000000C0L #define AMINTERLACE_DisplayModeBobOnly 0x00000000L #define AMINTERLACE_DisplayModeWeaveOnly 0x00000040L #define AMINTERLACE_DisplayModeBobOrWeave 0x00000080L /* ActiveMovie copy protection flags */ #define AMCOPYPROTECT_RestrictDuplication 0x00000001L /* ActiveMovie MPEG-2 flags */ #define AMMPEG2_DoPanScan 0x00000001L #define AMMPEG2_DVDLine21Field1 0x00000002L #define AMMPEG2_DVDLine22Field2 0x00000004L #define AMMPEG2_SourceIsLetterboxed 0x00000008L #define AMMPEG2_FilmCameraMode 0x00000010L #define AMMPEG2_LetterboxAnalogOut 0x00000020L #define AMMPEG2_DSS_UserData 0x00000040L #define AMMPEG2_DVB_UserData 0x00000080L #define AMMPEG2_27MhzTimebase 0x00000100L #define AMMPEG2_WidescreenAnalogOut 0x00000200L /* ActiveMovie control flags */ #define AMCONTROL_USED 0x00000001L #define AMCONTROL_PAD_TO_4x3 0x00000002L #define AMCONTROL_PAD_TO_16x9 0x00000004L #define AMCONTROL_COLORINFO_PRESENT 0x00000080L /* ActiveMovie video flags */ #define AM_VIDEO_FLAG_FIELD_MASK 0x00000003L #define AM_VIDEO_FLAG_INTERLEAVED_MASK 0x00000000L #define AM_VIDEO_FLAG_FIELD1 0x00000001L #define AM_VIDEO_FLAG_FIELD2 0x00000002L #define AM_VIDEO_FLAG_FIELD1FIRST 0x00000004L #define AM_VIDEO_FLAG_WEAVE 0x00000008L #define AM_VIDEO_FLAG_IPB_MASK 0x00000030L #define AM_VIDEO_FLAG_I_SAMPLE 0x00000000L #define AM_VIDEO_FLAG_P_SAMPLE 0x00000010L #define AM_VIDEO_FLAG_B_SAMPLE 0x00000020L #define AM_VIDEO_FLAG_REPEAT_FIELD 0x00000040L /* ActiveMovie AC3 properties */ typedef enum { AM_PROPERTY_AC3_ERROR_CONCEALMENT = 1, AM_PROPERTY_AC3_ALTERNATE_AUDIO = 2, AM_PROPERTY_AC3_DOWNMIX = 3, AM_PROPERTY_AC3_BIT_STREAM_MODE = 4, AM_PROPERTY_AC3_DIALOGUE_LEVEL = 5, AM_PROPERTY_AC3_LANGUAGE_CODE = 6, AM_PROPERTY_AC3_ROOM_TYPE = 7 } AM_PROPERTY_AC3; /* ActiveMovie AC3 error concealment */ typedef struct { BOOL fRepeatPreviousBlock; BOOL fErrorInCurrentBlock; } AM_AC3_ERROR_CONCEALMENT; typedef AM_AC3_ERROR_CONCEALMENT *PAM_AC3_ERROR_CONCEALMENT; /* ActiveMovie AC3 alternate audio */ typedef struct { BOOL fStereo; ULONG DualMode; } AM_AC3_ALTERNATE_AUDIO; typedef AM_AC3_ALTERNATE_AUDIO *PAM_AC3_ALTERNATE_AUDIO; /* ActiveMovie AC3 downmix */ typedef struct { BOOL fDownMix; BOOL fDolbySurround; } AM_AC3_DOWNMIX; typedef AM_AC3_DOWNMIX *PAM_AC3_DOWNMIX; /* ActiveMovie AC3 bit stream mode */ typedef struct { LONG BitStreamMode; } AM_AC3_BIT_STREAM_MODE; typedef AM_AC3_BIT_STREAM_MODE *PAM_AC3_BIT_STREAM_MODE; /* ActiveMovie AC3 dialogue level */ typedef struct { ULONG DialogueLevel; } AM_AC3_DIALOGUE_LEVEL; typedef AM_AC3_DIALOGUE_LEVEL *PAM_AC3_DIALOGUE_LEVEL; /* ActiveMovie AC3 room type */ typedef struct { BOOL fLargeRoom; } AM_AC3_ROOM_TYPE; typedef AM_AC3_ROOM_TYPE *PAM_AC3_ROOM_TYPE; /* ActiveMovie DVD subpicture properties */ typedef enum { AM_PROPERTY_DVDSUBPIC_PALETTE = 0, AM_PROPERTY_DVDSUBPIC_HLI = 1, AM_PROPERTY_DVDSUBPIC_COMPOSIT_ON = 2 } AM_PROPERTY_DVDSUBPIC; /* ActiveMovie DVD YUV */ typedef struct _AM_DVD_YUV { UCHAR Reserved; UCHAR Y; UCHAR U; UCHAR V; } AM_DVD_YUV; typedef AM_DVD_YUV *PAM_DVD_YUV; /* ActiveMovie subpicture palette */ typedef struct _AM_PROPERTY_SPPAL { AM_DVD_YUV sppal[16]; } AM_PROPERTY_SPPAL; typedef AM_PROPERTY_SPPAL *PAM_PROPERTY_SPPAL; /* ActiveMovie color contrast */ typedef struct _AM_COLCON { UCHAR emph1col : 4; UCHAR emph2col : 4; UCHAR backcol : 4; UCHAR patcol : 4; UCHAR emph1con : 4; UCHAR emph2con : 4; UCHAR backcon : 4; UCHAR patcon : 4; } AM_COLCON; typedef AM_COLCON *PAM_COLCON; /* ActiveMovie subpicture highlighting */ typedef struct _AM_PROPERTY_SPHLI { USHORT HLISS; USHORT Reserved; ULONG StartPTM; ULONG EndPTM; USHORT StartX; USHORT StartY; USHORT StopX; USHORT StopY; AM_COLCON ColCon; } AM_PROPERTY_SPHLI; typedef AM_PROPERTY_SPHLI *PAM_PROPERTY_SPHLI; /* ActiveMovie composition value */ typedef BOOL AM_PROPERTY_COMPOSIT_ON; typedef BOOL *PAM_PROPERTY_COMPOSIT_ON; /* ActiveMovie DVD copy protection properties */ typedef enum { AM_PROPERTY_DVDCOPY_CHLG_KEY = 0x01, AM_PROPERTY_DVDCOPY_DVD_KEY1 = 0x02, AM_PROPERTY_DVDCOPY_DEC_KEY2 = 0x03, AM_PROPERTY_DVDCOPY_TITLE_KEY = 0x04, AM_PROPERTY_COPY_MACROVISION = 0x05, AM_PROPERTY_DVDCOPY_REGION = 0x06, AM_PROPERTY_DVDCOPY_SET_COPY_STATE = 0x07, AM_PROPERTY_COPY_ANALOG_COMPONENT = 0x08, AM_PROPERTY_COPY_DIGITAL_CP = 0x09, AM_PROPERTY_COPY_DVD_SRM = 0x0A, AM_PROPERTY_DVDCOPY_SUPPORTS_NEW_KEYCOUNT = 0x0B, AM_PROPERTY_DVDCOPY_DISC_KEY = 0x80 } AM_PROPERTY_DVDCOPYPROT; /* ActiveMovie digital copy protection */ typedef enum _AM_DIGITAL_CP { AM_DIGITAL_CP_OFF = 0, AM_DIGITAL_CP_ON = 1, AM_DIGITAL_CP_DVD_COMPLIANT = 2 } AM_DIGITAL_CP; /* ActiveMovie DVD copy protection challenge key */ typedef struct _AM_DVDCOPY_CHLGKEY { BYTE ChlgKey[10]; BYTE Reserved[2]; } AM_DVDCOPY_CHLGKEY; typedef AM_DVDCOPY_CHLGKEY *PAM_DVDCOPY_CHLGKEY; /* ActiveMovie DVD copy protection bus key */ typedef struct _AM_DVDCOPY_BUSKEY { BYTE BusKey[5]; BYTE Reserved[1]; } AM_DVDCOPY_BUSKEY; typedef AM_DVDCOPY_BUSKEY *PAM_DVDCOPY_BUSKEY; /* ActiveMovie DVD copy protection disc key */ typedef struct _AM_DVDCOPY_DISCKEY { BYTE DiscKey[2048]; } AM_DVDCOPY_DISCKEY; typedef AM_DVDCOPY_DISCKEY *PAM_DVDCOPY_DISCKEY; /* ActiveMovie DVD copy protection title key */ typedef struct _AM_DVDCOPY_TITLEKEY { ULONG KeyFlags; ULONG Reserved1[2]; UCHAR TitleKey[6]; UCHAR Reserved2[2]; } AM_DVDCOPY_TITLEKEY; typedef AM_DVDCOPY_TITLEKEY *PAM_DVDCOPY_TITLEKEY; /* ActiveMovie DVD copy protection MACROVISION */ typedef struct _AM_COPY_MACROVISION { ULONG MACROVISIONLevel; } AM_COPY_MACROVISION; typedef AM_COPY_MACROVISION *PAM_COPY_MACROVISION; /* ActiveMovie DVD copy protection set copy state */ typedef struct AM_DVDCOPY_SET_COPY_STATE { ULONG DVDCopyState; } AM_DVDCOPY_SET_COPY_STATE; typedef AM_DVDCOPY_SET_COPY_STATE *PAM_DVDCOPY_SET_COPY_STATE; /* ActiveMovie DVD copy states */ typedef enum { AM_DVDCOPYSTATE_INITIALIZE = 0, AM_DVDCOPYSTATE_INITIALIZE_TITLE = 1, AM_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED = 2, AM_DVDCOPYSTATE_AUTHENTICATION_REQUIRED = 3, AM_DVDCOPYSTATE_DONE = 4 } AM_DVDCOPYSTATE; /* ActiveMovie MACROVISION levels */ typedef enum { AM_MACROVISION_DISABLED = 0, AM_MACROVISION_LEVEL1 = 1, AM_MACROVISION_LEVEL2 = 2, AM_MACROVISION_LEVEL3 = 3 } AM_COPY_MACROVISION_LEVEL; typedef AM_COPY_MACROVISION_LEVEL *PAM_COPY_MACROVISION_LEVEL; /* DVD region */ typedef struct _DVD_REGION { UCHAR CopySystem; UCHAR RegionData; UCHAR SystemRegion; UCHAR ResetCount; } DVD_REGION; typedef DVD_REGION *PDVD_REGION; /* ActiveMovie MPEG-2 levels */ enum AM_MPEG2Level { AM_MPEG2Level_Low = 1, AM_MPEG2Level_Main = 2, AM_MPEG2Level_High1440 = 3, AM_MPEG2Level_High = 4 }; /* ActiveMovie MPEG-2 profile values */ enum AM_MPEG2Profile { AM_MPEG2Profile_Simple = 1, AM_MPEG2Profile_Main = 2, AM_MPEG2Profile_SNRScalable = 3, AM_MPEG2Profile_SpatiallyScalable = 4, AM_MPEG2Profile_High = 5 }; /* Video information header (version 2) */ 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; /* MPEG-2 video information */ typedef struct tagMPEG2VIDEOINFO { VIDEOINFOHEADER2 hdr; DWORD dwStartTimeCode; DWORD cbSequenceHeader; DWORD dwProfile; DWORD dwLevel; DWORD dwFlags; DWORD dwSequenceHeader[1]; } MPEG2VIDEOINFO; /* Macros to manipulate MPEG-2 video information */ #define SIZE_MPEG2VIDEOINFO( x ) \ (sizeof( MPEG2VIDEOINFO ) - sizeof( DWORD ) + (x)->cbSequenceHeader) #define MPEG1_SEQUENCE_INFO( x ) \ ((const BYTE *)(x)->bSequenceHeader) #define MPEG2_SEQUENCE_INFO( x ) \ ((const BYTE *)(x)->dwSequenceHeader) /* ActiveMovie DVD karaoke data */ typedef struct tagAM_DvdKaraokeData { DWORD dwDownmix; DWORD dwSpeakerAssignment; } AM_DvdKaraokeData; /* ActiveMovie DVD karaoke properties */ typedef enum { AM_PROPERTY_DVDKARAOKE_ENABLE = 0, AM_PROPERTY_DVDKARAOKE_DATA = 1 } AM_PROPERTY_DVDKARAOKE; /* ActiveMovie timestamp rate change properties */ typedef enum { AM_RATE_SimpleRateChange = 1, AM_RATE_ExactRateChange = 2, AM_RATE_MaxFullDataRate = 3, AM_RATE_Step = 4, AM_RATE_UseRateVersion = 5, AM_RATE_QueryFullFrameRate = 6, AM_RATE_QueryLastRateSegPTS = 7, AM_RATE_CorrectTS = 8, AM_RATE_ReverseMaxFullDataRate = 9, AM_RATE_ResetOnTimeDisc = 10, AM_RATE_QueryMapping = 11 } AM_PROPERTY_TS_RATE_CHANGE; /* ActiveMovie DVD rate change properties */ 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; /* ActiveMovie simple rate change */ typedef struct { REFERENCE_TIME StartTime; LONG Rate; } AM_SimpleRateChange; /* ActiveMovie query rate */ typedef struct { LONG lMaxForwardFullFrame; LONG lMaxReverseFullFrame; } AM_QueryRate; /* ActiveMovie exact rate change */ typedef struct { REFERENCE_TIME OutputZeroTime; LONG Rate; } AM_ExactRateChange; /* ActiveMovie DVD change rate */ typedef struct { REFERENCE_TIME StartInTime; REFERENCE_TIME StartOutTime; LONG Rate; } AM_DVD_ChangeRate; /* DVD directions */ typedef enum { DVD_DIR_FORWARD = 0, DVD_DIR_BACKWARD = 1 } DVD_PLAY_DIRECTION; #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __DVDMEDIA_H__ */