diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-11-27 21:46:04 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-11-27 21:46:04 +0000 |
| commit | 16ae636b9ab36b7ee384fc0adce96ceff47eadca (patch) | |
| tree | 28c57ace15c05c8bc98abd6f99b123bd0469b501 /src | |
| parent | e755db433d8d74854c1c65690261adbcf377ca11 (diff) | |
Speculative fix for crash when destroying AudioFilterGraph.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/audio_filter_graph.cc | 8 |
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]; |
