[SCM] libav/experimental: Remove a few more lines of unneeded code in fill_caches() for MBAFF. Also document why the remaining related part is apparently needed.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:27:14 UTC 2013


The following commit has been merged in the experimental branch:
commit e248cb601edf4c43ee17d880a53452fe6159799b
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Sun Aug 10 15:39:46 2008 +0000

    Remove a few more lines of unneeded code in fill_caches() for MBAFF.
    Also document why the remaining related part is apparently needed.
    
    Originally committed as revision 14682 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 923e105..a4e3339 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -182,9 +182,12 @@ static void fill_caches(H264Context *h, int mb_type, int for_deblock){
         left_type[0] = h->slice_table[left_xy[0] ] < 255 ? s->current_picture.mb_type[left_xy[0]] : 0;
         left_type[1] = h->slice_table[left_xy[1] ] < 255 ? s->current_picture.mb_type[left_xy[1]] : 0;
 
-        if(FRAME_MBAFF && !IS_INTRA(mb_type)){
+        if(MB_MBAFF && !IS_INTRA(mb_type)){
             int list;
             for(list=0; list<h->list_count; list++){
+                //These values where changed for ease of performing MC, we need to change them back
+                //FIXME maybe we can make MC and loop filter use the same values or prevent
+                //the MC code from changing ref_cache and rather use a temporary array.
                 if(USES_LIST(mb_type,list)){
                     int8_t *ref = &s->current_picture.ref_index[list][h->mb2b8_xy[mb_xy]];
                     *(uint32_t*)&h->ref_cache[list][scan8[ 0]] =
@@ -192,9 +195,6 @@ static void fill_caches(H264Context *h, int mb_type, int for_deblock){
                     ref += h->b8_stride;
                     *(uint32_t*)&h->ref_cache[list][scan8[ 8]] =
                     *(uint32_t*)&h->ref_cache[list][scan8[10]] = pack16to32(ref[0],ref[1])*0x0101;
-                }else{
-                    fill_rectangle(&h-> mv_cache[list][scan8[ 0]], 4, 4, 8, 0, 4);
-                    fill_rectangle(&h->ref_cache[list][scan8[ 0]], 4, 4, 8, (uint8_t)LIST_NOT_USED, 1);
                 }
             }
         }

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list