Message ID | CY4PR0501MB373056D096B387EEFAC73960AA219@CY4PR0501MB3730.namprd05.prod.outlook.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] libavformat/utils: Check codec whitelist | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
andriy/make_aarch64_jetson | success | Make finished |
andriy/make_fate_aarch64_jetson | success | Make fate finished |
Friendly ping for feedback on the patch below. Thank you. -----Original Message----- From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Eric Juteau Sent: Thursday, January 27, 2022 9:06 AM To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] libavformat/utils: 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/utils.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index e643821fc9..5a96f16c0f 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -529,7 +529,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;
diff --git a/libavformat/utils.c b/libavformat/utils.c index e643821fc9..5a96f16c0f 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -529,7 +529,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/utils.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)