From 980f2ca56dbedb60aa3f880f66a97d151a107e62 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Thu, 23 Oct 2008 16:48:49 +0200
Subject: output_buffer: don't split frames

Splitting a frame between two buffer chunks causes distortion in the
output.  MPD used to assume that the chunk size 1020 would never cause
splitted frames, but that isn't the case for 24 bit stereo (127.5
frames), and even less for files with even more channels.
---
 src/audio.c | 3 +++
 1 file changed, 3 insertions(+)

(limited to 'src/audio.c')

diff --git a/src/audio.c b/src/audio.c
index 4305235d0..7d8e49f77 100644
--- a/src/audio.c
+++ b/src/audio.c
@@ -254,6 +254,9 @@ int playAudio(const char *buffer, size_t length)
 	int ret = -1, err;
 	unsigned int i;
 
+	/* no partial frames allowed */
+	assert((length % audio_format_frame_size(&input_audio_format)) == 0);
+
 	syncAudioDeviceStates();
 
 	for (i = 0; i < audioOutputArraySize; ++i)
-- 
cgit v1.2.3