summaryrefslogtreecommitdiff
path: root/libavcodec/utils.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-12-27 12:41:10 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-12-27 12:41:10 +0100
commitd16079abf473b51be7686d20f8014bb48a095722 (patch)
tree1f9ac5e0111d5eaddd886fb9866abf5e30bd59c7 /libavcodec/utils.c
parent57089084ba7ece20889b8196f68ad9b08e8db8ba (diff)
parent57b6704ecd0f56d6a3092e448687cfd837bb0ac1 (diff)
Merge commit '57b6704ecd0f56d6a3092e448687cfd837bb0ac1'
* commit '57b6704ecd0f56d6a3092e448687cfd837bb0ac1': avcodec: add AVCodecContext.sw_pix_fmt Conflicts: doc/APIchanges libavcodec/avcodec.h libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/utils.c')
-rw-r--r--libavcodec/utils.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index f6d99ab3dd..1ec5caed82 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -890,10 +890,13 @@ static int get_buffer_internal(AVCodecContext *avctx, AVFrame *frame, int flags)
if ((ret = ff_init_buffer_info(avctx, frame)) < 0)
return ret;
- if (hwaccel && hwaccel->alloc_frame) {
- ret = hwaccel->alloc_frame(avctx, frame);
- goto end;
- }
+ if (hwaccel) {
+ if (hwaccel->alloc_frame) {
+ ret = hwaccel->alloc_frame(avctx, frame);
+ goto end;
+ }
+ } else
+ avctx->sw_pix_fmt = avctx->pix_fmt;
#if FF_API_GET_BUFFER
FF_DISABLE_DEPRECATION_WARNINGS
@@ -1196,6 +1199,10 @@ int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat *fmt)
while (fmt[n] != AV_PIX_FMT_NONE)
++n;
+ av_assert0(n >= 1);
+ avctx->sw_pix_fmt = fmt[n - 1];
+ av_assert2(!is_hwaccel_pix_fmt(avctx->sw_pix_fmt));
+
choices = av_malloc_array(n + 1, sizeof(*choices));
if (!choices)
return AV_PIX_FMT_NONE;