diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 3a1138e128..bbe710edb2 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -873,6 +873,7 @@ av_cold int ff_h264_decode_init(AVCodecContext *avctx){ h->thread_context[0] = h; h->outputed_poc = INT_MIN; h->prev_poc_msb= 1<<16; + h->x264_build = -1; ff_h264_reset_sei(h); if(avctx->codec_id == CODEC_ID_H264){ if(avctx->ticks_per_frame == 1){ @@ -1782,7 +1783,7 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ if(h->sps.timing_info_present_flag){ int64_t den= h->sps.time_scale; - if(h->x264_build > 0 && h->x264_build < 44) + if(h->x264_build < 44U) den *= 2; av_reduce(&s->avctx->time_base.num, &s->avctx->time_base.den, h->sps.num_units_in_tick, den, 1<<30); diff --git a/libavcodec/h264_direct.c b/libavcodec/h264_direct.c index 35fa1e701e..e7e62d66c1 100644 --- a/libavcodec/h264_direct.c +++ b/libavcodec/h264_direct.c @@ -286,7 +286,7 @@ single_col: if(!IS_INTRA(mb_type_col[0]) && !h->ref_list[1][0].long_ref && ( (l1ref0[0] == 0 && FFABS(l1mv0[0][0]) <= 1 && FFABS(l1mv0[0][1]) <= 1) || (l1ref0[0] < 0 && l1ref1[0] == 0 && FFABS(l1mv1[0][0]) <= 1 && FFABS(l1mv1[0][1]) <= 1 - && (h->x264_build>33 || !h->x264_build)))){ + && h->x264_build>33U))){ a=b=0; if(ref[0] > 0) a= pack16to32(mv[0][0],mv[0][1]); @@ -315,7 +315,7 @@ single_col: /* col_zero_flag */ if(!IS_INTRA(mb_type_col[0]) && !h->ref_list[1][0].long_ref && ( l1ref0[x8 + y8*b8_stride] == 0 || (l1ref0[x8 + y8*b8_stride] < 0 && l1ref1[x8 + y8*b8_stride] == 0 - && (h->x264_build>33 || !h->x264_build)))){ + && h->x264_build>33U))){ const int16_t (*l1mv)[2]= l1ref0[x8 + y8*b8_stride] == 0 ? l1mv0 : l1mv1; if(IS_SUB_8X8(sub_mb_type)){ const int16_t *mv_col = l1mv[x8*3 + y8*3*b4_stride];