fixing rv10 encoding (ffmpeg can at least decode its own rv10 files now)
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 5 Sep 2002 13:23:11 +0000 (13:23 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 5 Sep 2002 13:23:11 +0000 (13:23 +0000)
Originally committed as revision 907 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/rv10.c
tests/ffmpeg.regression.ref

index 0e75f4e..72a412e 100644 (file)
@@ -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 */
 }
index a94025f..d413456 100644 (file)
@@ -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