# HG changeset patch # User heydowns # Date 1196832294 0 # Node ID ba13cc3e38bb8a1dc456b115fe43d08da6ebaa40 # Parent f0ae240d83498c88924eda05c8217ff87d9ec223 Initialize function pointers used by error resilience code before any potential error return from decode_slice_header. Fixes issue 284. diff -r f0ae240d8349 -r ba13cc3e38bb h264.c --- a/h264.c Tue Dec 04 17:41:46 2007 +0000 +++ b/h264.c Wed Dec 05 05:24:54 2007 +0000 @@ -3875,6 +3875,14 @@ 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 @@ ); } - 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; }