diff options
| author | Ibrahn Sahir | 2017-12-31 16:47:37 +0000 |
|---|---|---|
| committer | Ibrahn Sahir | 2017-12-31 16:51:55 +0000 |
| commit | 12efcb665a0d71b1913cf88f5b7eb1ad7eb0ffa5 (patch) | |
| tree | c2ef6d60edb02b951bbc32b57c9ffd4c700b11f9 /modules/stb_vorbis/audio_stream_ogg_vorbis.cpp | |
| parent | 548bd4ef1d3528cd77dd8fb77be8de9a5d5d044f (diff) | |
| download | godot-12efcb665a0d71b1913cf88f5b7eb1ad7eb0ffa5.tar.gz godot-12efcb665a0d71b1913cf88f5b7eb1ad7eb0ffa5.tar.zst godot-12efcb665a0d71b1913cf88f5b7eb1ad7eb0ffa5.zip | |
Diffstat (limited to 'modules/stb_vorbis/audio_stream_ogg_vorbis.cpp')
| -rw-r--r-- | modules/stb_vorbis/audio_stream_ogg_vorbis.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp index 6f5bbba8d..85c78b6a8 100644 --- a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp +++ b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp @@ -164,6 +164,14 @@ String AudioStreamOGGVorbis::get_stream_name() const { return ""; //return stream_name; } +void AudioStreamOGGVorbis::clear_data() { + if (data) { + AudioServer::get_singleton()->audio_data_free(data); + data = NULL; + data_len = 0; + } +} + void AudioStreamOGGVorbis::set_data(const PoolVector<uint8_t> &p_data) { int src_data_len = p_data.size(); @@ -209,6 +217,9 @@ void AudioStreamOGGVorbis::set_data(const PoolVector<uint8_t> &p_data) { length = stb_vorbis_stream_length_in_seconds(ogg_stream); stb_vorbis_close(ogg_stream); + // free any existing data + clear_data(); + data = AudioServer::get_singleton()->audio_data_alloc(src_data_len, src_datar.ptr()); data_len = src_data_len; @@ -275,3 +286,7 @@ AudioStreamOGGVorbis::AudioStreamOGGVorbis() { decode_mem_size = 0; loop = false; } + +AudioStreamOGGVorbis::~AudioStreamOGGVorbis() { + clear_data(); +} |
