[gst-devel] QT Demux with strange ouput ES data

Wim Taymans wim.taymans at gmail.com
Thu Feb 26 17:30:19 CET 2009


On Thu, 2009-02-26 at 12:26 +0100, Daniel James Laird wrote:
> Just coming back to this again, I am confused as to why you think it is a feature of the format. 
> I have a MP4/MOV demux currently that outputs ES data when it does the demux (Not gstreamer or linux based).  And I was generally of the opinion that demuxes should output ES data streams (its their primary purpose).
> 
> I am interested in whether this feature of the qtdemux is because of 
> 1.) implementation choices (implemented like this for good reasons (which are?))
> 2.) A hard feature of MOV/MP4 files (unlikely as my current demux seems to output ES with no worries)

The elementary stream format is much less efficient to store h264 data
in. A typical decoder needs to scan for startcodes in the elementary
stream while the quicktime format prefixes the length before the NAL
packets. There is also a config string that describes SPS/PPS and the
length of the NAL length prefix.

A typical decoder should handle both formats, the config string in the
caps triggers the ES or NAL length prefixed format.

We prefer to not mess up the native formats of demuxers too much as it
requires more resources than needed.

You can write a convertor of course but really the quicktime format is
trivally and efficiently converted to a bytestream (which is rather
silly thing to do because it would make parsing the NAL units slow
again).

Wim


> Maybe I can write another convertor plugin that takes this proprietry output and converts to ES.  (maybe one already exists?).
> 
> Maybe I could look into changing qtdemux to output ES data streams instead? 
> What would be the conseqences of this? Would this be accepted back into gstreamer if I went down this route?
> 
> Currently our onboard video decoder works really well with the demux formats that output ES (mkv, avi, mpegdemux) but the qtdemux is a gaping hole and would really like to get this to work as well.
> 
> Many thanks for the time
> Daniel Laird
> 
> -----Original Message-----
> From: Stefan Kost [mailto:ensonic at hora-obscura.de] 
> Sent: 2009 Feb 13 11:15
> To: Discussion of the development of GStreamer
> Subject: Re: [gst-devel] QT Demux with strange ouput ES data
> 
> Daniel James Laird schrieb:
> > Thanks for the feedback, Any ideas as to why the qtdemux does not output Elementary Streams?  The mpegdemux does as does the AVI demux and the mkv demux.
> 
> Its a design decission of the format.
> 
> Stefan
> > 
> > On a similar note I am trying to get asfdemux to do something useful.  I cannot get this to output to a file that plays back either.  Does this not output ES either?
> > 
> > Cheers
> > Dan
> > 
> > -----Original Message-----
> > From: Michael Smith [mailto:msmith at xiph.org] 
> > Sent: 2009 Feb 10 16:50
> > To: Discussion of the development of GStreamer
> > Subject: Re: [gst-devel] QT Demux with strange ouput ES data
> > 
> > On Tue, Feb 10, 2009 at 2:58 AM, Daniel James Laird
> > <daniel.j.laird at nxp.com> wrote:
> >> Hi,
> >>
> >> I am trying to use the qtdemux to demux a ".mov" file that I have. I am using the qtdemux and then I put the output into my onboard decoder.  However it is failing to find start codes in the data.
> >> I checked by running qtdemux on my PC (FC10) by running the following:
> >> gst-launch filesrc location=term.mov ! qtdemux name=demux  demux.audio_00 ! queue ! fakesink   demux.video_00 ! queue ! filesink location=gstreamer.h264
> >>
> > 
> > qtdemux doesn't output an H.264 elementary stream, which is where
> > you're having problems.
> > 
> > Additional headers needed to initialise your decoder will be in the
> > "codec_info" attribute in the caps. Depending on how your decoder is
> > structured, perhaps you can supply this directly, or perhaps you need
> > to rewrite the stream using that data to be a raw elementary stream.
> > 
> > Mike
> > 
> > ------------------------------------------------------------------------------
> > Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
> > software. With Adobe AIR, Ajax developers can use existing skills and code to
> > build responsive, highly engaging applications that combine the power of local
> > resources and data with the reach of the web. Download the Adobe AIR SDK and
> > Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > 
> > ------------------------------------------------------------------------------
> > Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
> > software. With Adobe AIR, Ajax developers can use existing skills and code to
> > build responsive, highly engaging applications that combine the power of local
> > resources and data with the reach of the web. Download the Adobe AIR SDK and
> > Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> 
> 
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
> -Strategies to boost innovation and cut costs with open source participation
> -Receive a $600 discount off the registration fee with the source code: SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> 
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
> -Strategies to boost innovation and cut costs with open source participation
> -Receive a $600 discount off the registration fee with the source code: SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel





More information about the gstreamer-devel mailing list