Announcement

Collapse
No announcement yet.

TrueHD, DTS-HD, E-AC3 Over HDMI On Linux

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TrueHD, DTS-HD, E-AC3 Over HDMI On Linux

    Phoronix: TrueHD, DTS-HD, E-AC3 Over HDMI On Linux

    Here's another interesting bit of news that just arrived into the Phoronix inbox this Thanksgiving: it's now possible to do TrueHD, DTS-HD, and E-AC3 over HDMI on Linux via FFmpeg. The TrueHD/DTS-HD/E-AC3 support is added to one of FFmpeg muxers to allow HDMI pass-through for these formats. DTS-HD/DTS-HD MA audio up to this point hasn't been supported under Linux and it's used by a sizable portion of the Blu-ray media currently on the market...

    http://www.phoronix.com/vr.php?view=ODgyOA

  • #2
    It's cool to see this support, even though I have no intention of getting a bluray drive any time soon.

    Comment


    • #3
      I've only just worked out how to get my machine to decode regular old AC3 and DTS in software from an external source without passing it through. Seems I'm a generation behind! There's surprisingly little information about it around though. If everyone out there has fancy decoder boxes these days, it's news to me. I hope to write some software to make this a bit easier because switching from one codec to another currently requires manual intervention. It's not nice when my 360 suddenly switches from PCM to AC3 and I get a horrible noise.

      Comment


      • #4
        I fscking hate this closed crap! I want it, but I can't get it

        Comment


        • #5
          Call for testing

          (I'm the poster of the patchset)

          We are in need of testers of TrueHD / DTS-HD passthrough (no ffmpeg patching needed).

          To the best of our knowledge, only two people (me and Carl Eugen) have tested this so far, and it isn't working for one of them (Carl Eugen). We don't know why; we need more testers to figure out what is going on.

          If you have
          • Intel or NVIDIA based graphics with HDMI output (e.g. GeForce G210, NVS 3100M, etc)
          • Not an old NVIDIA card that is connected to the motherboard audio card with an extra S/PDIF cable
          • Not GeForce 9400
          • You are using the open-source intel driver or the proprietary NVIDIA driver
          • Kernel 2.6.36 or newer
          • HDMI cable connected to a receiver that supports TrueHD and/or DTS-HD,
          it would be appreciated if you could try the following:

          You can find the two preprocessed test files in http://samples.mplayerhq.hu/hdmi/.

          For the duration of the test, add the following to ~/.asoundrc (You need to uncomment either "card NVidia" or "card Intel" line, depending on your hardware):
          Code:
          ## begin hdtest stuff
          pcm.hdmihdtest {
                  @args [ DEVICE CTLINDEX ]
                  @args.DEVICE { type integer }
                  @args.CTLINDEX { type integer }
                  type hooks
                  slave.pcm {
                          type hw
          # Uncomment the correct one of the below lines:
          #                card NVidia
          #                card Intel
                          device $DEVICE
                  }
                  hooks.0 {
                          type ctl_elems
                          hook_args [
                          {
                                  name "IEC958 Playback Default"
                                  index $CTLINDEX
                                  lock true
                                  preserve true
                                  value [ 0x06 0x82 0x00 0x01 ]
                          }
                          {
                                  name "IEC958 Playback Switch"
                                  index $CTLINDEX
                                  lock true
                                  preserve true
                                  value true
                          }
                          ]
                  }
          }
          pcm.hdmihdtest0 { @func refer name "pcm.hdmihdtest:DEVICE=3,CTLINDEX=0" }
          pcm.hdmihdtest1 { @func refer name "pcm.hdmihdtest:DEVICE=7,CTLINDEX=1" }
          pcm.hdmihdtest2 { @func refer name "pcm.hdmihdtest:DEVICE=8,CTLINDEX=2" }
          pcm.hdmihdtest3 { @func refer name "pcm.hdmihdtest:DEVICE=9,CTLINDEX=3" }
          ## end hdtest stuff
          Make sure the HDMI audio ports are all enabled with alsa mixer (the ports are commonly called "S/PDIF", possibly with a number), with one of the two following commands:
          Code:
          alsamixer -c NVidia
          alsamixer -c Intel
          Also, you must use enable the HDMI output and set a 1280x720 or higher mode into the HDMI output (you'll probably need a TV plugged into the A/V receiver for this).

          Then, you can try playing the test samples with the following commands (where "file.spdif" is replaced with one of the above test samples):
          Code:
          aplay -D hdmihdtest0 -c8 -fs16_le -r192000 file.spdif
          aplay -D hdmihdtest1 -c8 -fs16_le -r192000 file.spdif
          aplay -D hdmihdtest2 -c8 -fs16_le -r192000 file.spdif
          aplay -D hdmihdtest3 -c8 -fs16_le -r192000 file.spdif
          There are four different commands because there may be up to 4 HDMI codecs on board. Only one of them will work reliably, but it depends on the card and the HDMI port. Note that the files are only several seconds long; we are only interested in whether your receiver recognizes them.

          After testing, please provide the following information:
          • Card and GPU type or codename (GT218, etc. see e.g. /var/log/Xorg.0.log)
          • Display driver version
          • Kernel version and ALSA version (/proc/asound/version)
          • Model name of the receiver
          • Which of the test files work or won't work
          If you can't provide all information, partial reports are fine as well.

          You can post the results here, in the nvnews thread, or send them to me at anssi.hannula@iki.fi.

          Comment


          • #6
            great, i got TrueHD and DTS-HD movies + a receiver.
            But an ATI graphic card, why should ATI users not test this?

            ___________________________
            And other Question, DTS works fine for be, but suddenly some weeks ago AC3 passtrough broke and i dont know how to fix or debug this.
            [AO_ALSA] Format ac3be is not supported by hardware, trying default.
            But is was working, maybe the fglrx/ATI drive broke it?

            Comment


            • #7
              Originally posted by lord-carlos View Post
              great, i got TrueHD and DTS-HD movies + a receiver.
              But an ATI graphic card, why should ATI users not test this??
              The HDMI on ATI cards is currently limited to 2 channel output in ALSA. That needs to be fixed first (I don't have ATI hardware).

              Comment


              • #8
                Originally posted by benmoran View Post
                It's cool to see this support, even though I have no intention of getting a bluray drive any time soon.
                I second that. I don't know if blu-ray is having a good acceptance rate, but for me DVD already has pretty good image quality. I don't think there's so much difference as was the case when switching from VHS to DVD. The medium also takes up the same space (once again another big advantage for DVD over VHS), and they both have the same physical resistance. It probably only makes sense with a big ass TV, but even then I'm not sure if media streaming isn't more interesting than physical media. Oh, and then there's the question of the stupid name. Blu-Ray (what happened to the "e"? It seems one of those Kool names from the 80's)... a big advantage of CD and DVD names is that those work in any language. Blu-Ray is too anglicized and so not so universal as predecessor. Anyway, this news is actually good, since more functionality doesn't hurt

                Comment


                • #9
                  Originally posted by Anssi View Post
                  The HDMI on ATI cards is currently limited to 2 channel output in ALSA. That needs to be fixed first (I don't have ATI hardware).
                  But why then does DTS work?
                  DTS does (can) use 6 channels, or am i completly in the wrong here?

                  Comment


                  • #10
                    Originally posted by lord-carlos View Post
                    But why then does DTS work?
                    DTS does (can) use 6 channels, or am i completly in the wrong here?
                    Multichannel DTS and AC-3 streams fit into the same space as 2 channel PCM audio and therefore they do work.

                    It is only TrueHD and DTS-HD that require more bandwidth than 2 channels provide.

                    Comment


                    • #11
                      Originally posted by Anssi View Post
                      Multichannel DTS and AC-3 streams fit into the same space as 2 channel PCM audio and therefore they do work.

                      It is only TrueHD and DTS-HD that require more bandwidth than 2 channels provide.
                      Ah ok. Thank you for the explanation.
                      Is there any way i can help fix this ATI 2channel bug?

                      Comment


                      • #12
                        Originally posted by lord-carlos View Post
                        Ah ok. Thank you for the explanation.
                        Is there any way i can help fix this ATI 2channel bug?
                        You could provide the contents of all "codec#X" files from /proc/asound/ATI/ (or similar, could be "Ati" or "ati" instead of "ATI", don't remember which one), so that I can see if it is similar to the other ones I've seen.

                        To actually test some possible fixes, I'd need a tester who knows how to compile, install, and patch the alsa kernel modules. If you do and want to test some stuff, you can contact me via email (again, anssi.hannula@iki.fi). I have some ideas, though I fear they are not very likely to work. We may ultimately need some documentation from ATI.

                        Comment


                        • #13
                          codec#0 content for R6xx adapters
                          Code:
                          Codec: ATI R6xx HDMI
                          Address: 0
                          AFG Function Id: 0x1 (unsol 0)
                          Vendor Id: 0x1002aa01
                          Subsystem Id: 0x00aa0100
                          Revision Id: 0x100200
                          No Modem Function Group found
                          Default PCM:
                              rates [0x70]: 32000 44100 48000
                              bits [0x2]: 16
                              formats [0x1]: PCM
                          Default Amp-In caps: N/A
                          Default Amp-Out caps: N/A
                          GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
                          Node 0x02 [Audio Output] wcaps 0x201: Stereo Digital
                            Control: name="IEC958 Playback Con Mask", index=0, device=0
                            Control: name="IEC958 Playback Pro Mask", index=0, device=0
                            Control: name="IEC958 Playback Default", index=0, device=0
                            Control: name="IEC958 Playback Switch", index=0, device=0
                            Device: name="HDMI 0", type="HDMI", device=3
                            Converter: stream=1, channel=0
                            Digital: Enabled
                            Digital category: 0x0
                          Node 0x03 [Pin Complex] wcaps 0x400381: Stereo Digital
                            Pincap 0x00000094: OUT Detect HDMI
                            Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
                              Conn = Digital, Color = Unknown
                              DefAssociation = 0x1, Sequence = 0x0
                            Pin-ctls: 0x40: OUT
                            Unsolicited: tag=00, enabled=0
                            Connection: 1
                               0x02

                          Comment


                          • #14
                            Originally posted by Anssi View Post
                            We may ultimately need some documentation from ATI.
                            You can ask Alex Deucher (AMD employee).

                            Comment


                            • #15
                              Alex has mentioned that we are going to need some more code/docco in the hdmi audio area.

                              It's on the list of things to look at, no ETA yet but IIRC it's fairly close to the top of the list.

                              Comment

                              Working...
                              X