Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
libdvdread [2015/01/16 11:39]
beandog
libdvdread [2015/01/16 16:08]
beandog
Line 151: Line 151:
         * ''​vts_ttn''​ - title number within VTS, VTS_TTN         * ''​vts_ttn''​ - title number within VTS, VTS_TTN
         * ''​title_set_sector''​ - starting sector for VTS         * ''​title_set_sector''​ - starting sector for VTS
-      * **''​pgc_t''​** ''​first_play_pgc''​ - first (and only possible) PGC for VMG IFO+      * **''​pgc_t''​** ''​first_play_pgc''​ - **VMG IFO ONLY**, ​first (and only possible) PGC for VMG IFO
         * ''​zero_1''​ - reserved / unused         * ''​zero_1''​ - reserved / unused
         * ''​nr_of_programs''​ - number of programs         * ''​nr_of_programs''​ - number of programs
Line 185: Line 185:
           * **''​vm_cmd_t''​** ''​cell_cmds''​           * **''​vm_cmd_t''​** ''​cell_cmds''​
             * ''​bytes[8]''​             * ''​bytes[8]''​
-      ​* **''​ptl_mait_t''​** ''​ptl_mait''​ - parental management information table+        * **''​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_countries''​ - number of countries
         * ''​nr_of_vtss''​ - number of title sets         * ''​nr_of_vtss''​ - number of title sets
Line 195: Line 222:
           * ''​zero_2''​           * ''​zero_2''​
           * **''​pf_level_t''​** ''​pf_ptl_mai''​           * **''​pf_level_t''​** ''​pf_ptl_mai''​
-      * **''​vts_atrt_t''​** ''​vts_atrt''​ - VTS Attribution Table+      * **''​vts_atrt_t''​** ''​vts_atrt''​ - **VMG IFO ONLY**, ​VTS Attribution Table
         * ''​nr_of_vtss''​ - number of title sets         * ''​nr_of_vtss''​ - number of title sets
         * ''​zero_1''​         * ''​zero_1''​
Line 220: Line 247:
           * ''​nr_of_vtstt_subp_streams''​           * ''​nr_of_vtstt_subp_streams''​
           * **''​subp_attr_t''​** - vtstt_subp_attr[32]           * **''​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''​ - 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''​ - Part of Title Search Pointer Table
 +        * ''​nr_of_srpts''​
 +        * ''​zero_1''​
 +        * ''​last_byte''​
 +        * **''​ttu_t''​** title
 +        * ''​ttu_offset''​
 +      * **''​pgcit_t''​** ''​vts_pgcit''​ - Program Chain Information Table (see above) ​     ​
 +      * **''​vts_tmapt_t''​** ''​vts_tmapt''​ - 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''​
 +      * **''​vobu_admap_t''​** ''​vts_vobu_admap''​
     * [[VMGM]]     * [[VMGM]]
       * ''​VIDEO_TS.VOB''​       * ''​VIDEO_TS.VOB''​
- 
-  * **[[VMG]]** 
-    * vmgi_mat_t 
-    * playback_type_t 
-    * title_info_t 
-    * tt_srpt_t 
-    * pf_level_t 
-    * ptl_mait_country_t 
-    * ptl_mait_t 
-    * vts_attributes_t 
-    * vts_atrt_t 
-    * txtdt_t 
-    * txtdt_lu_t 
-    * txtdt_mgi_t 
-  * **[[VTS]]** 
-    * vtsi_mat_t 
-    * ptt_info_t 
-    * ttu_t 
-    * vts_ptt_srpt_t 
-    * map_ent_t 
-    * vts_tmap_t 
-    * vts_tmapt_t 
-  * **All [[IFO|IFOs]]** 
-    * ifo_handle_t 
- 
-<​code>​ 
-typedef struct { 
-  dvd_file_t *file; 
- 
-  /* VMGI */ 
-  vmgi_mat_t ​    ​*vmgi_mat;​ 
-  tt_srpt_t ​     *tt_srpt; 
-  pgc_t          *first_play_pgc;​ 
-  ptl_mait_t ​    ​*ptl_mait;​ 
-  vts_atrt_t ​    ​*vts_atrt;​ 
-  txtdt_mgi_t ​   *txtdt_mgi; 
- 
-  /* Common */ 
-  pgci_ut_t ​     *pgci_ut; 
-  c_adt_t ​       *menu_c_adt;​ 
-  vobu_admap_t ​  ​*menu_vobu_admap;​ 
- 
-  /* VTSI */ 
-  vtsi_mat_t ​    ​*vtsi_mat;​ 
-  vts_ptt_srpt_t *vts_ptt_srpt;​ 
-  pgcit_t ​       *vts_pgcit; 
-  vts_tmapt_t ​   *vts_tmapt; 
-  c_adt_t ​       *vts_c_adt; 
-  vobu_admap_t ​  ​*vts_vobu_admap;​ 
-} ifo_handle_t;​ 
-</​code>​ 

Navigation