summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-11-27 21:46:04 +0000
committerCarl Hetherington <cth@carlh.net>2015-11-27 21:46:04 +0000
commit16ae636b9ab36b7ee384fc0adce96ceff47eadca (patch)
tree28c57ace15c05c8bc98abd6f99b123bd0469b501 /src
parente755db433d8d74854c1c65690261adbcf377ca11 (diff)
Speculative fix for crash when destroying AudioFilterGraph.
Diffstat (limited to 'src')
-rw-r--r--src/lib/audio_filter_graph.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/audio_filter_graph.cc b/src/lib/audio_filter_graph.cc
index 0035fb213..fd2492d3b 100644
--- a/src/lib/audio_filter_graph.cc
+++ b/src/lib/audio_filter_graph.cc
@@ -40,9 +40,7 @@ AudioFilterGraph::AudioFilterGraph (int sample_rate, int64_t channel_layout)
AudioFilterGraph::~AudioFilterGraph()
{
- if (_in_frame) {
- av_frame_free (&_in_frame);
- }
+ av_frame_free (&_in_frame);
}
string
@@ -114,6 +112,10 @@ AudioFilterGraph::process (shared_ptr<const AudioBuffers> buffers)
int r = av_buffersrc_write_frame (_buffer_src_context, _in_frame);
delete[] _in_frame->extended_data;
+ /* Reset extended_data to its original value so that av_frame_free
+ does not try to free it.
+ */
+ _in_frame->extended_data = _in_frame->data;
if (r < 0) {
char buffer[256];