Message ID | CY4PR0501MB3730AAA6BBECC130CB76835AAACE9@CY4PR0501MB3730.namprd05.prod.outlook.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] libavformat/avformat: Check codec whitelist | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
Friendly ping for feedback on this patch. Thank you in advance. -----Original Message----- From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Eric Juteau Sent: Tuesday, May 17, 2022 3:09 PM To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] libavformat/avformat: Check codec whitelist 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 <ericjut@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
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;
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 <ericjut@outlook.com> --- libavformat/avformat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)