Browse code

fixing rv20201002

Originally committed as revision 3694 to svn://svn.ffmpeg.org/ffmpeg/trunk

Michael Niedermayer authored on 2004/11/20 03:19:36
Showing 1 changed files
... ...
@@ -401,9 +401,13 @@ static int rv20_decode_picture_header(MpegEncContext *s)
401 401
             av_log(s->avctx, AV_LOG_ERROR, "unknown bit4 set\n");
402 402
 //            return -1;
403 403
         }
404
-        mb_pos= get_bits(&s->gb, av_log2(s->mb_num-1)+1);
405
-        s->mb_x= mb_pos % s->mb_width;
406
-        s->mb_y= mb_pos / s->mb_width;
404
+        if(s->avctx->sub_id == 0x20201002){
405
+            mb_pos= ff_h263_decode_mba(s);
406
+        }else{
407
+            mb_pos= get_bits(&s->gb, av_log2(s->mb_num-1)+1);
408
+            s->mb_x= mb_pos % s->mb_width;
409
+            s->mb_y= mb_pos / s->mb_width;
410
+        }
407 411
     }else{
408 412
         seq= get_bits(&s->gb, 8)*128;
409 413
         mb_pos= ff_h263_decode_mba(s);
... ...
@@ -504,7 +508,7 @@ static int rv10_decode_init(AVCodecContext *avctx)
504 504
     default:
505 505
         av_log(s->avctx, AV_LOG_ERROR, "unknown header %X\n", avctx->sub_id);
506 506
     }
507
-//printf("ver:%X\n", avctx->sub_id);
507
+//av_log(avctx, AV_LOG_DEBUG, "ver:%X\n", avctx->sub_id);
508 508
     if (MPV_common_init(s) < 0)
509 509
         return -1;
510 510
 
... ...
@@ -686,8 +690,8 @@ static int rv10_decode_frame(AVCodecContext *avctx,
686 686
             *pict= *(AVFrame*)&s->last_picture;
687 687
             ff_print_debug_info(s, pict);
688 688
         }
689
-        
690
-        *data_size = sizeof(AVFrame);
689
+        if(s->last_picture_ptr || s->low_delay)
690
+            *data_size = sizeof(AVFrame);
691 691
     }
692 692
 
693 693
     return buf_size;