Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
libdvdread [2015/01/16 18:47] beandoglibdvdread [2015/01/16 23: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 221: Line 248:
           * **''subp_attr_t''** - vtstt_subp_attr[32]           * **''subp_attr_t''** - vtstt_subp_attr[32]
         * ''vts_atrt_offsets'' - offsets table for each vts_attributes         * ''vts_atrt_offsets'' - offsets table for each vts_attributes
-      * **''txtdt_mgi_t''** ''txtdt_mgi'' - Text Data Manager Information+      * **''txtdt_mgi_t''** ''txtdt_mgi''**VMG IFO ONLY**, Text Data Manager Information
         * ''disc_name[14]'' - ?         * ''disc_name[14]'' - ?
         * ''nr_of_language_units'' - number of language units         * ''nr_of_language_units'' - number of language units
         * ''last_byte''         * ''last_byte''
-        * **''txtdt_lu_t''** ''lu''+        * **''txtdt_lu_t''** ''lu'' - language unit
           * ''lang_code''           * ''lang_code''
           * ''unknown''           * ''unknown''
Line 232: Line 259:
             * ''last_byte''             * ''last_byte''
             * ''offsets[100]''             * ''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>