Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
e1eabbde by Thomas Guillem at 2024-06-05T13:01:40+00:00
apple: avaudiosession: don't always log downmixing warning

In case of spatial_audio:
 - setPreferredOutputNumberOfChannels:2
 - setSupportsMultichannelContent:Yes

Don't print a warning saying it will be downmixed when it will be
"spatialized".

- - - - -
6f576c95 by Thomas Guillem at 2024-06-05T13:01:40+00:00
apple: channel_layout: fix stereo on xros via avsb

- - - - -
c0ea8ba0 by Thomas Guillem at 2024-06-05T13:01:40+00:00
apple: channel_layout: use kAudioChannelLayoutTag_StereoHeadphones

No more infos than: "A standard stereo stream; headphone playback
implied."

- - - - -


2 changed files:

- modules/audio_output/apple/avaudiosession_common.m
- modules/audio_output/apple/channel_layout.c


Changes:

=====================================
modules/audio_output/apple/avaudiosession_common.m
=====================================
@@ -52,8 +52,9 @@ avas_PrepareFormat(audio_output_t *p_aout, AVAudioSession 
*instance,
     /* Increase the preferred number of output channels if possible */
     if (channel_count > max_channel_count)
     {
-        msg_Warn(p_aout, "Requested channel count %u not fully supported, "
-                 "downmixing to %ld\n", channel_count, 
(long)max_channel_count);
+        if (!spatial_audio)
+            msg_Warn(p_aout, "Requested channel count %u not fully supported, "
+                     "downmixing to %ld\n", channel_count, 
(long)max_channel_count);
         channel_count = max_channel_count;
     }
 


=====================================
modules/audio_output/apple/channel_layout.c
=====================================
@@ -66,8 +66,30 @@ channel_layout_MapFromVLC(audio_output_t *p_aout, const 
audio_sample_format_t *f
                           AudioChannelLayout **inlayoutp, size_t 
*inlayout_size)
 {
     unsigned channels = aout_FormatNbChannels(fmt);
-
     size_t size;
+
+    /* Stereo on xros via avsb doesn't work with the UseChannelDescriptions
+     * tag, so use Mono and Stereo tags. */
+    if (channels <= 2)
+    {
+        size = sizeof(AudioChannelLayout);
+        AudioChannelLayout *inlayout = malloc(size);
+        if (inlayout == NULL)
+            return VLC_ENOMEM;
+        *inlayoutp = inlayout;
+        *inlayout_size = size;
+
+        if (channels == 1)
+            inlayout->mChannelLayoutTag = kAudioChannelLayoutTag_Mono;
+        else
+            inlayout->mChannelLayoutTag =
+                p_aout->current_sink_info.headphones ?
+                    kAudioChannelLayoutTag_StereoHeadphones :
+                    kAudioChannelLayoutTag_Stereo;
+
+        return VLC_SUCCESS;
+    }
+
     if (ckd_mul(&size, channels, sizeof(AudioChannelDescription)) ||
         ckd_add(&size, size, sizeof(AudioChannelLayout)))
         return VLC_ENOMEM;



View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/a2cc24400faee2d93a480fac63883017c4fd9873...c0ea8ba07dc315ca7034d11dc03736cffeb23f76

-- 
This project does not include diff previews in email notifications.
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/a2cc24400faee2d93a480fac63883017c4fd9873...c0ea8ba07dc315ca7034d11dc03736cffeb23f76
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to