Commit 6d7114a6 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

ALSA: only append AES parameters to iec958 and hdmi plugs

Other ALSA plugs do not support those parameters.

Regresion from 7a19c0b4.

(cherry picked from commit 8add728fb5bd34a73e97462960343f604660a48f)
parent 095943e0
......@@ -325,9 +325,31 @@ static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt)
}
const char *device = sys->device;
char *devbuf = NULL;
/* Choose the IEC device for S/PDIF output */
char sep = '\0';
if (spdif)
{
const char *opt;
if (!strcmp (device, "default"))
device = "iec958"; /* TODO: hdmi */
if (!strncmp (device, "iec958", 6))
opt = device + 6;
if (!strncmp (device, "hdmi", 4))
opt = device + 4;
if (opt != NULL)
switch (*opt)
{
case ':': sep = ','; break;
case '\0': sep = ':'; break;
}
}
char *devbuf = NULL;
if (sep != '\0')
{
unsigned aes3;
......@@ -345,23 +367,8 @@ static int Start (audio_output_t *aout, audio_sample_format_t *restrict fmt)
break;
}
char *opt = NULL;
if (!strcmp (device, "default"))
device = "iec958"; /* TODO: hdmi */
else
{
opt = strchr(device, ':');
if (opt && opt[1] == '\0') {
/* if device is terminated by : but there's no options,
* remove ':', we'll add it back in the format string. */
*opt = '\0';
opt = NULL;
}
}
if (asprintf (&devbuf,
"%s%cAES0=0x%x,AES1=0x%x,AES2=0x%x,AES3=0x%x", device,
opt ? ',' : ':',
if (asprintf (&devbuf, "%s%cAES0=0x%x,AES1=0x%x,AES2=0x%x,AES3=0x%x",
device, sep,
IEC958_AES0_CON_EMPHASIS_NONE | IEC958_AES0_NONAUDIO,
IEC958_AES1_CON_ORIGINAL | IEC958_AES1_CON_PCM_CODER,
0, aes3) == -1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment