From 03a401e4779a287d2760376a10ef4ea415803b00 Mon Sep 17 00:00:00 2001
From: Gregory Smith <gasmith@vmware.com>
Date: Tue, 2 Oct 2012 08:18:41 -0700
Subject: [PATCH] OSX: Set mDataByteSize correctly on AudioBuffers during
 render.

---
 NEWS                           |  1 +
 src/output/osx_output_plugin.c | 10 +++++++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/NEWS b/NEWS
index c08a779e0..b280e6162 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,6 @@
 ver 0.17.3 (2012/??/??)
 * output:
+  - osx: fix pops during playback
   - recorder: fix I/O error check
   - shout: fix memory leak in error handler
   - recorder, shout: support Ogg packets that span more than one page
diff --git a/src/output/osx_output_plugin.c b/src/output/osx_output_plugin.c
index fbba81749..cd51fca20 100644
--- a/src/output/osx_output_plugin.c
+++ b/src/output/osx_output_plugin.c
@@ -228,9 +228,13 @@ osx_render(void *vdata,
 	g_cond_signal(od->condition);
 	g_mutex_unlock(od->mutex);
 
-	if (nbytes < buffer_size)
-		memset((unsigned char*)buffer->mData + nbytes, 0,
-		       buffer_size - nbytes);
+	buffer->mDataByteSize = nbytes;
+
+	unsigned i;
+	for (i = 1; i < buffer_list->mNumberBuffers; ++i) {
+		buffer = &buffer_list->mBuffers[i];
+		buffer->mDataByteSize = 0;
+	}
 
 	return 0;
 }