From 8c2aa45d4a99dc0d9990dfb56782487006f718c3 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Mon, 27 Mar 2017 09:39:24 -0400 Subject: [PATCH] h264: revert 1189af429211ac650aac730368a6cf5b23756605. The patch introduces race conditions. --- libavcodec/h264_slice.c | 3 --- libavcodec/h264dec.c | 24 ------------------------ libavcodec/h264dec.h | 8 -------- 3 files changed, 35 deletions(-) diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index a703853872..fa1e9ae829 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -383,9 +383,6 @@ int ff_h264_update_thread_context(AVCodecContext *dst, h->picture_structure = h1->picture_structure; h->mb_aff_frame = h1->mb_aff_frame; h->droppable = h1->droppable; - h->backup_width = h1->backup_width; - h->backup_height = h1->backup_height; - h->backup_pix_fmt = h1->backup_pix_fmt; for (i = 0; i < H264_MAX_PICTURE_COUNT; i++) { ff_h264_unref_picture(h, &h->DPB[i]); diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 585ce86f37..25aeba7d71 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -307,9 +307,6 @@ static int h264_init_context(AVCodecContext *avctx, H264Context *h) int i; h->avctx = avctx; - h->backup_width = -1; - h->backup_height = -1; - h->backup_pix_fmt = AV_PIX_FMT_NONE; h->cur_chroma_format_idc = -1; h->picture_structure = PICT_FRAME; @@ -861,14 +858,6 @@ static int output_frame(H264Context *h, AVFrame *dst, H264Picture *srcp) av_dict_set(&dst->metadata, "stereo_mode", ff_h264_sei_stereo_mode(&h->sei.frame_packing), 0); - h->backup_width = h->avctx->width; - h->backup_height = h->avctx->height; - h->backup_pix_fmt = h->avctx->pix_fmt; - - h->avctx->width = dst->width; - h->avctx->height = dst->height; - h->avctx->pix_fmt = dst->format; - if (srcp->sei_recovery_frame_cnt == 0) dst->key_frame = 1; if (!srcp->crop) @@ -1003,19 +992,6 @@ static int h264_decode_frame(AVCodecContext *avctx, void *data, h->setup_finished = 0; h->nb_slice_ctx_queued = 0; - if (h->backup_width != -1) { - avctx->width = h->backup_width; - h->backup_width = -1; - } - if (h->backup_height != -1) { - avctx->height = h->backup_height; - h->backup_height = -1; - } - if (h->backup_pix_fmt != AV_PIX_FMT_NONE) { - avctx->pix_fmt = h->backup_pix_fmt; - h->backup_pix_fmt = AV_PIX_FMT_NONE; - } - ff_h264_unref_picture(h, &h->last_pic_for_ec); /* end of stream, output what is still in the buffers */ diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h index 5f868b76cb..e994f7e7fe 100644 --- a/libavcodec/h264dec.h +++ b/libavcodec/h264dec.h @@ -363,14 +363,6 @@ typedef struct H264Context { int width, height; int chroma_x_shift, chroma_y_shift; - /** - * Backup frame properties: needed, because they can be different - * between returned frame and last decoded frame. - **/ - int backup_width; - int backup_height; - enum AVPixelFormat backup_pix_fmt; - int droppable; int coded_picture_number;