diff --git a/src/media/audio/audio_frame_resizer.cpp b/src/media/audio/audio_frame_resizer.cpp index 18136ed45d1085f87f9429ae0e151b27674d9ca3..461edefadde9abc26326b1403a60453ade66af56 100644 --- a/src/media/audio/audio_frame_resizer.cpp +++ b/src/media/audio/audio_frame_resizer.cpp @@ -90,9 +90,10 @@ AudioFrameResizer::enqueue(std::shared_ptr<AudioFrame>&& frame) { int ret = 0; auto f = frame->pointer(); - if (f->format != (int)format_.sampleFormat || f->channels != (int)format_.nb_channels || f->sample_rate != (int)format_.sample_rate) { + AudioFormat format(f->sample_rate, f->channels, (AVSampleFormat)f->format); + if (format != format_) { RING_ERR() << "Expected " << format_ << ", but got " << AudioFormat(f->sample_rate, f->channels, (AVSampleFormat)f->format); - throw std::runtime_error("Could not write samples to audio queue: input frame is not the right format"); + setFormat(format, frameSize_); } auto nb_samples = samples();