diff options
Diffstat (limited to 'libmpdemux/mpeg_hdr.c')
-rw-r--r-- | libmpdemux/mpeg_hdr.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libmpdemux/mpeg_hdr.c b/libmpdemux/mpeg_hdr.c index d91019ad13..4fb1dc22b0 100644 --- a/libmpdemux/mpeg_hdr.c +++ b/libmpdemux/mpeg_hdr.c @@ -251,14 +251,20 @@ int mp4_header_process_vol(mp_mpeg_header_t * picture, unsigned char * buffer) n++; //marker bit - if(getbits(buffer, n, 1)) { //fixed_vop_timeinc - n++; - n = read_timeinc(picture, buffer, n); + if(getbits(buffer, n++, 1)) { //fixed_vop_timeinc + n += read_timeinc(picture, buffer, n); if(picture->timeinc_unit) picture->fps = (float) picture->timeinc_resolution / (float) picture->timeinc_unit; } + n++; //marker bit + picture->display_picture_width = getbits16(buffer, n, 13); + n += 13; + n++; //marker bit + picture->display_picture_height = getbits16(buffer, n, 13); + n += 13; + //fprintf(stderr, "ASPECT: %d, PARW=%d, PARH=%d, TIMEINCRESOLUTION: %d, FIXED_TIMEINC: %d (number of bits: %d), FPS: %u\n", // aspect, aspectw, aspecth, picture->timeinc_resolution, picture->timeinc_unit, picture->timeinc_bits, picture->fps); @@ -276,7 +282,7 @@ void mp4_header_process_vop(mp_mpeg_header_t * picture, unsigned char * buffer) n++; getbits(buffer, n, 1); n++; - n = read_timeinc(picture, buffer, n); + n += read_timeinc(picture, buffer, n); } #define min(a, b) ((a) <= (b) ? (a) : (b)) |