summaryrefslogtreecommitdiffstats
path: root/libavcodec/h264_slice.c
diff options
context:
space:
mode:
authorAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-06-09 23:38:26 +0200
committerAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-06-12 21:22:00 +0200
commit1189af429211ac650aac730368a6cf5b23756605 (patch)
tree6e91ea70c031cb700402c5f6b82905eb36cf930c /libavcodec/h264_slice.c
parentb5c71fba594353b0676fa41c1f279d42adb6e716 (diff)
downloadffmpeg-streaming-1189af429211ac650aac730368a6cf5b23756605.zip
ffmpeg-streaming-1189af429211ac650aac730368a6cf5b23756605.tar.gz
h264: update avctx width/height/pix_fmt when returning frame
Inconsistencies between the dimensions/pixel format of avctx and the frame can confuse API users. For example this can crash the demuxing_decoding example. Back up the previous values and restore them, when decoding the next frame. This is necessary, because these can be different between the returned frame and the last decoded frame. Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Diffstat (limited to 'libavcodec/h264_slice.c')
-rw-r--r--libavcodec/h264_slice.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 9c4d613..0c0812f 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -497,6 +497,9 @@ int ff_h264_update_thread_context(AVCodecContext *dst,
h->picture_structure = h1->picture_structure;
h->droppable = h1->droppable;
h->low_delay = h1->low_delay;
+ 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]);
OpenPOWER on IntegriCloud