📄 dvdtypes.h
字号:
**********************************************************//** Menu Ids. */typedef enum {/** Title menu ID */ RM_DVD_MENU_ID_TITLE = 0x02,/** Root menu ID */ RM_DVD_MENU_ID_ROOT = 0x03,/** Audio menu ID */ RM_DVD_MENU_ID_AUDIO = 0x05,/** Subpicture menu ID */ RM_DVD_MENU_ID_SUBPICTURE = 0x04,/** Angle menu ID */ RM_DVD_MENU_ID_ANGLE = 0x06,/** Chapter menu ID */ RM_DVD_MENU_ID_PTT = 0x07} RMdvdMenuId;/** Parental levels. */typedef enum {/** Parental level 1*/ RM_DVD_PARENTAL_LEVEL_1 = 1,/** Parental level 2*/ RM_DVD_PARENTAL_LEVEL_2 = 2,/** Parental level 3*/ RM_DVD_PARENTAL_LEVEL_3 = 3,/** Parental level 4*/ RM_DVD_PARENTAL_LEVEL_4 = 4,/** Parental level 5*/ RM_DVD_PARENTAL_LEVEL_5 = 5,/** Parental level 6*/ RM_DVD_PARENTAL_LEVEL_6 = 6,/** Parental level 7*/ RM_DVD_PARENTAL_LEVEL_7 = 7,/** Parental level 8*/ RM_DVD_PARENTAL_LEVEL_8 = 8,/** Parental level disabled*/ RM_DVD_PARENTAL_LEVEL_DISABLED = 0xf} RMdvdParentalLevel;/** Scan type */typedef enum { /** Resume normal playback. */ RM_DVD_SCAN_NO_SCAN, /** Play forward with all frames. */ RM_DVD_SCAN_FORWARD_ALL_FRAMES, /** Play forward with only I frames. */ RM_DVD_SCAN_FORWARD_I_FRAMES, /** Play backward with all frames. */ RM_DVD_SCAN_BACKWARD_ALL_FRAMES, /** Play backward with only I frames. */ RM_DVD_SCAN_BACKWARD_I_FRAMES} RMdvdScanType;/** Display and aspect ratio modes */typedef enum { /** 4:3 source, 4:3 output display*/ RM_DVD_VIDEO_4_3__4_3_RECT = 1, /** 4:3 source, 16:9 output display, crop top and bottom*/ RM_DVD_VIDEO_4_3__16_9_ZOOM_ON, /** 4:3 source, 16:9 output display, black band on sides*/ RM_DVD_VIDEO_4_3__16_9_ZOOM_OFF, /** 16:9 source, 16:9 output display. This is the so-called 'Wide' mode.*/ RM_DVD_VIDEO_16_9__16_9_RECT, /** 16:9 source, pan and scan, 4:3 output display*/ RM_DVD_VIDEO_16_9__4_3_PANSCAN, /** 16:9 source, letter box, 4:3 output display*/ RM_DVD_VIDEO_16_9__4_3_LETTERBOX} RMdvdVideoMode;/** Audio types.*/typedef enum { /** AC3 Audio*/ RM_DVD_AUDIO_AC3, /** MPEG Audio*/ RM_DVD_AUDIO_MPEG, /** PCM Audio*/ RM_DVD_AUDIO_PCM, /** DTS Audio*/ RM_DVD_AUDIO_DTS, /** SDDS Audio*/ RM_DVD_AUDIO_SDDS, /** Mpeg2 extension bitstream. */ RM_DVD_AUDIO_MPEG_EXTENSION} RMdvdAudioType;/** audio capabilities. see SPRM(15), VI4-172. */typedef enum { RM_DVD_CAN_SDDS_KARAOKE = 1<<2, RM_DVD_CAN_DTS_KARAOKE = 1<<3, RM_DVD_CAN_MPEG_KARAOKE = 1<<4, RM_DVD_CAN_AC3_KARAOKE = 1<<6, RM_DVD_CAN_PCM_KARAOKE = 1<<7, RM_DVD_CAN_SDDS = 1<<10, RM_DVD_CAN_DTS = 1<<11, RM_DVD_CAN_MPEG = 1<<12, RM_DVD_CAN_AC3 = 1<<14} RMdvdAudioCapability;/** see Annex C. */typedef enum { RM_DVD_AUDIO_NOT_SPECIFIED = 0, RM_DVD_AUDIO_KARAOKE = 1, RM_DVD_AUDIO_SURROUND = 2} RMdvdAudioApplicationMode;typedef enum { RM_DVD_AUDIO_16_BITS = 0, RM_DVD_AUDIO_20_BITS = 1, RM_DVD_AUDIO_24_BITS = 2} RMdvdAudioQuantization;/** see AST_ATR as referenced in RMdvdAudioStream */typedef enum { /** 48kHz frequency */ RM_DVD_AUDIO_48KHz = 0, /** 96kHz frequency */ RM_DVD_AUDIO_96KHz = 1} RMdvdAudioFrequency;/** see AST_ATR as referenced in RMdvdAudioStream */typedef enum { /** The stream has 1 channel*/ RM_DVD_AUDIO_CHANNELS_1 = 0, /** The stream has 2 channels*/ RM_DVD_AUDIO_CHANNELS_2 = 1, /** The stream has 3 channels*/ RM_DVD_AUDIO_CHANNELS_3 = 2, /** The stream has 4 channels*/ RM_DVD_AUDIO_CHANNELS_4 = 3, /** The stream has 5 channels*/ RM_DVD_AUDIO_CHANNELS_5 = 4, /** The stream has 6 channels*/ RM_DVD_AUDIO_CHANNELS_6 = 5, /** The stream has 7 channels*/ RM_DVD_AUDIO_CHANNELS_7 = 6, /** The stream has 8 channels*/ RM_DVD_AUDIO_CHANNELS_8 = 7,} RMdvdAudioChannels;/** see VI4-28, CHRS */typedef enum { RM_DVD_CHARSET_UNICODE = 0x0, RM_DVD_CHARSET_ISO646 = 0x1, /* 7 bit ascii */ RM_DVD_CHARSET_JIS = 0x10, /* JIS Roman & JIS Kanji 1990. see Annex A.4 */ RM_DVD_CHARSET_ISO8859 = 0x11, /* 8 bit ascii */ RM_DVD_CHARSET_SHIFT_JIS = 0x12 /* Shift JIS Kanji including JIS Roman & JIS Katakana */} RMdvdCharset;/** DVD Domain type */typedef enum { RM_DVD_DOMAIN_FPPGC, RM_DVD_DOMAIN_VMGM, RM_DVD_DOMAIN_VTSM, RM_DVD_DOMAIN_VTSTT} RMdvdDomainType;/** Simple Region code aliases */#define RM_DVD_REGION_NORTH_AMERICA RM_DVD_REGION_1#define RM_DVD_REGION_WESTERN_EUROPE_JAPAN RM_DVD_REGION_2#define RM_DVD_REGION_SOUTHEAST_ASIA RM_DVD_REGION_3#define RM_DVD_REGION_SOUTH_AMERICA_AUSTRALIA RM_DVD_REGION_4#define RM_DVD_REGION_EASTERN_EUROPE_AFRICA RM_DVD_REGION_5#define RM_DVD_REGION_CHINA RM_DVD_REGION_6#define RM_DVD_REGION_FREE RM_DVD_REGION_0/** DVD Region codes */typedef enum { RM_DVD_REGION_1 = 1<<0, RM_DVD_REGION_2 = 1<<1, RM_DVD_REGION_3 = 1<<2, RM_DVD_REGION_4 = 1<<3, RM_DVD_REGION_5 = 1<<4, RM_DVD_REGION_6 = 1<<5, RM_DVD_REGION_0 = 1<<6} RMdvdRegionCode;/******************************************************************************* * DVD Query structures *******************************************************************************//** Maximum number of audio streams. 0..7 */#define MAX_AST 8 // 0..7/** Maximum number of subpicture streams. 0..31 */#define MAX_SPST 32 // 0..31/** Maximum number of buttons. 1..36 */#define MAX_BTN 36/** Maximum number of titles 1..99 */#define MAX_TT 99 // 1..99/** Maximum number of angles. 1..9 */#define MAX_AGL 9 // 1..9/** Title Search Pointer Table Information : TT_SRPTI see VI4-12*/typedef struct { /** Number of Titles (1-99) */ RMuint8 numberOfTitles; /** Number of Angles (1-9) for each title */ RMuint8 numberOfAnglesForTitle [MAX_TT]; /** Number of Part_of_Titles (1-99) for each title */ RMuint8 numberOfPTTsForTitle [MAX_TT];} RMdvdTitleSRPTI;/** Each pointer in this structure is a string encoded in charset and ended with the charset-specified end-of-string character.*/typedef struct { RMdvdCharset charset; RMuint8 *titleName; RMuint8 *subTitleName; RMuint8 *orgTitleName; RMuint8 *producerName; RMuint8 *directorName; RMuint8 *scenarioWriter; RMuint8 *originalWriter; RMuint8 *actorsName[10]; /* max = 10. Too bad for the others. */} RMdvdTitleTXTDT;/** attributes of the Audio Streams currently available. See VI4-9, VMGM_AST_ATR, VI4-44, VTSM_AST_ATR and VI4-49, VTS_AST_ATR*/typedef struct { RMdvdAudioType audioType; RMdvdAudioFrequency frequency; RMdvdAudioChannels numberOfChannels; RMbool isLanguage; RMdvdLanguageCode languageCode; RMuint8 languageCodeExtension; RMdvdAudioApplicationMode mode; RMdvdAudioQuantization quantization;} RMdvdAudioStream;/** attributes of the Audio Streams currently available.*/typedef struct { RMbool isAvailable[MAX_AST]; RMdvdAudioStream audioStreams[MAX_AST];} RMdvdAudioStreams;/** attributes of the Sub Picture Streams currently available. See VI4-11 VMGM_SPST_ATR, VI4-46 VTSM_SPST_ATR and VI4-53, VTS_SPST_ATR */typedef struct { RMbool isLanguage; RMdvdLanguageCode languageCode; RMuint8 languageCodeExtension;} RMdvdSubPictureStream;/** attributes of the Sub Picture Streams currently available. */typedef struct { RMbool isAvailable[MAX_SPST]; RMdvdSubPictureStream subPictureStreams[MAX_SPST];} RMdvdSubPictureStreams;/** Button location. */typedef struct { RMuint16 left; RMuint16 right; RMuint16 top; RMuint16 bottom;} RMdvdButtonInformation;/** Button Information */typedef struct { RMuint8 n; RMdvdButtonInformation buttons[MAX_BTN];} RMdvdButtonsInformation;/** DVD initialization structure. Contains the user preferences. */typedef struct { /** SPRM(0). see VI4-158. */ RMdvdLanguageCode menuDescriptionLanguageCode; /** SPRM(11). see VI4-169. */ RMuint16 playerAudioMixingModeForKaraoke; /** The country code used to set the parental level. This is the value set in SPRM(12). see VI4-170 */ RMdvdCountryCode countryCodeForParentalLevel; /** The parental level. This is the value set in SPRM(13). see VI4-170. */ RMdvdParentalLevel parentalLevel; /** Video display mode and aspect ratio. This corresponds to the values set in SPRM(14). see VI4-171. The possible values are: - RM_DVD_VIDEO_16_9__4_3_PANSCAN: you have a 4/3 output screen. If the input is 16/9 format, use panscan output. Otherwise, do not rescale. - RM_DVD_VIDEO_16_9__4_3_LETTERBOX: you have 4/3 output screen. If the input is 16/9 format, use letterbox output. Otherwise, do not rescale. - RM_DVD_VIDEO_4_3__16_9_ZOOM_OFF: you have 16/9 output screen. If the input is 4/3, just output it as-is. Do not rescale for 16/9 input. */ RMdvdVideoMode videoMode; /** Audio Capability. This corresponds to the values set in SPRM(15). see VI4-172. It is a list of ORed RMdvdAudioCapabilities. ie: audioCapability = !RM_DVD_CAN_SDDS_KARAOKE | !RM_DVD_CAN_DTS_KARAOKE | !RM_DVD_CAN_MPEG_KARAOKE | ... */ RMint16 audioCapability; /** Initial Language code for Audio Stream. see VI4-173. SPRM(16) and SPRM(17). */ RMdvdLanguageCode initialLanguageForAudioStream; /** Initial Language code for SubPicture Stream. see VI4-174. SPRM(18) and SPRM(19). */ RMdvdLanguageCode initialLanguageForSubPictureStream; /** see SPRM(20). VI4-175. */ RMdvdRegionCode playerRegionCode;} RMdvdUserSettings;/** GPRM Registers */typedef RMuint16 RMdvdGPRMs[16];/** SPRM Registers */typedef RMuint16 RMdvdSPRMs[24];/** Indicates which user operation (UOP) commands are currently allowed by the digital video disc (DVD). @remarks DVD authors can insert UOP commands at almost any place on the disc to disallow a navigation command that would otherwise be permitted within the current DVD domain. In other words, UOP commands enable disc authors to override the usual navigation permissions. */typedef enum { RM_DVD_UOP_FLAG_Play_Title_Or_AtTime = 0x00000001, RM_DVD_UOP_FLAG_Play_Chapter = 0x00000002, RM_DVD_UOP_FLAG_Play_Title = 0x00000004, RM_DVD_UOP_FLAG_Stop = 0x00000008, RM_DVD_UOP_FLAG_ReturnFromSubMenu = 0x00000010, RM_DVD_UOP_FLAG_Play_Chapter_Or_AtTime = 0x00000020, RM_DVD_UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x00000040, RM_DVD_UOP_FLAG_PlayNext_Chapter = 0x00000080, RM_DVD_UOP_FLAG_Play_Forwards = 0x00000100, RM_DVD_UOP_FLAG_Play_Backwards = 0x00000200, RM_DVD_UOP_FLAG_ShowMenu_Title = 0x00000400, RM_DVD_UOP_FLAG_ShowMenu_Root = 0x00000800, RM_DVD_UOP_FLAG_ShowMenu_SubPic = 0x00001000, RM_DVD_UOP_FLAG_ShowMenu_Audio = 0x00002000, RM_DVD_UOP_FLAG_ShowMenu_Angle = 0x00004000, RM_DVD_UOP_FLAG_ShowMenu_Chapter = 0x00008000, RM_DVD_UOP_FLAG_Resume = 0x00010000, RM_DVD_UOP_FLAG_Select_Or_Activate_Button = 0x00020000, RM_DVD_UOP_FLAG_Still_Off = 0x00040000, RM_DVD_UOP_FLAG_Pause_On = 0x00080000, RM_DVD_UOP_FLAG_Select_Audio_Stream = 0x00100000, RM_DVD_UOP_FLAG_Select_SubPic_Stream = 0x00200000, RM_DVD_UOP_FLAG_Select_Angle = 0x00400000, RM_DVD_UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x00800000, RM_DVD_UOP_FLAG_Select_Video_Mode_Preference = 0x01000000 } RMdvdValidUOPFlag;/** playlist item type */typedef enum { /** Play the chapter as defined by TTN and PTTN */ RM_DVD_PLAYLIST_PLAY_CHAPTER, /** Play the chapter as defined by TTN */ RM_DVD_PLAYLIST_PLAY_TITLE, /** End playlist mode. */ RM_DVD_PLAYLIST_END} RMdvdPlaylistItemType;/** playlist item. */typedef struct { /** item type.*/ RMdvdPlaylistItemType type; /** TTN (title number) for this item if meaningful */ RMuint8 TTN; /** PTTN (chapter number) for this item if meaningful */ RMuint16 PTTN;} RMdvdPlaylistItem;/** Macrovision Levels, see VI4-107 */typedef enum { RM_DVD_MACROVISION_DISABLED = 0, RM_DVD_MACROVISION_LEVEL1 = 1, RM_DVD_MACROVISION_LEVEL2 = 2, RM_DVD_MACROVISION_LEVEL3 = 3} RMdvdMacrovisionLevel;#endif // __DVDNAV_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -