summaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-04-19 21:40:46 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-04-19 21:49:29 +0200
commita8b05dde0d88a4f654fb9ab1d6b7bcb0b65f2c78 (patch)
tree7055b2068b119f64453b76b257c9b6b0723a7369 /libavcodec
parent194d0399a29cedd9726e4a4b791ca959a7e71e45 (diff)
parenta7f46586bf47174b5fa00a905b767b1781ec8b72 (diff)
downloadffmpeg-streaming-a8b05dde0d88a4f654fb9ab1d6b7bcb0b65f2c78.zip
ffmpeg-streaming-a8b05dde0d88a4f654fb9ab1d6b7bcb0b65f2c78.tar.gz
Merge commit 'a7f46586bf47174b5fa00a905b767b1781ec8b72'
* commit 'a7f46586bf47174b5fa00a905b767b1781ec8b72': ff_get_buffer(): allocate the frame for max(coded,display) dimensions Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/utils.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index f47d825..0ea1b53 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -621,10 +621,8 @@ int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame)
switch (avctx->codec->type) {
case AVMEDIA_TYPE_VIDEO:
- if (!frame->width)
- frame->width = avctx->width;
- if (!frame->height)
- frame->height = avctx->height;
+ frame->width = FFMAX(avctx->width, avctx->coded_width);
+ frame->height = FFMAX(avctx->height, avctx->coded_height);
if (frame->format < 0)
frame->format = avctx->pix_fmt;
if (!frame->sample_aspect_ratio.num)
@@ -799,6 +797,9 @@ do { \
av_buffer_unref(&dummy_buf);
+ frame->width = avctx->width;
+ frame->height = avctx->height;
+
return 0;
fail:
@@ -809,7 +810,14 @@ fail:
}
#endif
- return avctx->get_buffer2(avctx, frame, flags);
+ ret = avctx->get_buffer2(avctx, frame, flags);
+
+ if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) {
+ frame->width = avctx->width;
+ frame->height = avctx->height;
+ }
+
+ return ret;
}
int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
OpenPOWER on IntegriCloud