changeset 11502:eb86fea1146b libavcodec

Use H264s MC instead of mpeg4-asp qpel for h264 error resilience.
author michael
date Wed, 17 Mar 2010 02:59:12 +0000
parents cd71b238e78b
children 5536f1bacb48
files error_resilience.c
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/error_resilience.c	Tue Mar 16 21:23:03 2010 +0000
+++ b/error_resilience.c	Wed Mar 17 02:59:12 2010 +0000
@@ -43,7 +43,18 @@
     s->dest[1] = s->current_picture.data[1] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift);
     s->dest[2] = s->current_picture.data[2] + (s->mb_y * (16>>s->chroma_y_shift) * s->uvlinesize) + s->mb_x * (16>>s->chroma_x_shift);
 
+    if(s->codec_id == CODEC_ID_H264){
+        H264Context *h= (void*)s;
+        h->mb_xy= s->mb_x + s->mb_y*s->mb_stride;
+        memset(h->non_zero_count_cache, 0, sizeof(h->non_zero_count_cache));
+        fill_rectangle(&h->ref_cache[0][scan8[0]], 4, 4, 8, 0, 1);
+        fill_rectangle(h->mv_cache[0][ scan8[0] ], 4, 4, 8, pack16to32(s->mv[0][0][0],s->mv[0][0][1]), 4);
+        assert(h->list_count==1);
+        assert(!FRAME_MBAFF);
+        ff_h264_hl_decode_mb(h);
+    }else{
     MPV_decode_mb(s, s->block);
+    }
 }
 
 /**