Re: Trouble with VLC and alsa channel mapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

 

I'm continuing to investigate that issue and did some tests with aplay, using the 5.1 wav file that was used to create the AAC file with I had trouble with.

It turns out that aplay also mute or lower some channels and do not play 5.1 files well.

I check the available PCM with aplay and got the following result :

 

[code]bash-4.2$ aplay -L

null

Discard all samples (playback) or generate zero samples (capture)

default:CARD=SB

HDA ATI SB, ALC889A Analog

Default Audio Device

sysdefault:CARD=SB

HDA ATI SB, ALC889A Analog

Default Audio Device

front:CARD=SB,DEV=0

HDA ATI SB, ALC889A Analog

Front speakers

surround40:CARD=SB,DEV=0

HDA ATI SB, ALC889A Analog

4.0 Surround output to Front and Rear speakers

surround41:CARD=SB,DEV=0

HDA ATI SB, ALC889A Analog

4.1 Surround output to Front, Rear and Subwoofer speakers

surround50:CARD=SB,DEV=0

HDA ATI SB, ALC889A Analog

5.0 Surround output to Front, Center and Rear speakers

surround51:CARD=SB,DEV=0

HDA ATI SB, ALC889A Analog

5.1 Surround output to Front, Center, Rear and Subwoofer speakers

surround71:CARD=SB,DEV=0

HDA ATI SB, ALC889A Analog

7.1 Surround output to Front, Center, Side, Rear and Woofer speakers

iec958:CARD=SB,DEV=0

HDA ATI SB, ALC889A Digital

IEC958 (S/PDIF) Digital Audio Output

hdmi:CARD=HDMI,DEV=0

HDA ATI HDMI, HDMI 0

HDMI Audio Output[/code]

 

 

Using the default, I get sound but not properly downmixed :

 

bash-4.2$ aplay -v -D default ndj_5_1_MIX.wav

Lecture WAVE 'ndj_5_1_MIX.wav' : Signed 24 bit Little Endian in 3bytes, Fréquence 48000 Hz, 6 Canaux

Plug PCM: Route conversion PCM (sformat=S32_LE)

Transformation table:

0 <- 0

1 <- 1

Its setup is:

stream : PLAYBACK

access : RW_INTERLEAVED

format : S24_3LE

subformat : STD

channels : 6

rate : 48000

exact rate : 48000 (48000/1)

msbits : 24

buffer_size : 8192

period_size : 1024

period_time : 21333

tstamp_mode : NONE

period_step : 1

avail_min : 1024

period_event : 0

start_threshold : 8192

stop_threshold : 8192

silence_threshold: 0

silence_size : 0

boundary : 4611686018427387904

Slave: Soft volume PCM

Control: PCM Playback Volume

min_dB: -51

max_dB: 0

resolution: 256

Its setup is:

stream : PLAYBACK

access : MMAP_INTERLEAVED

format : S32_LE

subformat : STD

channels : 2

rate : 48000

exact rate : 48000 (48000/1)

msbits : 32

buffer_size : 8192

period_size : 1024

period_time : 21333

tstamp_mode : NONE

period_step : 1

avail_min : 1024

period_event : 0

start_threshold : 8192

stop_threshold : 8192

silence_threshold: 0

silence_size : 0

boundary : 4611686018427387904

Slave: Direct Stream Mixing PCM

Its setup is:

stream : PLAYBACK

access : MMAP_INTERLEAVED

format : S32_LE

subformat : STD

channels : 2

rate : 48000

exact rate : 48000 (48000/1)

msbits : 32

buffer_size : 8192

period_size : 1024

period_time : 21333

tstamp_mode : NONE

period_step : 1

avail_min : 1024

period_event : 0

start_threshold : 8192

stop_threshold : 8192

silence_threshold: 0

silence_size : 0

boundary : 4611686018427387904

Hardware PCM card 0 'HDA ATI SB' device 0 subdevice 0

Its setup is:

stream : PLAYBACK

access : MMAP_INTERLEAVED

format : S32_LE

subformat : STD

channels : 2

rate : 48000

exact rate : 48000 (48000/1)

msbits : 32

buffer_size : 8192

period_size : 1024

period_time : 21333

tstamp_mode : ENABLE

period_step : 1

avail_min : 1024

period_event : 0

start_threshold : 1

stop_threshold : 4611686018427387904

silence_threshold: 0

silence_size : 4611686018427387904

boundary : 4611686018427387904

appl_ptr : 0

hw_ptr : 0

 

So I thought maybe I should force stereo by using the "front" PCM.

But I got this :

 

bash-4.2$ aplay -v -D front ndj_5_1_MIX.wav

Lecture WAVE 'ndj_5_1_MIX.wav' : Signed 24 bit Little Endian in 3bytes, Fréquence 48000 Hz, 6 Canaux

aplay: set_params:1233: Ce format d'échantillonage n'est pas disponible

Available formats:

- S16_LE

- S32_LE

 

And the same goes for all non-Default PCM.

So the Default PCM does not downmix properly and the others do not work.

Is there any way around that?

 

Best regards,

 

Richard Van Den Boom

 



Le samedi 13 juillet 2013 14:36:06 vous avez écrit :

Hi,

 

I'm running slackware-current on my main desktop, which uses Alsa directly for sound, there is no sound server like PulseAudio or Jack.

I use VLC as a principal multimedia player and until about 2 months ago, everything worked fine : Slackware was running alsa 1.0.26 and I could use whatever version of VLC, even git, with no issue.

In may, Slackware-current upgraded to 1.0.27 alsa and then upgraded to the bugfix .1 then .2 releases.

Since then, any newer version of VLC that I try (self compiled from git) exhibit the same wrong behaviour : every time I watch a film with 5.1 surround sound, only two channels are played, and I often miss the voices, for instance.

 

I raised the issue on the VLC forum and they pointed me to the following logs in the VLC output :

 

Hardware PCM card 0 'HDA ATI SB' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_INTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)

 

followed by :

 

Hardware PCM card 0 'HDA ATI SB' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : MMAP_INTERLEAVED
  format       : S32_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)

 

The previous output from working VLC showed a downmixing line :

 

BUFFER_BYTES: [1024 655360000]
TICK_TIME: ALL
[0x7ffb0c002358] freetype spu text debug: using fontsize: 2
[0x7ffb0c002358] main spu text debug: using text renderer module "freetype"
[0x855778] alsa audio output debug: downmixing from 6 to 2 channels
[0x855778] alsa audio output debug: final HW setup:

 

According to the VLC developers, channel mapping support, introduced by alsa 1.0.27, was added to VLC in december 2012, and this must have been kicking in since Slackware added alsa 1.0.27.

Their analysis is that, although the hardware seem only to support two channels, the softvol plugin is reporting 5.1 support and advertising it. Thus VLC automatically choose the 5.1 output and do not downmix it.

However, although the chip (Realtek ALC889A) indeed support 5.1 sound, and although I indeed have several audio port on my mainboard, I only plugged stereo speakers and thus got a problem.

I tried setting up force downmix in /etc/asound.conf like this :

 

pcm.!surround51 {

type vdownmix

slave.pcm "default"

}

pcm.!surround40 {

type vdownmix

slave.pcm "default"

}

 

But to no avail.

Is this a bug I should report or is there a proper configuration that must be used?

I can provide a alsa-info output if necessary.

 

Best regards,

 

Richard Van Den Boom

 

 



------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux