Index: uspace/srv/audio/hound/audio_data.c
===================================================================
--- uspace/srv/audio/hound/audio_data.c	(revision 78aca91bc6b26239df024c7691bdeb7323fc44a1)
+++ uspace/srv/audio/hound/audio_data.c	(revision 98af9cc7f4995032fa1dd6741b4be54210114de7)
@@ -195,7 +195,9 @@
 {
 	assert(pipe);
+
 	const size_t dst_frame_size = pcm_format_frame_size(f);
-	size_t needed_frames = size / dst_frame_size;
+	size_t needed_frames = pcm_format_size_to_frames(size, f);
 	size_t copied_size = 0;
+
 	fibril_mutex_lock(&pipe->guard);
 	while (needed_frames > 0 && !list_empty(&pipe->list)) {
Index: uspace/srv/audio/hound/connection.c
===================================================================
--- uspace/srv/audio/hound/connection.c	(revision 78aca91bc6b26239df024c7691bdeb7323fc44a1)
+++ uspace/srv/audio/hound/connection.c	(revision 98af9cc7f4995032fa1dd6741b4be54210114de7)
@@ -86,5 +86,5 @@
 	if (!data)
 		return EBADMEM;
-	size_t needed_frames = pcm_format_size_to_frames(size, &format);
+	const size_t needed_frames = pcm_format_size_to_frames(size, &format);
 	if (needed_frames > audio_pipe_frames(&connection->fifo) &&
 	    connection->source->update_available_data) {
