libdvdread

  • VMG - Video Manager Group
  • ifo_handle_t ifofile
    • dvd_file_t file
    • vmgi_mat_t vmgi_mat - VMGI - Video Manager Group IFO (VIDEO_TS.IFO, VIDEO_TS.BUP)
      • vmg_identifier[12] - DVDVIDEO-VMG
      • vmg_last_sector - last sector of VMG set (last sector of VIDEO_TS.BUP)
      • zero_1[12] - reserved / unknown
      • vmgi_last_sector last sector of VIDEO_TS.IFO
      • zero_2 - reserved / unknown
      • specification_version - version number
      • vmg_category - VMG category; byte1=prohibited region mask
      • vmg_nr_of_volumes - number of volumes, as in physical sets of discs (metadata)
      • vmg_this_volume_nr - volume number this disc belongs to (metadata)
      • disc_side - physical side of this disc (metadata)
      • zero_3[19] - reserved / unknown
      • vmg_nr_of_title_sets - number of title sets (VTS, or non-VMG IFOs)
      • provider_identifier - 32 character string of provider id (metadata), usually blank
      • vmg_pos_code - VMG POS (?)
      • zero_4[24] - reserved / unknown
      • vmgi_last_byte - end byte address of VMGI_MAT
      • first_play_pgc - start address of FP_PGC, the first, and only, and optional PGC for this (VMG) IFO
      • zero_5[56] - reserved / unknown
      • vmgm_vobs - starting sector of Menu VOB
      • tt_srpt - starting sector of table of titles, TT_SRPT
      • vmgm_pgci_ut - starting sector of menu program chain table, VMGM_PGCI_UT
      • ptl_mait - starting sector of parental management masks, VMG_PTL_MAIT
      • vts_atrt - starting sector of audio, subtitle attributes, VMG_VTS_ATRT
      • txtdt_mgi - starting sector of text data, VMG_TXTDT_MG
      • vmgm_c_adt - starting sector of menu cell address table, VMGM_C_ADT
      • vmgm_vobu_admap - starting sector of menu VOBU address map, VMGM_VOBU_ADMAP
      • zero_6[32] - reserved / unknown
      • video_attr_t vmgm_video_attr - VMG VOBs video attributes
        • mpeg_version - MPEG version
          • 0: MPEG-1
          • 1: MPEG-2
        • video_format - Video format
          • 0: NTSC
          • 2: PAL
        • display_aspect_ratio - aspect ratio
          • 0: 4:3
          • 1: reserved
          • 2: reserved
          • 3: 16:9
        • permitted_df - permitted display formats (?)
        • line21_cc_1 - CC for line 21 field 1 in GOP (NTSC only)
        • line21_cc_2 - CC for line 22 field 1 in GOP (NTSC only)
        • unknown1 - reserved / unknown
        • bit_rate - ?
        • picture_size - video resolution
          • If format is NTSC:
            • 0: 720×480
            • 1: 704×480
            • 2: 352×480
            • 3: 352×240
          • If format is PAL:
            • 0: 720×576
            • 1: 704×576
            • 2: 352×576
            • 3: 352×288
        • letterboxed
          • 0: no
          • 1: yes
        • film_mode (if PAL)
          • 0: camera
          • 1: film
      • zero_7 - reserved / unknown
      • nr_of_vmgm_audio_streams - number of audio streams in VMG VOBS, must be 0 or 1
      • audio_attr_t vmgm_audio_attr - VMG VOBs audio attributes
        • audio_format - audio codec
          • 0: AC3 (Dolby Digital)
          • 1: unknown
          • 2: MPEG-1
          • 3: MPEG-2EXT
          • 4: LPCM
          • 5: unknown
          • 6: DTS
          • 7: unknown
        • multichannel_extension - multichannel extension exists or not for karaoke mode
        • lang_type - language type (?)
          • 0: unspecified
          • 1: “per bytes 2&3” (DVD info spec)
        • application_mode (?)
          • 0: unspecified
          • 1: karaoke
          • 2: surround
        • quantization - quantization / dynamic range control (DRC)
          • If audio codec is MPEG-1 (2) or MPEG2-EXT (3), then
            • 0: No DRC
            • 1: DRC
          • If audio codec is LPCM (4), then
            • 0: 16 bps
            • 1: 20 bps
            • 2: 24 bps
        • sample_frequency - sample rate
          • 0: 48 Kbps
        • unknown1 - reserved / unknown
        • channels - number of audio channels, 6 (5.1 surround sound) is maximum
        • lang_code - language code
        • lang_extension - reserved for language code extension
        • code_extension - code extension
          • 0: unspecified
          • 1: normal
          • 2: for visually impaired
          • 3: director's comments
          • 4: alternate director's comments
        • unknown3 - reserved / unknown
      • audio_attr_t zero_8[7] - reserved for audio streams, max 8
      • zero_9[17] - reserved / unknown
      • nr_of_vmgm_subp_streams - number of sub-picture streams in VMG VOBS, must be 0 or 1
      • subp_attr_t vmgm_subp_attr - VMG VOBs sub-picture attributes
        • code_mode - coding mode
          • 0: run length
          • 1: extended
          • 2: other
        • zero1 - reserved / unknown / ignored
        • type - language type
          • 0: unspecified
          • 1: language
          • 2: other
        • zero2 - reserved / unknown / ignored
        • lang_code - language code
        • lang_extension - language code extension
        • code_extension - code extension
      • subp_attr_t zero_10[27] - reserved / unknown
    • tt_srpt_t tt_srpt - VMG IFO ONLY, pointers to all the tables on the disk
      • nr_of_srpts - number of titles
      • zero_1 - reserved
      • last_byte - end address, last byte of last entry
      • title_info_t title
        • playback_type_t pb_ty
          • zero_1
          • multi_or_random_pgc_title
          • jlc_exists_in_cell_cmd
          • jlc_exists_in_prepost_cmd
          • jlc_exists_in_button_cmd
          • jlc_exists_in_tt_dom
          • chapter_search_or_play
          • title_or_time_play
        • nr_of_angles - number of angles
        • nr_of_ptts - number of chapters (PTTs)
        • parental_id - parental management mask
        • title_set_nr - VTS number (VTSN)
        • vts_ttn - title number within VTS, VTS_TTN
        • title_set_sector - starting sector for VTS
      • pgc_t first_play_pgc - VMG IFO ONLY, first (and only possible) PGC for VMG IFO
        • zero_1 - reserved / unused
        • nr_of_programs - number of programs
        • nr_of_cells number of cells
        • dvd_time_t playback_time
          • hour
          • minute
          • second
          • frame_u - the two high bits are the framerate
        • user_ops_t prohibited_ops
          • (skipping display of user_ops_t here, see source code)
        • audio_control[8] - audio stream control
        • subp_control[32] - sub-picture stream control
        • next_pgc_nr - next PGCN
        • prev_pgc_nr - previous PGCN
        • goup_pgc_nr - group PGCN
        • still_time - PGC still time, 255 = infinite
        • pg_playback_mode - PG playback mode, 0=sequential, otherwise bit7 indicates random (0) or shuffle (1), and the program count is in bits6-0
        • palette[16] - palette (0, Y, Cr, Cb)
        • command_tbl_offset - offset within PGC to commands
        • program_map_offset - offset within PGC to program map
        • cell_playback_offset - offset within PGC to cell playback information table
        • cell_position_offset - offset within PGC to cell position information table
        • pgc_command_tbl_t command_tbl
          • nr_of_pre - number of pre commands
          • nr_of_post - number of post commands
          • nr_of_cell - number of cell commands
          • zero_1 - end address relative to command table
          • vm_cmd_t pre_cmds
            • bytes[8]
          • vm_cmd_t post_cmds
            • bytes[8]
          • vm_cmd_t cell_cmds
            • bytes[8]
        • pgc_program_map_t program_map - PGC program map (simple typedef of uint8_t)
        • cell_playback_t cell_playback
          • block_mode
          • block_type
          • seamless_play
          • interleaved
          • stc_discontinuity
          • seamless_angle
          • playback_mode
          • restricted
          • unknown2
          • still_time
          • cell_cmd_nr
          • dvd_time_t playback_time
            • hour
            • minute
            • second
            • frame_u
          • first_sector
          • first_ilvu_end_sector
          • last_vobu_start_sector
          • last_sector
        • cell_position_t cell_position - cell position information
          • vob_id_nr
          • zero_1
          • cell_nr
        • ref_count
      • ptl_mait_t ptl_mait - VMG IFO ONLY, parental management information table
        • nr_of_countries - number of countries
        • nr_of_vtss - number of title sets
        • last_byte - end address, last byte of PTL_MAIT
        • ptl_mait_country_t countries
          • country_code
          • zero_1
          • pf_ptl_mai_start_byte
          • zero_2
          • pf_level_t pf_ptl_mai
      • vts_atrt_t vts_atrt - VMG IFO ONLY, VTS Attribution Table
        • nr_of_vtss - number of title sets
        • zero_1
        • last_byte - end address (last byte of last VTS_ATRT)
        • vts_attributes_t vts - VTS attributes
          • last_byte - end address
          • vts_cat
          • video_attr_t vtsm_vobs_attr - video attributes (see above)
          • nr_of_vtsm_audio_streams - limited to maximum of 1 for VMG IFO
          • audio_attr_t vtsm_audio_attr - audio attributes (see above)
          • audio_attr_t zero_2[7]
          • zero_3[16]
          • zero_4
          • nr_of_vtsm_subp_streams - number of sub-picture streams
          • subp_attr_t vtsm_subp_attr - sub-picture attributes (see above)
          • subp_attr_t zero_5[27]
          • zero_6[2]
          • video_attr_t vtstt_vobs_video_attr
          • zero_7
          • nr_of_vtstt_audio_streams
          • audio_attr_t vtstt_audio_attr[8]
          • zero_8[16]
          • zero_9
          • nr_of_vtstt_subp_streams
          • subp_attr_t - vtstt_subp_attr[32]
        • vts_atrt_offsets - offsets table for each vts_attributes
      • txtdt_mgi_t txtdt_mgi - VMG IFO ONLY, Text Data Manager Information
        • disc_name[14] - ?
        • nr_of_language_units - number of language units
        • last_byte
        • txtdt_lu_t lu - language unit
          • lang_code
          • unknown
          • txtdt_start_byte - prt, rel start of vmg_txtdt_mgi
          • txtdt_t txtdt
            • last_byte
            • offsets[100]
      • pgci_ut_t pgci_ut - VMG AND VTS, Menu PGCI Unit Table
        • nr_of_lus - number of language units
        • zero_1
        • last_byte
        • pgci_lu_t lu - Menu PGCI Language Unit
          • lang_code
          • lang_extension
          • exists
          • lang_start_byte
          • pgcit_t pgcit - Program Chain Information Table
            • nr_of_pgci_srp
            • zero_1
            • last_byte
            • pgci_srp_t pgci_srp - Program Chain Information Search Pointer
              • entry_id
              • block_mode
              • block_type
              • unknown1
              • ptl_id_mask
              • pgc_start_byte
              • pgc_t pgc (see above)
            • ref_count
      • c_adt_t menu_c_adt - VMG and VTS IFOs, Cell Address Table
        • nr_of_vobs - number of VOBs (max 99)
        • zero_1
        • last_byte
        • cell_adr_t cell_adr_table
          • vob_id
          • cell_id
          • zero_1
          • start_sector
          • last_sector
      • vobu_admap_t menu_vobu_admap - VMG and VTS IFOs, VOBU Address Map
        • last_byte
        • vobu_start_sectors
      • vtsi_mat_t vtsi_mat - VTS IFOs only, Video Title Set Information Management Table
        • vts_identifier[12] - VTS identifier
        • vts_last_sector - last sector of VTS (BUP)
        • zero_1[12] - reserved / unknown
        • vtsi_last_sector - last sector of VTS IFO
        • zero_2
        • specification_version
        • vts_category - VTS category
          • 0: unspecified
          • 1: karaoke
        • zero_3
        • zero_4
        • zero_5
        • zero_6[19]
        • zero_7
        • zero_8[32]
        • zero_9
        • zero_10[24]
        • vtsi_last_byte - last byte of VTS IFO
        • zero_11
        • zero_12[56]
        • vtsm_vobs - starting sector of VTS Menu VOBs
        • vtstt_vobs - starting sector of table of titles
      • vts_ptt_srpt_t vts_ptt_srpt - VTS IFOs only, Part of Title Search Pointer Table
        • nr_of_srpts
        • zero_1
        • last_byte
        • ttu_t title
        • ttu_offset
      • pgcit_t vts_pgcit - VTS IFOs only, Program Chain Information Table (see above)
      • vts_tmapt_t vts_tmapt - VTS IFOs only, time maps for each PGC
        • nr_of_tmaps - number of program chains
        • zero_1
        • last_byte - end address (last byte of last VTS_TMAP)
        • vts_tmap_t tmap
          • tmu - time unit, in seconds
          • zero_1 - reserved / unknown / safe to ignore
          • nr_of_entries - number of entries in map; 0 for empty map
          • map_ent_t map_ent - time map entry (typedef as uint32_t)
      • c_adt_t vts_c_adt VTS IFOs only, VTS cell address table
      • vobu_admap_t vts_vobu_admap
      • VIDEO_TS.VOB

Navigation