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:27]
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_atr_t''​** ''​vts_atrt''​+      * **''​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''​
     * [[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