comparison ifo_types.h @ 20:fce16251755c src

Remove all trailing whitespace, patch by Erik Hovland *erik$hovland dot org%
author rathann
date Sat, 06 Sep 2008 21:55:51 +0000
parents fdbae45c30fc
children 4aa618ae094f
comparison
equal deleted inserted replaced
19:7f7e87bd7536 20:fce16251755c
23 #include <inttypes.h> 23 #include <inttypes.h>
24 #include "dvd_reader.h" 24 #include "dvd_reader.h"
25 25
26 26
27 #undef ATTRIBUTE_PACKED 27 #undef ATTRIBUTE_PACKED
28 #undef PRAGMA_PACK_BEGIN 28 #undef PRAGMA_PACK_BEGIN
29 #undef PRAGMA_PACK_END 29 #undef PRAGMA_PACK_END
30 30
31 #if defined(__GNUC__) 31 #if defined(__GNUC__)
32 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) 32 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
33 #define ATTRIBUTE_PACKED __attribute__ ((packed)) 33 #define ATTRIBUTE_PACKED __attribute__ ((packed))
77 typedef struct { 77 typedef struct {
78 unsigned char mpeg_version : 2; 78 unsigned char mpeg_version : 2;
79 unsigned char video_format : 2; 79 unsigned char video_format : 2;
80 unsigned char display_aspect_ratio : 2; 80 unsigned char display_aspect_ratio : 2;
81 unsigned char permitted_df : 2; 81 unsigned char permitted_df : 2;
82 82
83 unsigned char line21_cc_1 : 1; 83 unsigned char line21_cc_1 : 1;
84 unsigned char line21_cc_2 : 1; 84 unsigned char line21_cc_2 : 1;
85 unsigned char unknown1 : 1; 85 unsigned char unknown1 : 1;
86 unsigned char bit_rate : 1; 86 unsigned char bit_rate : 1;
87 87
88 unsigned char picture_size : 2; 88 unsigned char picture_size : 2;
89 unsigned char letterboxed : 1; 89 unsigned char letterboxed : 1;
90 unsigned char film_mode : 1; 90 unsigned char film_mode : 1;
91 } ATTRIBUTE_PACKED video_attr_t; 91 } ATTRIBUTE_PACKED video_attr_t;
92 92
96 typedef struct { 96 typedef struct {
97 unsigned char audio_format : 3; 97 unsigned char audio_format : 3;
98 unsigned char multichannel_extension : 1; 98 unsigned char multichannel_extension : 1;
99 unsigned char lang_type : 2; 99 unsigned char lang_type : 2;
100 unsigned char application_mode : 2; 100 unsigned char application_mode : 2;
101 101
102 unsigned char quantization : 2; 102 unsigned char quantization : 2;
103 unsigned char sample_frequency : 2; 103 unsigned char sample_frequency : 2;
104 unsigned char unknown1 : 1; 104 unsigned char unknown1 : 1;
105 unsigned char channels : 3; 105 unsigned char channels : 3;
106 uint16_t lang_code; 106 uint16_t lang_code;
180 180
181 181
182 182
183 /** 183 /**
184 * PGC Command Table. 184 * PGC Command Table.
185 */ 185 */
186 typedef struct { 186 typedef struct {
187 uint16_t nr_of_pre; 187 uint16_t nr_of_pre;
188 uint16_t nr_of_post; 188 uint16_t nr_of_post;
189 uint16_t nr_of_cell; 189 uint16_t nr_of_cell;
190 uint16_t zero_1; 190 uint16_t zero_1;
195 #define PGC_COMMAND_TBL_SIZE 8U 195 #define PGC_COMMAND_TBL_SIZE 8U
196 196
197 /** 197 /**
198 * PGC Program Map 198 * PGC Program Map
199 */ 199 */
200 typedef uint8_t pgc_program_map_t; 200 typedef uint8_t pgc_program_map_t;
201 201
202 /** 202 /**
203 * Cell Playback Information. 203 * Cell Playback Information.
204 */ 204 */
205 typedef struct { 205 typedef struct {
242 * User Operations. 242 * User Operations.
243 */ 243 */
244 typedef struct { 244 typedef struct {
245 unsigned int zero : 7; /* 25-31 */ 245 unsigned int zero : 7; /* 25-31 */
246 unsigned int video_pres_mode_change : 1; /* 24 */ 246 unsigned int video_pres_mode_change : 1; /* 24 */
247 247
248 unsigned int karaoke_audio_pres_mode_change : 1; /* 23 */ 248 unsigned int karaoke_audio_pres_mode_change : 1; /* 23 */
249 unsigned int angle_change : 1; 249 unsigned int angle_change : 1;
250 unsigned int subpic_stream_change : 1; 250 unsigned int subpic_stream_change : 1;
251 unsigned int audio_stream_change : 1; 251 unsigned int audio_stream_change : 1;
252 unsigned int pause_on : 1; 252 unsigned int pause_on : 1;
253 unsigned int still_off : 1; 253 unsigned int still_off : 1;
254 unsigned int button_select_or_activate : 1; 254 unsigned int button_select_or_activate : 1;
255 unsigned int resume : 1; /* 16 */ 255 unsigned int resume : 1; /* 16 */
256 256
257 unsigned int chapter_menu_call : 1; /* 15 */ 257 unsigned int chapter_menu_call : 1; /* 15 */
258 unsigned int angle_menu_call : 1; 258 unsigned int angle_menu_call : 1;
259 unsigned int audio_menu_call : 1; 259 unsigned int audio_menu_call : 1;
260 unsigned int subpic_menu_call : 1; 260 unsigned int subpic_menu_call : 1;
261 unsigned int root_menu_call : 1; 261 unsigned int root_menu_call : 1;
262 unsigned int title_menu_call : 1; 262 unsigned int title_menu_call : 1;
263 unsigned int backward_scan : 1; 263 unsigned int backward_scan : 1;
264 unsigned int forward_scan : 1; /* 8 */ 264 unsigned int forward_scan : 1; /* 8 */
265 265
266 unsigned int next_pg_search : 1; /* 7 */ 266 unsigned int next_pg_search : 1; /* 7 */
267 unsigned int prev_or_top_pg_search : 1; 267 unsigned int prev_or_top_pg_search : 1;
268 unsigned int time_or_chapter_search : 1; 268 unsigned int time_or_chapter_search : 1;
269 unsigned int go_up : 1; 269 unsigned int go_up : 1;
270 unsigned int stop : 1; 270 unsigned int stop : 1;
418 uint32_t vts_atrt; /* sector */ 418 uint32_t vts_atrt; /* sector */
419 uint32_t txtdt_mgi; /* sector */ 419 uint32_t txtdt_mgi; /* sector */
420 uint32_t vmgm_c_adt; /* sector */ 420 uint32_t vmgm_c_adt; /* sector */
421 uint32_t vmgm_vobu_admap; /* sector */ 421 uint32_t vmgm_vobu_admap; /* sector */
422 uint8_t zero_6[32]; 422 uint8_t zero_6[32];
423 423
424 video_attr_t vmgm_video_attr; 424 video_attr_t vmgm_video_attr;
425 uint8_t zero_7; 425 uint8_t zero_7;
426 uint8_t nr_of_vmgm_audio_streams; /* should be 0 or 1 */ 426 uint8_t nr_of_vmgm_audio_streams; /* should be 0 or 1 */
427 audio_attr_t vmgm_audio_attr; 427 audio_attr_t vmgm_audio_attr;
428 audio_attr_t zero_8[7]; 428 audio_attr_t zero_8[7];
501 * Video Title Set Attributes. 501 * Video Title Set Attributes.
502 */ 502 */
503 typedef struct { 503 typedef struct {
504 uint32_t last_byte; 504 uint32_t last_byte;
505 uint32_t vts_cat; 505 uint32_t vts_cat;
506 506
507 video_attr_t vtsm_vobs_attr; 507 video_attr_t vtsm_vobs_attr;
508 uint8_t zero_1; 508 uint8_t zero_1;
509 uint8_t nr_of_vtsm_audio_streams; /* should be 0 or 1 */ 509 uint8_t nr_of_vtsm_audio_streams; /* should be 0 or 1 */
510 audio_attr_t vtsm_audio_attr; 510 audio_attr_t vtsm_audio_attr;
511 audio_attr_t zero_2[7]; 511 audio_attr_t zero_2[7];
512 uint8_t zero_3[16]; 512 uint8_t zero_3[16];
513 uint8_t zero_4; 513 uint8_t zero_4;
514 uint8_t nr_of_vtsm_subp_streams; /* should be 0 or 1 */ 514 uint8_t nr_of_vtsm_subp_streams; /* should be 0 or 1 */
515 subp_attr_t vtsm_subp_attr; 515 subp_attr_t vtsm_subp_attr;
516 subp_attr_t zero_5[27]; 516 subp_attr_t zero_5[27];
517 517
518 uint8_t zero_6[2]; 518 uint8_t zero_6[2];
519 519
520 video_attr_t vtstt_vobs_video_attr; 520 video_attr_t vtstt_vobs_video_attr;
521 uint8_t zero_7; 521 uint8_t zero_7;
522 uint8_t nr_of_vtstt_audio_streams; 522 uint8_t nr_of_vtstt_audio_streams;
523 audio_attr_t vtstt_audio_attr[8]; 523 audio_attr_t vtstt_audio_attr[8];
524 uint8_t zero_8[16]; 524 uint8_t zero_8[16];
545 * Text Data. (Incomplete) 545 * Text Data. (Incomplete)
546 */ 546 */
547 typedef struct { 547 typedef struct {
548 uint32_t last_byte; /* offsets are relative here */ 548 uint32_t last_byte; /* offsets are relative here */
549 uint16_t offsets[100]; /* == nr_of_srpts + 1 (first is disc title) */ 549 uint16_t offsets[100]; /* == nr_of_srpts + 1 (first is disc title) */
550 #if 0 550 #if 0
551 uint16_t unknown; /* 0x48 ?? 0x48 words (16bit) info following */ 551 uint16_t unknown; /* 0x48 ?? 0x48 words (16bit) info following */
552 uint16_t zero_1; 552 uint16_t zero_1;
553 553
554 uint8_t type_of_info; /* ?? 01 == disc, 02 == Title, 04 == Title part */ 554 uint8_t type_of_info; /* ?? 01 == disc, 02 == Title, 04 == Title part */
555 uint8_t unknown1; 555 uint8_t unknown1;
556 uint8_t unknown2; 556 uint8_t unknown2;
557 uint8_t unknown3; 557 uint8_t unknown3;
558 uint8_t unknown4; /* ?? allways 0x30 language?, text format? */ 558 uint8_t unknown4; /* ?? allways 0x30 language?, text format? */
559 uint8_t unknown5; 559 uint8_t unknown5;
560 uint16_t offset; /* from first */ 560 uint16_t offset; /* from first */
561 561
562 char text[12]; /* ended by 0x09 */ 562 char text[12]; /* ended by 0x09 */
563 #endif 563 #endif
564 } ATTRIBUTE_PACKED txtdt_t; 564 } ATTRIBUTE_PACKED txtdt_t;
565 565
566 /** 566 /**
567 * Text Data Language Unit. (Incomplete) 567 * Text Data Language Unit. (Incomplete)
568 */ 568 */
569 typedef struct { 569 typedef struct {
570 uint16_t lang_code; 570 uint16_t lang_code;
571 uint16_t unknown; /* 0x0001, title 1? disc 1? side 1? */ 571 uint16_t unknown; /* 0x0001, title 1? disc 1? side 1? */
572 uint32_t txtdt_start_byte; /* prt, rel start of vmg_txtdt_mgi */ 572 uint32_t txtdt_start_byte; /* prt, rel start of vmg_txtdt_mgi */
573 txtdt_t *txtdt; 573 txtdt_t *txtdt;
623 uint32_t vtsm_c_adt; /* sector */ 623 uint32_t vtsm_c_adt; /* sector */
624 uint32_t vtsm_vobu_admap; /* sector */ 624 uint32_t vtsm_vobu_admap; /* sector */
625 uint32_t vts_c_adt; /* sector */ 625 uint32_t vts_c_adt; /* sector */
626 uint32_t vts_vobu_admap; /* sector */ 626 uint32_t vts_vobu_admap; /* sector */
627 uint8_t zero_13[24]; 627 uint8_t zero_13[24];
628 628
629 video_attr_t vtsm_video_attr; 629 video_attr_t vtsm_video_attr;
630 uint8_t zero_14; 630 uint8_t zero_14;
631 uint8_t nr_of_vtsm_audio_streams; /* should be 0 or 1 */ 631 uint8_t nr_of_vtsm_audio_streams; /* should be 0 or 1 */
632 audio_attr_t vtsm_audio_attr; 632 audio_attr_t vtsm_audio_attr;
633 audio_attr_t zero_15[7]; 633 audio_attr_t zero_15[7];
634 uint8_t zero_16[17]; 634 uint8_t zero_16[17];
635 uint8_t nr_of_vtsm_subp_streams; /* should be 0 or 1 */ 635 uint8_t nr_of_vtsm_subp_streams; /* should be 0 or 1 */
636 subp_attr_t vtsm_subp_attr; 636 subp_attr_t vtsm_subp_attr;
637 subp_attr_t zero_17[27]; 637 subp_attr_t zero_17[27];
638 uint8_t zero_18[2]; 638 uint8_t zero_18[2];
639 639
640 video_attr_t vts_video_attr; 640 video_attr_t vts_video_attr;
641 uint8_t zero_19; 641 uint8_t zero_19;
642 uint8_t nr_of_vts_audio_streams; 642 uint8_t nr_of_vts_audio_streams;
643 audio_attr_t vts_audio_attr[8]; 643 audio_attr_t vts_audio_attr[8];
644 uint8_t zero_20[17]; 644 uint8_t zero_20[17];
719 * VIDEO_TS.[IFO,BUP] file, and the VTSI, or Video Title Set Information, which 719 * VIDEO_TS.[IFO,BUP] file, and the VTSI, or Video Title Set Information, which
720 * is read in from the VTS_XX_0.[IFO,BUP] files. 720 * is read in from the VTS_XX_0.[IFO,BUP] files.
721 */ 721 */
722 typedef struct { 722 typedef struct {
723 dvd_file_t *file; 723 dvd_file_t *file;
724 724
725 /* VMGI */ 725 /* VMGI */
726 vmgi_mat_t *vmgi_mat; 726 vmgi_mat_t *vmgi_mat;
727 tt_srpt_t *tt_srpt; 727 tt_srpt_t *tt_srpt;
728 pgc_t *first_play_pgc; 728 pgc_t *first_play_pgc;
729 ptl_mait_t *ptl_mait; 729 ptl_mait_t *ptl_mait;
730 vts_atrt_t *vts_atrt; 730 vts_atrt_t *vts_atrt;
731 txtdt_mgi_t *txtdt_mgi; 731 txtdt_mgi_t *txtdt_mgi;
732 732
733 /* Common */ 733 /* Common */
734 pgci_ut_t *pgci_ut; 734 pgci_ut_t *pgci_ut;
735 c_adt_t *menu_c_adt; 735 c_adt_t *menu_c_adt;
736 vobu_admap_t *menu_vobu_admap; 736 vobu_admap_t *menu_vobu_admap;
737 737
738 /* VTSI */ 738 /* VTSI */
739 vtsi_mat_t *vtsi_mat; 739 vtsi_mat_t *vtsi_mat;
740 vts_ptt_srpt_t *vts_ptt_srpt; 740 vts_ptt_srpt_t *vts_ptt_srpt;
741 pgcit_t *vts_pgcit; 741 pgcit_t *vts_pgcit;
742 vts_tmapt_t *vts_tmapt; 742 vts_tmapt_t *vts_tmapt;