LPCM in mpeg(ts)

Michael Olbrich m.olbrich at pengutronix.de
Tue Apr 26 10:42:23 UTC 2016


I have a mpegts stream with LPCM audio that is currently not supported by
the tsdemux element. I'm looking for some advice on the best way to
implement this. The specification can be found here[1].
It's similar to the format implemented in dvdlpcmdec. Just a different
header. The stream type is 0x83.

I hacked dvdlpcmdec to support a different header. That works sometimes,
but the event handling in dvdlpcmdec is rather broken and the pipeline
fails to start occasionally.

I looked into rewriting dvdlpcmdec to use GstAudioDecoder but that's where
I got stuck:
The format currently supported by dvdlpcmdec is somewhat special: The
buffer timestamp might not refer to the first sample but somewhere in the
middle (the offset is specified in the header). I have no idea how to
handle this with GstAudioDecoder.

Any Ideas? Maybe split it into a parser and decoder and handle the header
and timestamps in the parser?

And what caps should tsdemux produce for the new format?


[1] http://www.dvdforum.org/images/Guideline1394V10R0_20020911.pdf

Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

More information about the gstreamer-devel mailing list