From f1a9cf6c699848181fb72c51106d2d5a2d2192b6 Mon Sep 17 00:00:00 2001 From: nicodvb Date: Sat, 9 Apr 2005 11:00:00 +0000 Subject: [PATCH] assign picture->(width,height) when parsing h264 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15074 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/mpeg_hdr.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libmpdemux/mpeg_hdr.c b/libmpdemux/mpeg_hdr.c index 5174b59bd8..c8867d4ea0 100644 --- a/libmpdemux/mpeg_hdr.c +++ b/libmpdemux/mpeg_hdr.c @@ -297,8 +297,9 @@ static int h264_parse_vui(mp_mpeg_header_t * picture, unsigned char * buf, unsig int h264_parse_sps(mp_mpeg_header_t * picture, unsigned char * buf, int len) { - unsigned int n = 0, m = 0, v, i, j; + unsigned int n = 0, v, i, j, mbh; unsigned char *dest; + int frame_mbs_only; dest = (unsigned char*) malloc(len); if(! dest) @@ -343,9 +344,11 @@ int h264_parse_sps(mp_mpeg_header_t * picture, unsigned char * buf, int len) } read_golomb(buf, &n); getbits(buf, n++, 1); - read_golomb(buf, &n); - read_golomb(buf, &n); - if(!getbits(buf, n++, 1)) + picture->display_picture_width = 16 *(read_golomb(buf, &n)+1); + mbh = read_golomb(buf, &n)+1; + frame_mbs_only = getbits(buf, n++, 1); + picture->display_picture_height = 16 * (2 - frame_mbs_only) * mbh; + if(!frame_mbs_only) getbits(buf, n++, 1); getbits(buf, n++, 1); if(getbits(buf, n++, 1))