[FFmpeg-devel] [PATCH] avcodec/av1dec: check avctx->hwaccel when hwaccel pix_fmt selected
Fei Wang
fei.w.wang at intel.com
Wed Sep 16 23:57:15 EEST 2020
Pix fmt with hwaccel flag may not be chosen in format probing, in
this case avctx->hwaccel will not be inited.
Signed-off-by: Fei Wang <fei.w.wang at intel.com>
---
libavcodec/av1dec.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index 0bb04a3e44..cdcc618013 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -251,6 +251,7 @@ static int get_pixel_format(AVCodecContext *avctx)
{
AV1DecContext *s = avctx->priv_data;
const AV1RawSequenceHeader *seq = s->raw_seq;
+ const AVPixFmtDescriptor *desc;
uint8_t bit_depth;
int ret;
enum AVPixelFormat pix_fmt = AV_PIX_FMT_NONE;
@@ -327,10 +328,13 @@ static int get_pixel_format(AVCodecContext *avctx)
* Since now the av1 decoder doesn't support native decode, if it will be
* implemented in the future, need remove this check.
*/
- if (!avctx->hwaccel) {
- av_log(avctx, AV_LOG_ERROR, "Your platform doesn't suppport"
- " hardware accelerated AV1 decoding.\n");
- return AVERROR(ENOSYS);
+ desc = av_pix_fmt_desc_get(ret);
+ if (desc && (desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) {
+ if (!avctx->hwaccel) {
+ av_log(avctx, AV_LOG_ERROR, "Your platform doesn't suppport"
+ " hardware accelerated AV1 decoding.\n");
+ return AVERROR(ENOSYS);
+ }
}
avctx->pix_fmt = ret;
--
2.17.1
More information about the ffmpeg-devel
mailing list