From 96155a3376ef40eac9ca7a7b882da6447ab53979 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 10 Oct 2008 14:41:37 +0200 Subject: audio_format: added audio_format_frame_size() A frame contains one sample per channel, thus it is sample_size * channels. This patch includes some cleanup for various locations where the sample size for 24 bit audio was still 3 bytes (instead of 4). --- src/audioOutputs/audioOutput_alsa.c | 2 +- src/audioOutputs/audioOutput_osx.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_alsa.c b/src/audioOutputs/audioOutput_alsa.c index 30ad449f3..9d47ff244 100644 --- a/src/audioOutputs/audioOutput_alsa.c +++ b/src/audioOutputs/audioOutput_alsa.c @@ -288,7 +288,7 @@ configure_hw: if (err < 0) goto error; - ad->sampleSize = audio_format_sample_size(audioFormat) * audioFormat->channels; + ad->sampleSize = audio_format_frame_size(audioFormat); DEBUG("ALSA device \"%s\" will be playing %i bit, %u channel audio at " "%u Hz\n", ad->device, audioFormat->bits, diff --git a/src/audioOutputs/audioOutput_osx.c b/src/audioOutputs/audioOutput_osx.c index 1fc0a5d9e..65060cc8c 100644 --- a/src/audioOutputs/audioOutput_osx.c +++ b/src/audioOutputs/audioOutput_osx.c @@ -266,8 +266,7 @@ static int osx_openDevice(struct audio_output *audioOutput, streamDesc.mFormatFlags |= kLinearPCMFormatFlagIsBigEndian; #endif - streamDesc.mBytesPerPacket = - audioFormat->channels * audio_format_sample_size(audioFormat); + streamDesc.mBytesPerPacket = audio_format_frame_size(audioFormat); streamDesc.mFramesPerPacket = 1; streamDesc.mBytesPerFrame = streamDesc.mBytesPerPacket; streamDesc.mChannelsPerFrame = audioFormat->channels; @@ -284,7 +283,7 @@ static int osx_openDevice(struct audio_output *audioOutput, /* create a buffer of 1s */ od->bufferSize = (audioFormat->sample_rate) * - (audioFormat->bits >> 3) * (audioFormat->channels); + audio_format_frame_size(audioFormat); od->buffer = xrealloc(od->buffer, od->bufferSize); od->pos = 0; -- cgit v1.2.3