[SCM] libav/experimental: fixing rv20201002

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:42:13 UTC 2013


The following commit has been merged in the experimental branch:
commit 9993064eec81ad5dc346e447497ecedc56a8fea6
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Fri Nov 19 18:19:36 2004 +0000

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

diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c
index c248ab5..65a741c 100644
--- a/libavcodec/rv10.c
+++ b/libavcodec/rv10.c
@@ -401,9 +401,13 @@ static int rv20_decode_picture_header(MpegEncContext *s)
             av_log(s->avctx, AV_LOG_ERROR, "unknown bit4 set\n");
 //            return -1;
         }
-        mb_pos= get_bits(&s->gb, av_log2(s->mb_num-1)+1);
-        s->mb_x= mb_pos % s->mb_width;
-        s->mb_y= mb_pos / s->mb_width;
+        if(s->avctx->sub_id == 0x20201002){
+            mb_pos= ff_h263_decode_mba(s);
+        }else{
+            mb_pos= get_bits(&s->gb, av_log2(s->mb_num-1)+1);
+            s->mb_x= mb_pos % s->mb_width;
+            s->mb_y= mb_pos / s->mb_width;
+        }
     }else{
         seq= get_bits(&s->gb, 8)*128;
         mb_pos= ff_h263_decode_mba(s);
@@ -504,7 +508,7 @@ static int rv10_decode_init(AVCodecContext *avctx)
     default:
         av_log(s->avctx, AV_LOG_ERROR, "unknown header %X\n", avctx->sub_id);
     }
-//printf("ver:%X\n", avctx->sub_id);
+//av_log(avctx, AV_LOG_DEBUG, "ver:%X\n", avctx->sub_id);
     if (MPV_common_init(s) < 0)
         return -1;
 
@@ -686,8 +690,8 @@ static int rv10_decode_frame(AVCodecContext *avctx,
             *pict= *(AVFrame*)&s->last_picture;
             ff_print_debug_info(s, pict);
         }
-        
-        *data_size = sizeof(AVFrame);
+        if(s->last_picture_ptr || s->low_delay)
+            *data_size = sizeof(AVFrame);
     }
 
     return buf_size;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list