Kodi Community Forum
Linux AudioEngine testers - Linux only - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+--- Thread: Linux AudioEngine testers - Linux only (/showthread.php?tid=128298)



RE: AudioEngine testers - Linux only - wxc200 - 2012-08-13

from your log i found the HBR bits were "0", meaning the High-bit rate features was not working at least in GFX side. it's what i'm confusing now.

AUD_OUT_STR_DESC_A HBR_enable 0

AUD_OUT_STR_DESC_B HBR_enable 0

AUD_OUT_STR_DESC_C HBR_enable 0







RE: AudioEngine testers - Linux only - Fneufneu - 2012-08-16

hi,
i have an issue when i try to play TrueHD decoded into LPCM (disable truehd support and enable lpcm)
all works fine except the center channel, i have no sound at all from it.
i checked (with dolby truehd channel check 7.1) and all channel are mapped correctly, except the center.
i dont known if it's ffmpeg or anything related.
my system: FreeBSD + OSS + ffmpeg 0.11.1

also can someone plz pastebin a log of hd files (dtshdma and truehd) successfully played with alsa on a receiver who support it.
i need to make some diff with my OSS log output.
thanks !



RE: AudioEngine testers - Linux only - direx - 2012-08-16

(2012-08-09, 18:41)wxc200 Wrote: Thanks a lot. Currently we can manage the hbr bits setting correctly at alsa hda side,but gfx side did not reflect hbr correctly. That's maybe caused by some wrong setting sequence,anyway I hope you can provide the output of intel-audio-dump to check pin status. Sorry I have no hdmi receiver handy to receive hbr formats audio.
I also ran intel-audio-dump (from git), this is the result:

http://pastebin.com/iubEkqJm

Note: I am on the latest drm-intel-next-queued branch, which includes 9a4b63e1ca943743ddb420611af5dcedbfb3953a, 7fc5be186fed4a782338a5feff5745c9c8190f75 and 1227d7f16b08bde70ac8afc71e5d47b610db77e3 (are these your commits, wxc200?).

If I can do anything else to help you, let me know.


RE: AudioEngine testers - Linux only - Fneufneu - 2012-08-16

ok i found my problem, LFE and center channel are inverted


RE: AudioEngine testers - Linux only - Fneufneu - 2012-08-17

(2012-08-16, 10:51)Fneufneu Wrote: hi,
i have an issue when i try to play TrueHD decoded into LPCM (disable truehd support and enable lpcm)
all works fine except the center channel, i have no sound at all from it.
i checked (with dolby truehd channel check 7.1) and all channel are mapped correctly, except the center.
i dont known if it's ffmpeg or anything related.
my system: FreeBSD + OSS + ffmpeg 0.11.1

i fixed TrueHD decoding channel mapping in ffmpeg 0.11.1: http://fneufn.eu/freebsd/patch-libavcodec-mlpdec.c
can someone confirm if it's works correctly on ALSA without my patch
and i'll send issue in upstream.



RE: AudioEngine testers - Linux only - fatal. - 2012-08-19

Hey,

I am using the latest OpenELEC generic build by ericab (r11809 - Frodo-r16812)

On some DTS-HD tracks I am getting a lot of "crackling" when there is a loud sound effect/explosion. This only happens on my htpcs connected to TV and XBMC is set to output using HDIMI with 2.0 speaker configuration (everything else is turned off). I've tried this on 3 different tvs.

Playing the same movie/section while bit-streaming to the receiver everything plays fine, no crackling. Also playing it on my desktop with headphones using MPC also has no issues.

Here is a sample video for which I get crackling: http://www36.zippyshare.com/d/27144396/7782813/dts-hd.sample.mkv
Debug Log: http://xbmclogs.com/show.php?id=6895

Using GT430.

Take Care


RE: AudioEngine testers - Linux only - SiS31 - 2012-08-21

Bug in audio player

Hello,

i use Xtreamer Ultra 2 and i found bug in OpenELEC_frodo-Ultra.x86_64-devel-20120820113649-r11814...idia-v304.37.tar.bz2 audio player. When I play DTS audio file in wav format the time go fastly, but the song sounds good. Then the audio file ends before. MP3 works without problem. Movies play correctly.
Try pls this wav file. share-rapid.com/stahuj/d5880qm1 . Another problem is that album art in DTS wav files is not display correctly.
In OpenELEC 2.0 Beta 6(1.95.6) is everything OK. DTS wav files plaing correctly and too the album art in files are displayed correctly.
Thanks for answer.


RE: AudioEngine testers - Linux only - wxc200 - 2012-08-22

(2012-08-16, 15:16)direx Wrote:
(2012-08-09, 18:41)wxc200 Wrote: Thanks a lot. Currently we can manage the hbr bits setting correctly at alsa hda side,but gfx side did not reflect hbr correctly. That's maybe caused by some wrong setting sequence,anyway I hope you can provide the output of intel-audio-dump to check pin status. Sorry I have no hdmi receiver handy to receive hbr formats audio.
I also ran intel-audio-dump (from git), this is the result:

http://pastebin.com/iubEkqJm

Note: I am on the latest drm-intel-next-queued branch, which includes 9a4b63e1ca943743ddb420611af5dcedbfb3953a, 7fc5be186fed4a782338a5feff5745c9c8190f75 and 1227d7f16b08bde70ac8afc71e5d47b610db77e3 (are these your commits, wxc200?).

If I can do anything else to help you, let me know.

Thanks your test. I have one Yamaha RX V571 which supports HBR stream testing now, so i can test my patch easily. About the patches, i used name "xingchao.wang@Intel.com".

Currently one clue is about HBR bits setting, another one is about N/CTS programming. Intel driver left the default values for TMDS clock and the HDMI spec has requirement to program N/CTS according to ASP type. There's one recommended talbe for various rates and TMDS clock(according to HDMI SPEC 1.3a, table 7.1). I'm doing more test based on that. I know little about the knowledge on this and how does that work on the enabled-HBR platform such as Nvidia's card. if anyone can share with me some infomation, i will appreciate that much.

thanks
--xingchao



RE: AudioEngine testers - Linux only - jz1276 - 2012-08-26

(2012-08-21, 23:39)SiS31 Wrote: Bug in audio player

Hello,

i use Xtreamer Ultra 2 and i found bug in OpenELEC_frodo-Ultra.x86_64-devel-20120820113649-r11814...idia-v304.37.tar.bz2 audio player. When I play DTS audio file in wav format the time go fastly, but the song sounds good. Then the audio file ends before. MP3 works without problem. Movies play correctly.
Try pls this wav file. share-rapid.com/stahuj/d5880qm1 . Another problem is that album art in DTS wav files is not display correctly.
In OpenELEC 2.0 Beta 6(1.95.6) is everything OK. DTS wav files plaing correctly and too the album art in files are displayed correctly.
Thanks for answer.

I have a similar problem. Any DTS-WAV file with cue sheets are not playing properly. Some dont start where they should and always cut out early.



RE: AudioEngine testers - Linux only - wxc200 - 2012-08-28

The HBR stream could work on Intel's chip now, i will update the patch later. Smile


RE: AudioEngine testers - Linux only - wxc200 - 2012-08-28

(2012-08-28, 07:51)wxc200 Wrote: The HBR stream could work on Intel's chip now, i will update the patch later. Smile

I didnot find there's attachment option, so i just paste the patch here.
please apply the patch against Takashi's latest sound tree.
i tested this patch on my Yamaha A/V Receiver, both DTS-HD MA and Dolby TrueHD HBR streams
could play well.
Please note this patch is only for test purpose now, it's not the final upstream version.
There's another dependent hack from Anssi, please apply the second patch against Takashi's alsa-lib tree.

If there's any problem during your test, please feel free to let me know:
xingchao.wang@Intel.com

[PATCH] ALSA: HDMI - Enable HBR feature on Intel chips

HDMI channel remapping apparently effects HBR packets on Intel's chips.
For compressed non-PCM audio, use "straight-through" channel mapping.
For uncompressed multi-channel pcm audio, use normal mapping.

Signed-off-by: Wang Xingchao <xingchao.wang@Intel.com>
Signed-off-by: Anssi Hannula <[email protected]>
---
sound/pci/hda/patch_hdmi.c | 50 +++++++++++++++++++++++++++-----------------
1 file changed, 31 insertions(+), 19 deletions(-)

diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index d9439c5..fda89e3 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -231,6 +231,11 @@ static struct cea_channel_speaker_allocation channel_allocations[] = {
{ .ca_index = 0x01, .speakers = { 0, 0, 0, 0, 0, LFE, FR, FL } },
/* Dolby Surround */
{ .ca_index = 0x02, .speakers = { 0, 0, 0, 0, FC, 0, FR, FL } },
+{ .ca_index = 0x03, .speakers = { 0, 0, 0, 0, FC, LFE, FR, FL } },
+{ .ca_index = 0x04, .speakers = { 0, 0, 0, RC, 0, 0, FR, FL } },
+{ .ca_index = 0x05, .speakers = { 0, 0, 0, RC, 0, LFE, FR, FL } },
+{ .ca_index = 0x06, .speakers = { 0, 0, 0, RC, FC, 0, FR, FL } },
+{ .ca_index = 0x07, .speakers = { 0, 0, 0, RC, FC, LFE, FR, FL } },
/* surround40 */
{ .ca_index = 0x08, .speakers = { 0, 0, RR, RL, 0, 0, FR, FL } },
/* surround41 */
@@ -239,22 +244,15 @@ static struct cea_channel_speaker_allocation channel_allocations[] = {
{ .ca_index = 0x0a, .speakers = { 0, 0, RR, RL, FC, 0, FR, FL } },
/* surround51 */
{ .ca_index = 0x0b, .speakers = { 0, 0, RR, RL, FC, LFE, FR, FL } },
- /* 6.1 */
-{ .ca_index = 0x0f, .speakers = { 0, RC, RR, RL, FC, LFE, FR, FL } },
- /* surround71 */
-{ .ca_index = 0x13, .speakers = { RRC, RLC, RR, RL, FC, LFE, FR, FL } },
-
-{ .ca_index = 0x03, .speakers = { 0, 0, 0, 0, FC, LFE, FR, FL } },
-{ .ca_index = 0x04, .speakers = { 0, 0, 0, RC, 0, 0, FR, FL } },
-{ .ca_index = 0x05, .speakers = { 0, 0, 0, RC, 0, LFE, FR, FL } },
-{ .ca_index = 0x06, .speakers = { 0, 0, 0, RC, FC, 0, FR, FL } },
-{ .ca_index = 0x07, .speakers = { 0, 0, 0, RC, FC, LFE, FR, FL } },
{ .ca_index = 0x0c, .speakers = { 0, RC, RR, RL, 0, 0, FR, FL } },
{ .ca_index = 0x0d, .speakers = { 0, RC, RR, RL, 0, LFE, FR, FL } },
{ .ca_index = 0x0e, .speakers = { 0, RC, RR, RL, FC, 0, FR, FL } },
+{ .ca_index = 0x0f, .speakers = { 0, RC, RR, RL, FC, LFE, FR, FL } },
{ .ca_index = 0x10, .speakers = { RRC, RLC, RR, RL, 0, 0, FR, FL } },
{ .ca_index = 0x11, .speakers = { RRC, RLC, RR, RL, 0, LFE, FR, FL } },
{ .ca_index = 0x12, .speakers = { RRC, RLC, RR, RL, FC, 0, FR, FL } },
+ /* surround71 */
+{ .ca_index = 0x13, .speakers = { RRC, RLC, RR, RL, FC, LFE, FR,
+FL } },
{ .ca_index = 0x14, .speakers = { FRC, FLC, 0, 0, 0, 0, FR, FL } },
{ .ca_index = 0x15, .speakers = { FRC, FLC, 0, 0, 0, LFE, FR, FL } },
{ .ca_index = 0x16, .speakers = { FRC, FLC, 0, 0, FC, 0, FR, FL } },
@@ -537,22 +535,36 @@ static void hdmi_debug_channel_mapping(struct hda_codec *codec,

static void hdmi_setup_channel_mapping(struct hda_codec *codec,
hda_nid_t pin_nid,
+ hda_nid_t cvt_nid,
int ca)
{
int i;
int err;
-
- if (hdmi_channel_mapping[ca][1] == 0) {
- for (i = 0; i < channel_allocations[ca].channels; i++)
- hdmi_channel_mapping[ca][i] = i | (i << 4);
+ unsigned short val;
+ int tmp_mapping[8];
+ bool non_pcm = false;
+
+ val = snd_hda_codec_read(codec, cvt_nid, 0, AC_VERB_GET_DIGI_CONVERT_1, 0);
+ non_pcm = !!(val & AC_DIG1_NONAUDIO);
+
+ if (hdmi_channel_mapping[ca][1] == 0 || non_pcm) {
+ for (i = 0; i < channel_allocations[ca].channels; i++) {
+ if (non_pcm)
+ tmp_mapping[i] = i | (i << 4);
+ else
+ hdmi_channel_mapping[ca][i] = i | (i << 4);
+ }
for (; i < 8; i++)
- hdmi_channel_mapping[ca][i] = 0xf | (i << 4);
+ if (non_pcm)
+ tmp_mapping[i] = 0xf | (i << 4);
+ else
+ hdmi_channel_mapping[ca][i] = 0xf | (i << 4);
}

for (i = 0; i < 8; i++) {
err = snd_hda_codec_write(codec, pin_nid, 0,
AC_VERB_SET_HDMI_CHAN_SLOT,
- hdmi_channel_mapping[ca][i]);
+ non_pcm ? tmp_mapping[i] : hdmi_channel_mapping[ca][i]);
if (err) {
snd_printdd(KERN_NOTICE
"HDMI: channel mapping failed\n"); @@ -686,7 +698,7 @@ static bool hdmi_infoframe_uptodate(struct hda_codec *codec, hda_nid_t pin_nid, }

static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx,
- struct snd_pcm_substream *substream)
+ hda_nid_t cvt_nid, struct snd_pcm_substream *substream)
{
struct hdmi_spec *spec = codec->spec;
struct hdmi_spec_per_pin *per_pin = &spec->pins[pin_idx]; @@ -731,13 +743,13 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx,
* sizeof(*dp_ai) to avoid partial match/update problems when
* the user switches between HDMI/DP monitors.
*/
+ hdmi_setup_channel_mapping(codec, pin_nid, cvt_nid, ca);
if (!hdmi_infoframe_uptodate(codec, pin_nid, ai.bytes,
sizeof(ai))) {
snd_printdd("hdmi_setup_audio_infoframe: "
"pin=%d channels=%d\n",
pin_nid,
channels);
- hdmi_setup_channel_mapping(codec, pin_nid, ca);
hdmi_stop_infoframe_trans(codec, pin_nid);
hdmi_fill_audio_infoframe(codec, pin_nid,
ai.bytes, sizeof(ai));
@@ -1151,7 +1163,7 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo,

hdmi_set_channel_count(codec, cvt_nid, substream->runtime->channels);

- hdmi_setup_audio_infoframe(codec, pin_idx, substream);
+ hdmi_setup_audio_infoframe(codec, pin_idx, cvt_nid, substream);

pinctl = snd_hda_codec_read(codec, pin_nid, 0,
AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
--
1.7.9.5

alsa-lib patch:

From 47b54a7e3b6ba58782348c87c6a83b318d5f8c65 Mon Sep 17 00:00:00 2001
From: Wang Xingchao <xingchao.wang@Intel.com>
Date: Tue, 28 Aug 2012 17:11:04 +0800
Subject: [PATCH] HDA-Intel: change CTLINDEX entries for HBR

Fix wrong CTLINDEX for HBR stream.

Signed-off-by: Wang Xingchao <xingchao.wang@Intel.com>
---
src/conf/cards/HDA-Intel.conf | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/conf/cards/HDA-Intel.conf b/src/conf/cards/HDA-Intel.conf
index d4f2667..7d6de8f 100644
--- a/src/conf/cards/HDA-Intel.conf
+++ b/src/conf/cards/HDA-Intel.conf
@@ -211,7 +211,7 @@ HDA-Intel.pcm.hdmi.0 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=3,"
- "CTLINDEX=0,"
+ "CTLINDEX=1,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
@@ -234,7 +234,7 @@ HDA-Intel.pcm.hdmi.1 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=7,"
- "CTLINDEX=1,"
+ "CTLINDEX=2,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
@@ -257,7 +257,7 @@ HDA-Intel.pcm.hdmi.2 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=8,"
- "CTLINDEX=2,"
+ "CTLINDEX=3,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
@@ -280,7 +280,7 @@ HDA-Intel.pcm.hdmi.3 {
"cards.HDA-Intel.pcm.hdmi.common:"
"CARD=" $CARD ","
"DEVICE=9,"
- "CTLINDEX=3,"
+ "CTLINDEX=4,"
"AES0=" $AES0 ","
"AES1=" $AES1 ","
"AES2=" $AES2 ","
--
1.7.9.5



AW: AudioEngine testers - Linux only - direx - 2012-08-28

Thank you so much for looking into this xingchao! I hope I can test your patches by the end of this week.

- direx


RE: AudioEngine testers - Linux only - tsobanoskilo - 2012-08-29

hi
running about a week now alpha5-commit bc0813f and i think it is the most stable until now
it is running in debian-wheezy
but i cant make 2 days now a new version running
i get xbmc built succesfully but when i try to run it with make install or ./xbmc.bin
it give error unable to create application.Exiting
i use --prefix=$HOME/xbmc --enable-external-libraries --disable-external-ffmpeg and some other options for my hw (no joystick,no vaapi,no pulse etc)
i try to configure it with default options but no go

how can i run it in verbose to get some more debug


RE: AudioEngine testers - Linux only - DDDamian - 2012-08-29

@fatal - sounds like when it's downmixing to PCM it's being clamped or limited which can cause that distortion. It may be we're not using the best downmixing ratios but also check that Settings>System>Audio Output>Boost level on downmix is turned off and see if that helps. If it was already off pls let me know.


RE: AudioEngine testers - Linux only - tsobanoskilo - 2012-08-29

(2012-08-29, 20:27)tsobanoskilo Wrote: hi
running about a week now alpha5-commit bc0813f and i think it is the most stable until now
it is running in debian-wheezy
but i cant make 2 days now a new version running
i get xbmc built succesfully but when i try to run it with make install or ./xbmc.bin
it give error unable to create application.Exiting
i use --prefix=$HOME/xbmc --enable-external-libraries --disable-external-ffmpeg and some other options for my hw (no joystick,no vaapi,no pulse etc)
i try to configure it with default options but no go

how can i run it in verbose to get some more debug

ok i found it
have to disable external ffmpeg
./configure --disable-external-ffmeg