From f125c504d8fece6420bb97767f9e72414c26312a Mon Sep 17 00:00:00 2001 From: Diederick Niehorster Date: Fri, 25 Mar 2022 15:10:20 +0100 Subject: [PATCH] avdevice/dshow: fix regression a1c4929f accidentally undid part of d9a9b4c8, so the bug in ticket #9420 resurfaced. Fixing again. Signed-off-by: Diederick Niehorster Reviewed-by: Roger Pack Signed-off-by: Michael Niedermayer --- libavdevice/dshow.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c index 6039578ff9..abb8325bc3 100644 --- a/libavdevice/dshow.c +++ b/libavdevice/dshow.c @@ -1002,23 +1002,12 @@ dshow_cycle_formats(AVFormatContext *avctx, enum dshowDeviceType devtype, ); continue; } - if (requested_sample_rate) { - if (requested_sample_rate > acaps->MaximumSampleFrequency || - requested_sample_rate < acaps->MinimumSampleFrequency) - goto next; - fx->nSamplesPerSec = requested_sample_rate; - } - if (requested_sample_size) { - if (requested_sample_size > acaps->MaximumBitsPerSample || - requested_sample_size < acaps->MinimumBitsPerSample) - goto next; - fx->wBitsPerSample = requested_sample_size; - } - if (requested_channels) { - if (requested_channels > acaps->MaximumChannels || - requested_channels < acaps->MinimumChannels) - goto next; - fx->nChannels = requested_channels; + if ( + (ctx->sample_rate && ctx->sample_rate != fx->nSamplesPerSec) || + (ctx->sample_size && ctx->sample_size != fx->wBitsPerSample) || + (ctx->channels && ctx->channels != fx->nChannels ) + ) { + goto next; } }