Skip to content
Snippets Groups Projects
Commit baf1f4a9 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

recorder: protect filters when flushing

Change-Id: Ideffd7329a39559ef76f4af615dbfdde23d59c95
parent 4505c8f5
No related branches found
No related tags found
No related merge requests found
......@@ -207,10 +207,13 @@ MediaRecorder::startRecording()
{
std::lock_guard<std::mutex> lk(mutexStreamSetup_);
for (auto& media : streams_) {
if (media.second->info.isVideo)
if (media.second->info.isVideo) {
std::lock_guard<std::mutex> lk2(mutexFilterVideo_);
setupVideoOutput();
else
} else {
std::lock_guard<std::mutex> lk2(mutexFilterAudio_);
setupAudioOutput();
}
media.second->isEnabled = true;
}
}
......@@ -685,21 +688,20 @@ MediaRecorder::buildAudioFilter(const std::vector<MediaStream>& peers) const
void
MediaRecorder::flush()
{
if (videoFilter_) {
{
std::lock_guard<std::mutex> lk(mutexFilterVideo_);
if (videoFilter_)
videoFilter_->flush();
if (outputVideoFilter_) {
if (outputVideoFilter_)
outputVideoFilter_->flush();
}
}
if (audioFilter_) {
{
std::lock_guard<std::mutex> lk(mutexFilterAudio_);
if (audioFilter_)
audioFilter_->flush();
if (outputAudioFilter_) {
if (outputAudioFilter_)
outputAudioFilter_->flush();
}
}
if (encoder_)
encoder_->flush();
}
......@@ -717,18 +719,14 @@ MediaRecorder::reset()
{
std::lock_guard<std::mutex> lk2(mutexFilterVideo_);
videoFilter_.reset();
if (outputVideoFilter_) {
outputVideoFilter_.reset();
}
}
{
std::lock_guard<std::mutex> lk2(mutexFilterAudio_);
audioFilter_.reset();
if (outputAudioFilter_) {
outputAudioFilter_.reset();
}
}
}
encoder_.reset();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment