OMX6 OpenMax IL H264 decode.

Stephen Webb swebb.gstreamer at gmail.com
Thu Oct 23 09:20:59 PDT 2014


I don't think it is my stream - I have some control over it and it is being
encoded with the Baseline profile (no B frames).
The latency I am referring to is the number of frames I have to push into
the parser before a frame is available on the output of the decoder.

The decoder is loaded in gstreamer like this:
decoder  = gst_element_factory_make
("amcviddec-omxfreescalestdvideodecoderavcv3hwbased",  "decoder");

I have found references where other people experienced the same problem and
were able to get rid of most of the latency:

https://community.freescale.com/thread/304322

"Just for reference, I'm adding here that setting
vpudec->context.openparam.nReorderEnable
= 0 reduces the delay to 2 frames. When there are no B frames and no
reorder is required."

Unfortunately that parameter is not exposed through gStreamer (as far as I
know).  My understanding is that on the Android platform my lowest level
access to the decoder is through OMX-IL (maybe this isn't quite right), so
I have been working at that level in order to see what latency I can
achieve.  I have made a lot of progress, but I can't get any output frames
- I think it is related to the way I am feeding data to the decoder but I'm
not sure what I'm doing wrong.

-Steve

On Thu, Oct 23, 2014 at 2:36 AM, Edward Hervey <bilboed at bilboed.com> wrote:

> On Wed, 2014-10-22 at 18:53 -0600, Stephen Webb wrote:
>
> >
> > * What I am trying to do is decode an annex B H264 stream on an
> > Android iMX6 platform.
> > * I want to decode with as little latency as possible.
> > * As we are already using gstreamer for other purposes, I started
> > there.
> > * I end up with ~8 frames of latency which I can't get get rid of.
>
>   At which level ? Between input and output of decoder ? Which decoder
> was it ? Maybe your *stream* actually requires 8 frames of latency. Is
> it using B frames ?
>
> > * I have switched to OpenMax IL with the idea of getting as much
> > control as possible.
>
>   Based on everything you mention after ... it looks as though your
> problem is not with GStreamer ... but with either the decoder
> implementation (in omx-il and/or freescale VPU driver) or the stream you
> want to play back *requires* such a latency.
>
>
>    Edward
>
> >
> > I'm out of ideas.  Anything helps.
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20141023/45bc39aa/attachment.html>


More information about the gstreamer-devel mailing list