From: Armin Novak Date: Thu, 3 May 2018 14:12:12 +0000 (+0200) Subject: Fixed mac sound backend initialization. X-Git-Tag: 2.0.0-rc3~39^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=17d43edafbfad42a3f87dc40e9dad9b563267349;p=platform%2Fupstream%2Ffreerdp.git Fixed mac sound backend initialization. --- diff --git a/channels/rdpsnd/client/mac/rdpsnd_mac.c b/channels/rdpsnd/client/mac/rdpsnd_mac.c index db98057..ce8a83c 100644 --- a/channels/rdpsnd/client/mac/rdpsnd_mac.c +++ b/channels/rdpsnd/client/mac/rdpsnd_mac.c @@ -85,8 +85,8 @@ static BOOL rdpsnd_mac_set_format(rdpsndDevicePlugin* device, const AUDIO_FORMAT mac->audioFormat.mFramesPerPacket = 1; mac->audioFormat.mChannelsPerFrame = format->nChannels; mac->audioFormat.mBitsPerChannel = format->wBitsPerSample; - mac->audioFormat.mBytesPerFrame = (format->wBitsPerSample * format->nChannels) / 8; - mac->audioFormat.mBytesPerPacket = format->nBlockAlign; + mac->audioFormat.mBytesPerFrame = mac->audioFormat.mBitsPerChannel * mac->audioFormat.mChannelsPerFrame / 8; + mac->audioFormat.mBytesPerPacket = mac->audioFormat.mBytesPerFrame * mac->audioFormat.mFramesPerPacket; mac->audioFormat.mReserved = 0; switch (format->wFormatTag) @@ -104,13 +104,69 @@ static BOOL rdpsnd_mac_set_format(rdpsndDevicePlugin* device, const AUDIO_FORMAT break; default: - break; + return FALSE; } rdpsnd_print_audio_format(format); return TRUE; } +static char *FormatError(OSStatus st) +{ + switch (st) { + case kAudioFileUnspecifiedError: + return "kAudioFileUnspecifiedError"; + + case kAudioFileUnsupportedFileTypeError: + return "kAudioFileUnsupportedFileTypeError"; + + case kAudioFileUnsupportedDataFormatError: + return "kAudioFileUnsupportedDataFormatError"; + + case kAudioFileUnsupportedPropertyError: + return "kAudioFileUnsupportedPropertyError"; + + case kAudioFileBadPropertySizeError: + return "kAudioFileBadPropertySizeError"; + + case kAudioFilePermissionsError: + return "kAudioFilePermissionsError"; + + case kAudioFileNotOptimizedError: + return "kAudioFileNotOptimizedError"; + + case kAudioFileInvalidChunkError: + return "kAudioFileInvalidChunkError"; + + case kAudioFileDoesNotAllow64BitDataSizeError: + return "kAudioFileDoesNotAllow64BitDataSizeError"; + + case kAudioFileInvalidPacketOffsetError: + return "kAudioFileInvalidPacketOffsetError"; + + case kAudioFileInvalidFileError: + return "kAudioFileInvalidFileError"; + + case kAudioFileOperationNotSupportedError: + return "kAudioFileOperationNotSupportedError"; + + case kAudioFileNotOpenError: + return "kAudioFileNotOpenError"; + + case kAudioFileEndOfFileError: + return "kAudioFileEndOfFileError"; + + case kAudioFilePositionError: + return "kAudioFilePositionError"; + + case kAudioFileFileNotFoundError: + return "kAudioFileFileNotFoundError"; + + default: + return "unknown error"; + } +} + static BOOL rdpsnd_mac_open(rdpsndDevicePlugin* device, const AUDIO_FORMAT* format, UINT32 latency) { int index; @@ -128,10 +184,10 @@ static BOOL rdpsnd_mac_open(rdpsndDevicePlugin* device, const AUDIO_FORMAT* form status = AudioQueueNewOutput(&(mac->audioFormat), mac_audio_queue_output_cb, mac, NULL, NULL, 0, &(mac->audioQueue)); - if (status != 0) { - WLog_ERR(TAG, "AudioQueueNewOutput failure\n"); + const char* err = FormatError(status); + WLog_ERR(TAG, "AudioQueueNewOutput failure %s", err); return FALSE; }