From c2a2bc5e4027f9e4cba75989f0591200eef8c768 Mon Sep 17 00:00:00 2001 From: VodBox Date: Tue, 27 Aug 2019 21:24:26 +1200 Subject: [PATCH] deps/media-playback: Use hwaccel with non-alpha WebM files --- deps/media-playback/media-playback/decode.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/deps/media-playback/media-playback/decode.c b/deps/media-playback/media-playback/decode.c index fbeb05513..94a55b359 100644 --- a/deps/media-playback/media-playback/decode.c +++ b/deps/media-playback/media-playback/decode.c @@ -142,10 +142,17 @@ bool mp_decode_init(mp_media_t *m, enum AVMediaType type, bool hw) id = stream->codec->codec_id; #endif - if (id == AV_CODEC_ID_VP8) - d->codec = avcodec_find_decoder_by_name("libvpx"); - else if (id == AV_CODEC_ID_VP9) - d->codec = avcodec_find_decoder_by_name("libvpx-vp9"); + if (id == AV_CODEC_ID_VP8 || id == AV_CODEC_ID_VP9) { + AVDictionaryEntry *tag = NULL; + tag = av_dict_get(stream->metadata, "alpha_mode", tag, + AV_DICT_IGNORE_SUFFIX); + + if (tag && strcmp(tag->value, "1") == 0) { + char *codec = (id == AV_CODEC_ID_VP8) ? "libvpx" + : "libvpx-vp9"; + d->codec = avcodec_find_decoder_by_name(codec); + } + } if (!d->codec) d->codec = avcodec_find_decoder(id); -- GitLab