|
|
@@ -555,10 +555,8 @@ int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags) |
|
|
|
|
|
|
|
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) |
|
|
@@ -702,6 +700,9 @@ do { \ |
|
|
|
|
|
|
|
av_buffer_unref(&dummy_buf); |
|
|
|
|
|
|
|
frame->width = avctx->width; |
|
|
|
frame->height = avctx->height; |
|
|
|
|
|
|
|
return 0; |
|
|
|
|
|
|
|
fail: |
|
|
@@ -712,7 +713,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_reget_buffer(AVCodecContext *avctx, AVFrame *frame) |
|
|
|