From 9875e190aad74e47929703b1f9ceef144c7cd7c8 Mon Sep 17 00:00:00 2001 From: Seven Du Date: Wed, 15 Apr 2020 10:36:32 +0800 Subject: [PATCH] [mod_av] enable resampler when sample rate mismatch (#153) --- src/mod/applications/mod_av/avformat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mod/applications/mod_av/avformat.c b/src/mod/applications/mod_av/avformat.c index ae7d2e840c..0b3a452325 100644 --- a/src/mod/applications/mod_av/avformat.c +++ b/src/mod/applications/mod_av/avformat.c @@ -702,7 +702,7 @@ GCC_DIAG_ON(deprecated-declarations) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "sample_rate: %d nb_samples: %d\n", mst->frame->sample_rate, mst->frame->nb_samples); - if (c->sample_fmt != AV_SAMPLE_FMT_S16) { + if (c->sample_fmt != AV_SAMPLE_FMT_S16 || c->sample_rate != mst->sample_rate) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "sample_fmt %d != AV_SAMPLE_FMT_S16, start resampler\n", c->sample_fmt); mst->resample_ctx = swr_alloc(); @@ -1231,7 +1231,7 @@ GCC_DIAG_ON(deprecated-declarations) context->audio_st[1].sample_rate = handle->samplerate; GCC_DIAG_OFF(deprecated-declarations) - if (context->audio_st[0].st->codec->sample_fmt != AV_SAMPLE_FMT_S16) { + if (context->audio_st[0].st->codec->sample_fmt != AV_SAMPLE_FMT_S16 || context->audio_st[0].st->codec->sample_rate != handle->samplerate) { GCC_DIAG_ON(deprecated-declarations) int x; for (x = 0; x < context->has_audio && x < 2 && c[x]; x++) {