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
libdvdread [2015/01/16 11:39]
beandog
libdvdread [2015/01/16 16:21] (current)
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''​ - **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''​
     * [[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