avcodec: add AVCodecContext.sw_pix_fmt
This carries the pixel format that would be used if it were not for hardware acceleration. This is equal to AVCodecContext.pix_fmt if hardware acceleration is not in use. Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:

committed by
Anton Khirnov

parent
4cfbeef31d
commit
57b6704ecd
@@ -665,10 +665,13 @@ int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
|
||||
if (ret < 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
|
||||
@@ -933,6 +936,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;
|
||||
|
Reference in New Issue
Block a user