diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index cfd4c94ce90ab85a80b449e38a1f8b1675d713c8..13988f4b92aaa9e580950b748fdf793f12747836 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1201,7 +1201,7 @@ static int h264_slice_header_parse(H264Context *h, H264SliceContext *sl) } } - if (h->context_initialized && needs_reinit) { + if (!h->context_initialized || needs_reinit) { h->context_initialized = 0; if (sl != h->slice_ctx) { av_log(h->avctx, AV_LOG_ERROR, @@ -1219,7 +1219,7 @@ static int h264_slice_header_parse(H264Context *h, H264SliceContext *sl) return ret; h->avctx->pix_fmt = ret; - av_log(h->avctx, AV_LOG_INFO, "Reinit context to %dx%d, " + av_log(h->avctx, AV_LOG_VERBOSE, "Reinit context to %dx%d, " "pix_fmt: %d\n", h->width, h->height, h->avctx->pix_fmt); if ((ret = h264_slice_header_init(h)) < 0) { @@ -1228,23 +1228,6 @@ static int h264_slice_header_parse(H264Context *h, H264SliceContext *sl) return ret; } } - if (!h->context_initialized) { - if (sl != h->slice_ctx) { - av_log(h->avctx, AV_LOG_ERROR, - "Cannot (re-)initialize context during parallel decoding.\n"); - return AVERROR_PATCHWELCOME; - } - - if ((ret = get_pixel_format(h)) < 0) - return ret; - h->avctx->pix_fmt = ret; - - if ((ret = h264_slice_header_init(h)) < 0) { - av_log(h->avctx, AV_LOG_ERROR, - "h264_slice_header_init() failed\n"); - return ret; - } - } frame_num = get_bits(&sl->gb, sps->log2_max_frame_num); if (!h->setup_finished)