From 0b61920aa7318388d1716f20b7977246a67d33eb Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 5 Sep 2002 13:23:11 +0000 Subject: [PATCH] fixing rv10 encoding (ffmpeg can at least decode its own rv10 files now) Originally committed as revision 907 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/rv10.c | 18 +++++++++++++++--- tests/ffmpeg.regression.ref | 4 ++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index 0e75f4e..72a412e 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -223,8 +223,18 @@ int rv_decode_dc(MpegEncContext *s, int n) /* write RV 1.0 compatible frame header */ void rv10_encode_picture_header(MpegEncContext *s, int picture_number) { + int full_frame= 1; + align_put_bits(&s->pb); + + if(full_frame){ + put_bits(&s->pb, 8, 0xc0); /* packet header */ + put_bits(&s->pb, 16, 0x4000); /* len */ + put_bits(&s->pb, 16, 0x4000); /* pos */ + } + put_bits(&s->pb, 8, picture_number&0xFF); + put_bits(&s->pb, 1, 1); /* marker */ put_bits(&s->pb, 1, (s->pict_type == P_TYPE)); @@ -238,9 +248,11 @@ void rv10_encode_picture_header(MpegEncContext *s, int picture_number) } /* if multiple packets per frame are sent, the position at which to display the macro blocks is coded here */ - put_bits(&s->pb, 6, 0); /* mb_x */ - put_bits(&s->pb, 6, 0); /* mb_y */ - put_bits(&s->pb, 12, s->mb_width * s->mb_height); + if(!full_frame){ + put_bits(&s->pb, 6, 0); /* mb_x */ + put_bits(&s->pb, 6, 0); /* mb_y */ + put_bits(&s->pb, 12, s->mb_width * s->mb_height); + } put_bits(&s->pb, 3, 0); /* ignored */ } diff --git a/tests/ffmpeg.regression.ref b/tests/ffmpeg.regression.ref index a94025f..d413456 100644 --- a/tests/ffmpeg.regression.ref +++ b/tests/ffmpeg.regression.ref @@ -9,8 +9,8 @@ c1f6c8ee7a24d8345deddf1a24ca3756 *./data/out.yuv 145c98a175e760f8ba1997edf15b2964 *./data/out.yuv 3ad5ac82d92157d2483ab007fb0a8881 *./data/a-mjpeg.avi 278033451d7a6bfeb8339abbe4228499 *./data/out.yuv -ccbf683d781fa3cdfa18b618731fc74b *./data/a-rv10.rm -c4402129ece7bef30c034ef293d86104 *./data/out.yuv +202adaf59c09d703b55fc7dd95eace25 *./data/a-rv10.rm +c1f6c8ee7a24d8345deddf1a24ca3756 *./data/out.yuv 21f8ff9f1daacd9133683bb4ea0f50a4 *./data/a-mp2.mp2 116d1290ba1b4eb98fdee52e423417b1 *./data/out.wav 048b9c3444c788bac6ce5cc3a8f4db00 *./data/a-ac3.rm -- 2.7.4