Skip to content
Snippets Groups Projects
Commit 6f427399 authored by Mohamed Fenjiro's avatar Mohamed Fenjiro Committed by Philippe Gorley
Browse files

audio_frame_resizer: fixed setFormat


fixed unitTest

frameSize should be set before reallocating the queue

Change-Id: Ie9cefb5419b34d487d67fcd6bd44f66aa192dc57
Reviewed-by: default avatarPhilippe Gorley <philippe.gorley@savoirfairelinux.com>
parent d4808158
No related branches found
No related tags found
No related merge requests found
......@@ -63,6 +63,8 @@ AudioFrameResizer::format() const
void
AudioFrameResizer::setFormat(const AudioFormat& format, int size)
{
if (size)
setFrameSize(size);
if (format != format_) {
if (auto discarded = samples())
RING_WARN("Discarding %d samples", discarded);
......@@ -70,8 +72,6 @@ AudioFrameResizer::setFormat(const AudioFormat& format, int size)
format_ = format;
queue_ = av_audio_fifo_alloc(format.sampleFormat, format.nb_channels, frameSize_);
}
if (size)
setFrameSize(size);
}
void
......
......@@ -125,7 +125,7 @@ AudioFrameResizerTest::testDifferentFormat()
auto in = getFrame(960);
// XXX this should never be done, but use this as a shortcut for this test case
in->pointer()->channels = 1;
CPPUNIT_ASSERT_THROW(q_->enqueue(std::move(in)), std::runtime_error);
q_->setFormat(AudioFormat::MONO(), 960);
CPPUNIT_ASSERT(q_->samples() == 0);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment