[vlc-devel] [PATCH] auhal: Use encoded audio output if this was stored before

Thomas Guillem thomas at gllm.fr
Mon Feb 17 11:47:57 CET 2020


Hello David,

Sorry, I have missed your ping 17 months ago on trac...

The patch is OK but could be improved like that:

diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c
index b56e609bc39..a19aac1b505 100644
--- a/modules/audio_output/auhal.c
+++ b/modules/audio_output/auhal.c
@@ -519,9 +519,6 @@ RebuildDeviceList(audio_output_t * p_aout, UInt32 *p_id_exists)
             continue;
         }

-        if (p_id_exists && i_id == i_id_exists)
-            *p_id_exists = i_id;
-
         ReportDevice(p_aout, i_id, psz_name);
         CFNumberRef deviceNumber = CFNumberCreate(kCFAllocatorDefault,
                                                   kCFNumberSInt32Type, &i_id);
@@ -542,6 +539,9 @@ RebuildDeviceList(audio_output_t * p_aout, UInt32 *p_id_exists)
             free(psz_encoded_name);
         }

+        if (p_id_exists && i_id == i_id_exists)
+            *p_id_exists = i_id;
+
         // TODO: only register once for each device
         ManageAudioStreamsCallback(p_aout, p_devices[i], true);


On Sat, Feb 15, 2020, at 12:37, david.fuhrmann at gmail.com wrote:
> From: David Fuhrmann <dfuhrmann at videolan.org>
> 
> Encoded output is stored in VLCs settings by adding the
> AOUT_VAR_SPDIF_FLAG flag to the integer. Make sure this
> configuration is also picked up again after restart, if it is stored
> and actually available.
> 
> Credits: Andrey Y.
> fixes #21170
> ---
> 
> Hello all,
> 
> Patch is taken from the user comment in #21170 and has been 
> successfully tested and
> verified by me again.
> I asked the user in the forum (where he posted the same patch again) if 
> we wants to send a git-patch to get correct authorship.
> As he did not respond and I do not know his full name, I would apply it
> as proposed, they are no objections.
> 
> This should be also backported for 3.0.9.
> 
> BR. David
> 
> 
>  modules/audio_output/auhal.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c
> index b56e609bc397..643c3fd19450 100644
> --- a/modules/audio_output/auhal.c
> +++ b/modules/audio_output/auhal.c
> @@ -540,6 +540,9 @@ RebuildDeviceList(audio_output_t * p_aout, UInt32 
> *p_id_exists)
>              CFArrayAppendValue(currentListOfDevices, deviceNumber);
>              CFRelease(deviceNumber);
>              free(psz_encoded_name);
> +
> +            if (p_id_exists && i_id == i_id_exists)
> +                *p_id_exists = i_id;
>          }
>  
>          // TODO: only register once for each device
> @@ -1749,6 +1752,11 @@ static int Open(vlc_object_t *obj)
>      {
>          int dev_id_int = atoi(psz_audio_device);
>          UInt32 dev_id = dev_id_int < 0 ? 0 : dev_id_int;
> +
> +        bool isDigital = (dev_id & AOUT_VAR_SPDIF_FLAG) != 0;
> +        msg_Dbg(obj, "Trying to use stored audio device %d (%s)",
> +                (dev_id & ~AOUT_VAR_SPDIF_FLAG), isDigital ? "digital" 
> : "analog");

Also, this should be in a separate commit.

I'm OK for a backport (before the upcoming release).


> +
>          RebuildDeviceList(p_aout, &dev_id);
>          p_sys->i_new_selected_dev = dev_id;
>          free(psz_audio_device);
> -- 
> 2.21.1 (Apple Git-122.3)
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list