Modified the function av_find_best_stream() such that, when a list of allowed 
codecs is supplied in the format context, and when the caller is requesting a 
decoder be returned, the function will select the best stream that has a 
decoder in the allowed decoders list.

Signed-off-by: Eric Juteau <eric...@outlook.com>
---
 libavformat/avformat.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavformat/avformat.c b/libavformat/avformat.c
index 30d6ea6a49..396c1affa1 100644
--- a/libavformat/avformat.c
+++ b/libavformat/avformat.c
@@ -376,7 +376,8 @@ int av_find_best_stream(AVFormatContext *ic, enum 
AVMediaType type,
             continue;
         if (decoder_ret) {
             decoder = ff_find_decoder(ic, st, par->codec_id);
-            if (!decoder) {
+            if ((!decoder) ||
+                (ic->codec_whitelist && av_match_list(decoder->name, 
ic->codec_whitelist, ',') <= 0)) {
                 if (ret < 0)
                     ret = AVERROR_DECODER_NOT_FOUND;
                 continue;
-- 
2.17.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to