From cf653d0811b1468089dbeea745e8019da0fc1e1c Mon Sep 17 00:00:00 2001 From: Jeff Downs Date: Wed, 5 Dec 2007 05:24:54 +0000 Subject: [PATCH] Initialize function pointers used by error resilience code before any potential error return from decode_slice_header. Fixes issue 284. Originally committed as revision 11168 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h264.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 809ce6c5ff..19d83197ad 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -3875,6 +3875,14 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ s->dropable= h->nal_ref_idc == 0; + if((s->avctx->flags2 & CODEC_FLAG2_FAST) && !h->nal_ref_idc){ + s->me.qpel_put= s->dsp.put_2tap_qpel_pixels_tab; + s->me.qpel_avg= s->dsp.avg_2tap_qpel_pixels_tab; + }else{ + s->me.qpel_put= s->dsp.put_h264_qpel_pixels_tab; + s->me.qpel_avg= s->dsp.avg_h264_qpel_pixels_tab; + } + first_mb_in_slice= get_ue_golomb(&s->gb); if((s->flags2 & CODEC_FLAG2_CHUNKS) && first_mb_in_slice == 0){ @@ -4241,14 +4249,6 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ ); } - if((s->avctx->flags2 & CODEC_FLAG2_FAST) && !h->nal_ref_idc){ - s->me.qpel_put= s->dsp.put_2tap_qpel_pixels_tab; - s->me.qpel_avg= s->dsp.avg_2tap_qpel_pixels_tab; - }else{ - s->me.qpel_put= s->dsp.put_h264_qpel_pixels_tab; - s->me.qpel_avg= s->dsp.avg_h264_qpel_pixels_tab; - } - return 0; }