diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | src/output/osx_plugin.c | 19 |
2 files changed, 11 insertions, 9 deletions
@@ -7,6 +7,7 @@ ver 0.16.1 (2010/??/??) - mad: work around build failure on Solaris * output: - solaris: add missing parameter to open_cloexec() cal + - osx: fix up audio format first, then apply it to device ver 0.16 (2010/12/11) diff --git a/src/output/osx_plugin.c b/src/output/osx_plugin.c index 17d138d35..ce82656bd 100644 --- a/src/output/osx_plugin.c +++ b/src/output/osx_plugin.c @@ -214,15 +214,6 @@ osx_output_open(void *data, struct audio_format *audio_format, GError **error) stream_description.mSampleRate = audio_format->sample_rate; stream_description.mFormatID = kAudioFormatLinearPCM; stream_description.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger; -#if G_BYTE_ORDER == G_BIG_ENDIAN - stream_description.mFormatFlags |= kLinearPCMFormatFlagIsBigEndian; -#endif - - stream_description.mBytesPerPacket = - audio_format_frame_size(audio_format); - stream_description.mFramesPerPacket = 1; - stream_description.mBytesPerFrame = stream_description.mBytesPerPacket; - stream_description.mChannelsPerFrame = audio_format->channels; switch (audio_format->format) { case SAMPLE_FORMAT_S8: @@ -239,6 +230,16 @@ osx_output_open(void *data, struct audio_format *audio_format, GError **error) break; } +#if G_BYTE_ORDER == G_BIG_ENDIAN + stream_description.mFormatFlags |= kLinearPCMFormatFlagIsBigEndian; +#endif + + stream_description.mBytesPerPacket = + audio_format_frame_size(audio_format); + stream_description.mFramesPerPacket = 1; + stream_description.mBytesPerFrame = stream_description.mBytesPerPacket; + stream_description.mChannelsPerFrame = audio_format->channels; + result = AudioUnitSetProperty(od->au, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &stream_description, |