summaryrefslogtreecommitdiffstats
path: root/audio/audio_buffer.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-10-27 20:56:46 +0100
committerwm4 <wm4@nowhere>2015-10-27 20:56:46 +0100
commitaaec2aba3890e1b2ea8f4dc158d884bc85a59517 (patch)
tree61d9e3464aa0777bb7e58257e24b290c4b2146bd /audio/audio_buffer.c
parent3b95dd47d53d4d9b5a247f2dda550b5470e62b48 (diff)
downloadmpv-aaec2aba3890e1b2ea8f4dc158d884bc85a59517.tar.bz2
mpv-aaec2aba3890e1b2ea8f4dc158d884bc85a59517.tar.xz
player: add audio drop/duplicate mode
Not very robust in the moment.
Diffstat (limited to 'audio/audio_buffer.c')
-rw-r--r--audio/audio_buffer.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/audio/audio_buffer.c b/audio/audio_buffer.c
index 2bd546a532..c0f1341afe 100644
--- a/audio/audio_buffer.c
+++ b/audio/audio_buffer.c
@@ -119,6 +119,15 @@ void mp_audio_buffer_prepend_silence(struct mp_audio_buffer *ab, int samples)
mp_audio_fill_silence(ab->buffer, 0, samples);
}
+void mp_audio_buffer_duplicate(struct mp_audio_buffer *ab, int samples)
+{
+ assert(samples >= 0 && samples <= ab->buffer->samples);
+ int oldlen = ab->buffer->samples;
+ ab->buffer->samples += samples;
+ mp_audio_realloc_min(ab->buffer, ab->buffer->samples);
+ mp_audio_copy(ab->buffer, oldlen, ab->buffer, oldlen - samples, samples);
+}
+
// Get the start of the current readable buffer.
void mp_audio_buffer_peek(struct mp_audio_buffer *ab, struct mp_audio *out_mpa)
{