/* * Copyright (C) 2000, 2001 Björn Englund, Håkan Hjort * * This file is part of libdvdnav, a DVD navigation library. It is a modified * file originally part of the Ogle DVD player project. * * libdvdnav is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * libdvdnav is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with libdvdnav; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* * Various useful structs and enums for DVDs. */ /* * DVD Menu ID * (see dvdnav_menu_call()) */ typedef enum { /* When used in VTS domain, DVD_MENU_Escape behaves like DVD_MENU_Root, * but from within a menu domain, DVD_MENU_Escape resumes playback. */ DVD_MENU_Escape = 0, DVD_MENU_Title = 2, DVD_MENU_Root = 3, DVD_MENU_Subpicture = 4, DVD_MENU_Audio = 5, DVD_MENU_Angle = 6, DVD_MENU_Part = 7 } DVDMenuID_t; /* Domain */ typedef enum { DVD_DOMAIN_FirstPlay = 1, /* First Play Domain */ DVD_DOMAIN_VTSTitle = 2, /* Video Title Set Domain */ DVD_DOMAIN_VMGM = 4, /* Video Manager Domain */ DVD_DOMAIN_VTSMenu = 8 /* Video Title Set Menu Domain */ } DVDDomain_t; /* * Structure containing info on highlight areas * (see dvdnav_get_highlight_area()) */ typedef struct { uint32_t palette; /* The CLUT entries for the highlight palette (4-bits per entry -> 4 entries) */ uint16_t sx,sy,ex,ey; /* The start/end x,y positions */ uint32_t pts; /* Highlight PTS to match with SPU */ /* button number for the SPU decoder/overlaying engine */ uint32_t buttonN; } dvdnav_highlight_area_t; /* The audio format */ typedef enum { DVD_AUDIO_FORMAT_AC3 = 0, DVD_AUDIO_FORMAT_UNKNOWN_1 = 1, DVD_AUDIO_FORMAT_MPEG = 2, DVD_AUDIO_FORMAT_MPEG2_EXT = 3, DVD_AUDIO_FORMAT_LPCM = 4, DVD_AUDIO_FORMAT_UNKNOWN_5 = 5, DVD_AUDIO_FORMAT_DTS = 6, DVD_AUDIO_FORMAT_SDDS = 7 } DVDAudioFormat_t; /* the following types are currently unused */ // #if 0 // /* User operation permissions */ // typedef enum { // UOP_FLAG_TitleOrTimePlay = 0x00000001, // UOP_FLAG_ChapterSearchOrPlay = 0x00000002, // UOP_FLAG_TitlePlay = 0x00000004, // UOP_FLAG_Stop = 0x00000008, // UOP_FLAG_GoUp = 0x00000010, // UOP_FLAG_TimeOrChapterSearch = 0x00000020, // UOP_FLAG_PrevOrTopPGSearch = 0x00000040, // UOP_FLAG_NextPGSearch = 0x00000080, // UOP_FLAG_ForwardScan = 0x00000100, // UOP_FLAG_BackwardScan = 0x00000200, // UOP_FLAG_TitleMenuCall = 0x00000400, // UOP_FLAG_RootMenuCall = 0x00000800, // UOP_FLAG_SubPicMenuCall = 0x00001000, // UOP_FLAG_AudioMenuCall = 0x00002000, // UOP_FLAG_AngleMenuCall = 0x00004000, // UOP_FLAG_ChapterMenuCall = 0x00008000, // UOP_FLAG_Resume = 0x00010000, // UOP_FLAG_ButtonSelectOrActivate = 0x00020000, // UOP_FLAG_StillOff = 0x00040000, // UOP_FLAG_PauseOn = 0x00080000, // UOP_FLAG_AudioStreamChange = 0x00100000, // UOP_FLAG_SubPicStreamChange = 0x00200000, // UOP_FLAG_AngleChange = 0x00400000, // UOP_FLAG_KaraokeAudioPresModeChange = 0x00800000, // UOP_FLAG_VideoPresModeChange = 0x01000000 // } DVDUOP_t; // /* Parental Level */ // typedef enum { // DVD_PARENTAL_LEVEL_1 = 1, // DVD_PARENTAL_LEVEL_2 = 2, // DVD_PARENTAL_LEVEL_3 = 3, // DVD_PARENTAL_LEVEL_4 = 4, // DVD_PARENTAL_LEVEL_5 = 5, // DVD_PARENTAL_LEVEL_6 = 6, // DVD_PARENTAL_LEVEL_7 = 7, // DVD_PARENTAL_LEVEL_8 = 8, // DVD_PARENTAL_LEVEL_None = 15 // } DVDParentalLevel_t; // /* Language ID (ISO-639 language code) */ // typedef uint16_t DVDLangID_t; // /* Country ID (ISO-3166 country code) */ // typedef uint16_t DVDCountryID_t; // /* Register */ // typedef uint16_t DVDRegister_t; // typedef enum { // DVDFalse = 0, // DVDTrue = 1 // } DVDBool_t; // typedef DVDRegister_t DVDGPRMArray_t[16]; // typedef DVDRegister_t DVDSPRMArray_t[24]; // /* Navigation */ // typedef int DVDStream_t; // typedef int DVDPTT_t; // typedef int DVDTitle_t; // /* Angle number (1-9 or default?) */ // typedef int DVDAngle_t; // /* Timecode */ // typedef struct { // uint8_t Hours; // uint8_t Minutes; // uint8_t Seconds; // uint8_t Frames; // } DVDTimecode_t; // /* Subpicture stream number (0-31,62,63) */ // typedef int DVDSubpictureStream_t; // /* Audio stream number (0-7, 15(none)) */ // typedef int DVDAudioStream_t; // /* The audio application mode */ // typedef enum { // DVD_AUDIO_APP_MODE_None = 0, // DVD_AUDIO_APP_MODE_Karaoke = 1, // DVD_AUDIO_APP_MODE_Surround = 2, // DVD_AUDIO_APP_MODE_Other = 3 // } DVDAudioAppMode_t; // /* Audio language extension */ // typedef enum { // DVD_AUDIO_LANG_EXT_NotSpecified = 0, // DVD_AUDIO_LANG_EXT_NormalCaptions = 1, // DVD_AUDIO_LANG_EXT_VisuallyImpaired = 2, // DVD_AUDIO_LANG_EXT_DirectorsComments1 = 3, // DVD_AUDIO_LANG_EXT_DirectorsComments2 = 4 // } DVDAudioLangExt_t; // /* Subpicture language extension */ // typedef enum { // DVD_SUBPICTURE_LANG_EXT_NotSpecified = 0, // DVD_SUBPICTURE_LANG_EXT_NormalCaptions = 1, // DVD_SUBPICTURE_LANG_EXT_BigCaptions = 2, // DVD_SUBPICTURE_LANG_EXT_ChildrensCaptions = 3, // DVD_SUBPICTURE_LANG_EXT_NormalCC = 5, // DVD_SUBPICTURE_LANG_EXT_BigCC = 6, // DVD_SUBPICTURE_LANG_EXT_ChildrensCC = 7, // DVD_SUBPICTURE_LANG_EXT_Forced = 9, // DVD_SUBPICTURE_LANG_EXT_NormalDirectorsComments = 13, // DVD_SUBPICTURE_LANG_EXT_BigDirectorsComments = 14, // DVD_SUBPICTURE_LANG_EXT_ChildrensDirectorsComments = 15, // } DVDSubpictureLangExt_t; // /* Karaoke Downmix mode */ // typedef enum { // DVD_KARAOKE_DOWNMIX_0to0 = 0x0001, // DVD_KARAOKE_DOWNMIX_1to0 = 0x0002, // DVD_KARAOKE_DOWNMIX_2to0 = 0x0004, // DVD_KARAOKE_DOWNMIX_3to0 = 0x0008, // DVD_KARAOKE_DOWNMIX_4to0 = 0x0010, // DVD_KARAOKE_DOWNMIX_Lto0 = 0x0020, // DVD_KARAOKE_DOWNMIX_Rto0 = 0x0040, // DVD_KARAOKE_DOWNMIX_0to1 = 0x0100, // DVD_KARAOKE_DOWNMIX_1to1 = 0x0200, // DVD_KARAOKE_DOWNMIX_2to1 = 0x0400, // DVD_KARAOKE_DOWNMIX_3to1 = 0x0800, // DVD_KARAOKE_DOWNMIX_4to1 = 0x1000, // DVD_KARAOKE_DOWNMIX_Lto1 = 0x2000, // DVD_KARAOKE_DOWNMIX_Rto1 = 0x4000 // } DVDKaraokeDownmix_t; // typedef int DVDKaraokeDownmixMask_t; // /* Display mode */ // typedef enum { // DVD_DISPLAY_MODE_ContentDefault = 0, // DVD_DISPLAY_MODE_16x9 = 1, // DVD_DISPLAY_MODE_4x3PanScan = 2, // DVD_DISPLAY_MODE_4x3Letterboxed = 3 // } DVDDisplayMode_t; // /* Audio attributes */ // typedef struct { // DVDAudioAppMode_t AppMode; // DVDAudioFormat_t AudioFormat; // DVDLangID_t Language; // DVDAudioLangExt_t LanguageExtension; // DVDBool_t HasMultichannelInfo; // DVDAudioSampleFreq_t SampleFrequency; // DVDAudioSampleQuant_t SampleQuantization; // DVDChannelNumber_t NumberOfChannels; // } DVDAudioAttributes_t; // typedef int DVDAudioSampleFreq_t; // typedef int DVDAudioSampleQuant_t; // typedef int DVDChannelNumber_t; // /* Subpicture attributes */ // typedef enum { // DVD_SUBPICTURE_TYPE_NotSpecified = 0, // DVD_SUBPICTURE_TYPE_Language = 1, // DVD_SUBPICTURE_TYPE_Other = 2 // } DVDSubpictureType_t; // typedef enum { // DVD_SUBPICTURE_CODING_RunLength = 0, // DVD_SUBPICTURE_CODING_Extended = 1, // DVD_SUBPICTURE_CODING_Other = 2 // } DVDSubpictureCoding_t; // typedef struct { // DVDSubpictureType_t Type; // DVDSubpictureCoding_t CodingMode; // DVDLangID_t Language; // DVDSubpictureLangExt_t LanguageExtension; // } DVDSubpictureAttributes_t; // /* Video attributes */ // typedef struct { // DVDBool_t PanscanPermitted; // DVDBool_t LetterboxPermitted; // int AspectX; // int AspectY; // int FrameRate; // int FrameHeight; // DVDVideoCompression_t Compression; // DVDBool_t Line21Field1InGop; // DVDBool_t Line21Field2InGop; // int more_to_come; // } DVDVideoAttributes_t; // typedef int DVDVideoCompression_t; // #endif