[vlc-commits] auhal: workaround bug (in core audio?) which leads to shortend device names
David Fuhrmann
git at videolan.org
Sat Feb 16 15:19:19 CET 2013
vlc | branch: master | David Fuhrmann <david.fuhrmann at googlemail.com> | Sat Feb 16 15:16:18 2013 +0100| [9679399161093d429a77f3155ac8115622b44bbc] | committer: David Fuhrmann
auhal: workaround bug (in core audio?) which leads to shortend device names
Also fixes a memory leak
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9679399161093d429a77f3155ac8115622b44bbc
---
modules/audio_output/auhal.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c
index d45770a..3aea01c 100644
--- a/modules/audio_output/auhal.c
+++ b/modules/audio_output/auhal.c
@@ -990,6 +990,7 @@ static void RebuildDeviceList(audio_output_t * p_aout)
bool b_digital = false;
UInt32 i_id = deviceIDs[i];
+ propertySize = 0;
/* Retrieve the length of the device name */
err = AudioObjectGetPropertyDataSize(deviceIDs[i], &deviceNameAddress, 0, NULL, &propertySize);
if (err != noErr) {
@@ -997,6 +998,10 @@ static void RebuildDeviceList(audio_output_t * p_aout)
continue;
}
+ // previous function returns to small buffer len, bug in core audio!?
+ if (propertySize < 100)
+ propertySize = 100;
+
/* Retrieve the name of the device */
psz_name = (char *)malloc(propertySize);
err = AudioObjectGetPropertyData(deviceIDs[i], &deviceNameAddress, 0, NULL, &propertySize, psz_name);
@@ -1018,9 +1023,11 @@ static void RebuildDeviceList(audio_output_t * p_aout)
if (AudioDeviceSupportsDigital(p_aout, deviceIDs[i])) {
b_digital = true;
msg_Dbg(p_aout, "'%s' supports digital output", psz_name);
- asprintf(&psz_name, _("%s (Encoded Output)"), psz_name);
+ char *psz_encoded_name = nil;
+ asprintf(&psz_encoded_name, _("%s (Encoded Output)"), psz_name);
i_id = i_id | AOUT_VAR_SPDIF_FLAG;
- add_device_to_list(p_aout, i_id, psz_name);
+ add_device_to_list(p_aout, i_id, psz_encoded_name);
+ free(psz_encoded_name);
}
free(psz_name);
More information about the vlc-commits
mailing list