Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aac decoder: pcmmode.eEndian should be set to OMX_EndianLittle instead of OMX_EndianBig . #409

Closed
CapOM opened this issue Dec 6, 2017 · 3 comments

Comments

@CapOM
Copy link

CapOM commented Dec 6, 2017

gstomxaacdec works on both tizonia-test-media/aac/riff_rock.aac and tizonia-test-media/aac/strum12str.aac but it requires to change plugins/aac_decoder/src/aacdec.c::pcmmode.eEndian to OMX_EndianLittle; instead of OMX_EndianBig;

Not sure if the spec says anything about it or if libfaad has an api to configure it.
Also I wonder why it is working for you.

Please have a look, thx a lot!

@juanrubio
Copy link
Member

juanrubio commented Dec 14, 2017

Julien,

Also I wonder why it is working for you.

The reason is that the Tizonia player app has logic to probe the local stream file during the graph creation, and it configures the right parameters in the various components before moving the graph into Executing state. So I think I decided to do this to:

  • reduce the amount of graph "auto-reconfiguration" that would be triggered if the components had to do all the work when they reached "Executing".

so it was a way to make my life simpler, so the components would only need to react to stream changes that occur "after" Executing.. which in the case of local files playback is ... never.

But the downside is that this leads to the situation that you are pointing out, where some components might not be doing a great job with things like endianess. So that needs fixing... I'm almost done with the embedding of dbus-cplusplus ( 🙄 ) so I will be looking into this soon..

Note, that I've setup a "youtube-live-streaming" branch to get a mp4_demuxer ready to work in complex aac decoding use cases, so I might get the aac decoder improvements in that branch first.

@juanrubio
Copy link
Member

juanrubio commented Dec 14, 2017

Not sure if the spec says anything about it or if libfaad has an api to configure it.

I believe the spec leaves this job to the component; the decoder component would need to figure out the correct endianess and adopt that in its output port

@juanrubio
Copy link
Member

Julien,

I've updated most of the decoders (including the aac dec) to display OMX_EndianLittle on their PCM output port, because that is what they currently output today. They can't do conversions to Big Endian at the moment, but that will be an issue to resolve once we have platforms that requires it.

The only decoder that still outputs samples in BigEnding order is the mad-based MP3 decoder.

So I'm closing this issue for now. I believe this will work for you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants