diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index ac900d6f3059fa67bb857ea1fd51d996aed8b4ba..f40431fc626d936b734a4d80c7743bf479d8430b 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -429,7 +429,7 @@ static int copy_parameter_set(void **to, void **from, int count, int size) memcpy(&(to)->start_field, &(from)->start_field, \ (char *)&(to)->end_field - (char *)&(to)->start_field) -static int h264_slice_header_init(H264Context *h, int reinit); +static int h264_slice_header_init(H264Context *h); int ff_h264_update_thread_context(AVCodecContext *dst, const AVCodecContext *src) @@ -605,7 +605,7 @@ int ff_h264_update_thread_context(AVCodecContext *dst, h->mb_stride = h1->mb_stride; h->b_stride = h1->b_stride; - if ((err = h264_slice_header_init(h, 1)) < 0) { + if ((err = h264_slice_header_init(h)) < 0) { av_log(h->avctx, AV_LOG_ERROR, "h264_slice_header_init() failed"); return err; } @@ -1071,7 +1071,7 @@ static int init_dimensions(H264Context *h) return 0; } -static int h264_slice_header_init(H264Context *h, int reinit) +static int h264_slice_header_init(H264Context *h) { int nb_slices = (HAVE_THREADS && h->avctx->active_thread_type & FF_THREAD_SLICE) ? @@ -1090,8 +1090,8 @@ static int h264_slice_header_init(H264Context *h, int reinit) h->sps.num_units_in_tick * h->avctx->ticks_per_frame, den, 1 << 30); } - if (reinit) - ff_h264_free_tables(h); + ff_h264_free_tables(h); + h->first_field = 0; h->prev_interlaced_frame = 1; @@ -1415,7 +1415,7 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl) av_log(h->avctx, AV_LOG_INFO, "Reinit context to %dx%d, " "pix_fmt: %s\n", h->width, h->height, av_get_pix_fmt_name(h->avctx->pix_fmt)); - if ((ret = h264_slice_header_init(h, 1)) < 0) { + if ((ret = h264_slice_header_init(h)) < 0) { av_log(h->avctx, AV_LOG_ERROR, "h264_slice_header_init() failed\n"); return ret; @@ -1432,7 +1432,7 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl) return ret; h->avctx->pix_fmt = ret; - if ((ret = h264_slice_header_init(h, 0)) < 0) { + if ((ret = h264_slice_header_init(h)) < 0) { av_log(h->avctx, AV_LOG_ERROR, "h264_slice_header_init() failed\n"); return ret;