Mercurial > mplayer.hg
changeset 16659:f734c20de10a
Add changes from last patch (stream mapping).
author | reimar |
---|---|
date | Tue, 04 Oct 2005 16:47:38 +0000 |
parents | b733dccdc4c2 |
children | 338f5c64434b |
files | libmpdvdkit2/libdvdread_changes.diff |
diffstat | 1 files changed, 114 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpdvdkit2/libdvdread_changes.diff Tue Oct 04 16:29:23 2005 +0000 +++ b/libmpdvdkit2/libdvdread_changes.diff Tue Oct 04 16:47:38 2005 +0000 @@ -300,8 +300,55 @@ #include <sys/stat.h> #include <unistd.h> diff -Naur dvdread.orig/ifo_print.c dvdread/ifo_print.c +--- dvdread.orig/ifo_print.c 30 Jun 2005 22:48:26 -0000 1.4 ++++ dvdread/ifo_print.c 3 Oct 2005 14:29:01 -0000 1.5 +@@ -761,14 +761,14 @@ + ifoPrint_USER_OPS(&pgc->prohibited_ops); + + for(i = 0; i < 8; i++) { +- if(pgc->audio_control[i] & 0x8000) { /* The 'is present' bit */ ++ if(pgc->audio_control[i].present) { + printf("Audio stream %i control: %04x\n", + i, pgc->audio_control[i]); + } + } + + for(i = 0; i < 32; i++) { +- if(pgc->subp_control[i] & 0x80000000) { /* The 'is present' bit */ ++ if(pgc->subp_control[i].present) { + printf("Subpicture stream %2i control: %08x\n", + i, pgc->subp_control[i]); + } + diff -Naur dvdread.orig/ifo_print.h dvdread/ifo_print.h diff -Naur dvdread.orig/ifo_read.c dvdread/ifo_read.c +--- dvdread.orig/ifo_read.c 30 Jun 2005 22:48:26 -0000 1.4 ++++ dvdread/ifo_read.c 3 Oct 2005 14:29:01 -0000 1.5 +@@ -638,10 +638,6 @@ + B2N_16(pgc->cell_playback_offset); + B2N_16(pgc->cell_position_offset); + +- for(i = 0; i < 8; i++) +- B2N_16(pgc->audio_control[i]); +- for(i = 0; i < 32; i++) +- B2N_32(pgc->subp_control[i]); + for(i = 0; i < 16; i++) + B2N_32(pgc->palette[i]); + +@@ -650,10 +646,10 @@ + + /* verify time (look at print_time) */ + for(i = 0; i < 8; i++) +- if(!pgc->audio_control[i] & 0x8000) /* The 'is present' bit */ ++ if(!pgc->audio_control[i].present) + CHECK_ZERO(pgc->audio_control[i]); + for(i = 0; i < 32; i++) +- if(!pgc->subp_control[i] & 0x80000000) /* The 'is present' bit */ ++ if(!pgc->subp_control[i].present) + CHECK_ZERO(pgc->subp_control[i]); + + /* Check that time is 0:0:0:0 also if nr_of_programs == 0 */ + diff -Naur dvdread.orig/ifo_read.h dvdread/ifo_read.h --- dvdread.orig/ifo_read.h 2005-06-23 00:18:54.000000000 +0200 +++ dvdread/ifo_read.h 2005-06-23 00:19:10.000000000 +0200 @@ -328,6 +375,73 @@ #undef ATTRIBUTE_PACKED +@@ -398,6 +398,55 @@ + } ATTRIBUTE_PACKED user_ops_t; + + /** ++ * Subpicture stream mapping for a subtitle ++ */ ++typedef struct { ++#ifdef WORDS_BIGENDIAN ++ unsigned int present : 1; ++ unsigned int zero1 : 2; ++ unsigned int s_4p3 : 5; /* stream for 4:3 on any display */ ++ ++ unsigned int zero2 : 3; ++ unsigned int s_wide : 5; /* stream for 16:9 on widescreen display */ ++ ++ unsigned int zero3 : 3; ++ unsigned int s_lbox : 5; /* stream for 16:9 on letterboxed 4:3 display */ ++ ++ unsigned int zero4 : 3; ++ unsigned int s_panscan : 5; /* stream for 16:9 with pan&scan data on 4:3 display */ ++#else ++ unsigned int s_4p3 : 5; /* stream for 4:3 on any display */ ++ unsigned int zero1 : 2; ++ unsigned int present : 1; ++ ++ unsigned int s_wide : 5; /* stream for 16:9 on widescreen display */ ++ unsigned int zero2 : 3; ++ ++ unsigned int s_lbox : 5; /* stream for 16:9 on letterboxed 4:3 display */ ++ unsigned int zero3 : 3; ++ ++ unsigned int s_panscan : 5; /* stream for 16:9 with pan&scan data on 4:3 display */ ++ unsigned int zero4 : 3; ++#endif ++} ATTRIBUTE_PACKED subp_mapping_t; ++ ++/** ++ * Audio stream mapping for a soundtrack ++ */ ++typedef struct { ++#ifdef WORDS_BIGENDIAN ++ unsigned int present : 1; ++ unsigned int zero1 : 4; ++ unsigned int s_audio : 3; ++#else ++ unsigned int s_audio : 3; ++ unsigned int zero1 : 4; ++ unsigned int present : 1; ++#endif ++ uint8_t zero2; ++} ATTRIBUTE_PACKED audio_mapping_t; ++ ++/** + * Program Chain Information. + */ + typedef struct { +@@ -406,8 +455,8 @@ + uint8_t nr_of_cells; + dvd_time_t playback_time; + user_ops_t prohibited_ops; +- uint16_t audio_control[8]; /* New type? */ +- uint32_t subp_control[32]; /* New type? */ ++ audio_mapping_t audio_control[8]; ++ subp_mapping_t subp_control[32]; + uint16_t next_pgc_nr; + uint16_t prev_pgc_nr; + uint16_t goup_pgc_nr; diff -Naur dvdread.orig/nav_print.c dvdread/nav_print.c diff -Naur dvdread.orig/nav_print.h dvdread/nav_print.h --- dvdread.orig/nav_print.h 2005-06-23 00:18:54.000000000 +0200