GeeXboX

[CuBox] HD FLACs are not working

October 11th, 2013

Home Forums GeeXboX on ARM SoCs [CuBox] HD FLACs are not working

Tagged: , , ,

This topic contains 12 replies, has 3 voices, and was last updated by Warped Rudi 2 weeks, 1 day ago.

Viewing 13 posts – 1 through 13 (of 13 total)
  • Author
    Posts
  • #7079

    togath
    Member

    Hello,

    bought yesterday from Linn my first bunch of HD flacs (96KHz/24Bit to 192KHz/24Bit) and was really eager to listen to them.

    But it seems that the flac decoding is still done in SW. The cpu load jumps to 96-98% for the 96KHz flacs and to ‘more’ than 100% for the 192Khz. This results in stuttering.

    I’m using the snapshot from 5th october. No extra addons, visualisations deactivated.
    Tested with CuBox as UPNP renderer and from USB stick (17MB read transfer rate).

    Is it still on the legacy CuBox roadmap to support the HW flac decoding?

    • This topic was modified 2 months, 1 week ago by togath.
    #7085

    Warped Rudi
    Member

    There is no hardware audio decoding in CuBox “classic”. Not for FLAC and not for anything else. However, I don’t know if the FLAC decoder is fully optimized for ARM revision used in CuBox. BTW, 192kHz/24bit/2channels PCM should work fine.

    #7126

    togath
    Member

    Hi Rudi,

    thanks for your reply. I always thought that there would be some support for decoding audio. Wouln’t it be possible to use the vmeta engine?

    Nevertheless I cannot play 192KHz/24Bit flacs with the snapshot from 2013-10-05 due to 100% cpu load.

    The flac files from LINN are ok. I checked them with the flac-checker from the flac guys. And they play well on PC.

    #7133

    Warped Rudi
    Member

    I always thought that there would be some support for decoding audio. Wouln’t it be possible to use the vmeta engine?

    There used to be some specs on the web that suggested this. However, in the source code I have seen so far there is no sign that vMeta can do audio at all. If it can, the “howto” is kept secret by Marvell. They did provide some optimized software codecs. But these are incompatible to the ARMHF ABI used in almost any recent distro and since they are closed source as well there is no chance that we can change this.

    I have only tried a short 96/24 FLAC sequence, which works O.K. Maybe I find some 192/24 material on the web to see how it behaves…

    #7138

    togath
    Member

    Hi Rudi,

    I would provide you some material for testing purpose. Since I bought the files I cannot post a donwload link here. I can’t find a way in this forum to send you a PN ….

    togath

    #7140

    Warped Rudi
    Member

    Search here for a user named “Rudi”. He posts quite often in this forum ;-)

    #7141

    togath
    Member

    U got mail ;-)

    • This reply was modified 1 month, 2 weeks ago by togath.
    #7220

    Warped Rudi
    Member

    I did some tests. It turns out that FLAC itself has hand-optimized code only for Intel and PowerPC. Not for ARM. In addition to that the buffer management + audio engine stuff in XBMC is horribly inefficient. So I’m no longer surprised that FLAC decoding eats up so much CPU time. In r16527 I did some changes in the buffer handling, which improves things a bit. It’s still flaky, but at least with CEC disabled I can hear something. BTW, testing with the other SoCs gave the following:

    PandaBoard: file played O.K., but hung near the end
    RaspberryPi: file played at much too low sample rate
    CubieBoard: file played with heavy stutter at the beginning
    CarrierOne/CuCox-i: file played O.K., but hung near the end
    CuBox: file played O.K, but became silent near the end, if CEC is enabled results are worse

    #7221

    tomlohave
    Moderator

    Rudi , can you send me your file . I can test it on Utilite.

    #7222

    tomlohave
    Moderator

    Works out of the box on Utilite.

    #7234

    togath
    Member

    Hmmm, I don’t have the circuit diagram at hand, but how does the CEC interferes there? How is it connected to the core?

    Wired, that no one did some ARM but x86/x64. Wouldn’t it be possible to compile a flac-lib with really agressive run-time optimisation options. I remember vaguely that I got sometimes some pretty good results when playing with these compiler options.

    #7235

    Warped Rudi
    Member

    how does the CEC interferes there

    Probably via timing. I suspect that the I2C access is blocking the system too long. But it might also be the additional CPU load introduced by libCEC…

    Wouldn’t it be possible to compile a flac-lib with really agressive run-time optimisation options.

    I guess it already is. But I can have a look next weekend.

    #7391

    Warped Rudi
    Member

    RaspberryPi: file played at much too low sample rate

    Just for the records: With the firmware updates committed in r 16599 the file plays fine on the Raspberry.

Viewing 13 posts – 1 through 13 (of 13 total)

You must be logged in to reply to this topic.

Comments are closed.