GStreamer 1.0 and tsdemux

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

GStreamer 1.0 and tsdemux

BGraaf

Hi @ all,

 

Thank you for your very good work on GStreamer 1.0!

I’m in a phase to transfer my app from 0.10 to 1.0 and it works very fine (speed and so on).

But I have an issue with the tsdemux-modul. At first I thought that I have a misunderstanding in some handling processes but if I try do a simple ts-demuxing with gst-launch, I got the same error.

The pipe is looking like this:

gst-launch-1.0 -vvv -m filesrc location="Die_Simpsons_2012-10-03_18:05:09.mpg" ! tsdemux name=d ! queue ! mpeg2dec ! xvimagesink d. ! queue ! mad ! alsasink

 

The response is (sorry for the long E-Mail and German messages):

Leitung wird auf PAUSIERT gesetzt ...

Leitung läuft vor …

Nachricht #16 wurde von Element »alsasink0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #17 wurde von Element »xvimagesink0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #18 wurde von Element »mad0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #19 wurde von Element »mpeg2dec0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #20 wurde von Element »queue1« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #21 wurde von Element »queue0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #22 wurde von Element »d« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #23 wurde von Element »filesrc0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #24 wurde von Element »pipeline0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PAUSED;

Nachricht #28 wurde von Element »mad0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #29 wurde von Element »mpeg2dec0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #30 wurde von Padding »queue1:src« (stream-status) erhalten: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE, owner=(GstElement)"\(GstQueue\)\ queue1", object=(GstTask)"\(GstTask\)\ queue1:src";

Nachricht #31 wurde von Element »queue1« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #32 wurde von Padding »queue0:src« (stream-status) erhalten: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE, owner=(GstElement)"\(GstQueue\)\ queue0", object=(GstTask)"\(GstTask\)\ queue0:src";

Nachricht #34 wurde von Element »queue0« (state-changed) erhalten: /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/mpeg, mpegversion=(int)2, systemstream=(boolean)false

GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #33 wurde von Padding »queue1:src« (stream-status) erhalten: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"\(GstQueue\)\ queue1", object=(GstTask)"\(GstTask\)\ queue1:src";

Nachricht #35 wurde von Padding »queue0:src« (stream-status) erhalten: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"\(GstQueue\)\ queue0", object=(GstTask)"\(GstTask\)\ queue0:src";

Nachricht #36 wurde von Padding »d:sink« (stream-status) erhalten: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE, owner=(GstElement)"\(GstTSDemux\)\ d", object=(GstTask)"\(GstTask\)\ d:sink";

Nachricht #37 wurde von Element »d« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;

/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/mpeg, mpegversion=(int)2, systemstream=(boolean)false

Nachricht #38 wurde von Element »filesrc0« (state-changed) erhalten: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;

Nachricht #39 wurde von Padding »d:sink« (stream-status) erhalten: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"\(GstTSDemux\)\ d", object=(GstTask)"\(GstTask\)\ d:sink";

Nachricht #40 wurde von Element »d« (element) erhalten: pat, transport-stream-id=(uint)1107, programs=(structure){ "program-0\,\ program-number\=\(uint\)0\,\ pid\=\(uint\)16\;", "program-17500\,\ program-number\=\(uint\)17500\,\ pid\=\(uint\)96\;", "program-17501\,\ program-number\=\(uint\)17501\,\ pid\=\(uint\)97\;", "program-17502\,\ program-number\=\(uint\)17502\,\ pid\=\(uint\)98\;", "program-17503\,\ program-number\=\(uint\)17503\,\ pid\=\(uint\)99\;", "program-17504\,\ program-number\=\(uint\)17504\,\ pid\=\(uint\)100\;", "program-17505\,\ program-number\=\(uint\)17505\,\ pid\=\(uint\)101\;", "program-17506\,\ program-number\=\(uint\)17506\,\ pid\=\(uint\)102\;", "program-17507\,\ program-number\=\(uint\)17507\,\ pid\=\(uint\)103\;", "program-17508\,\ program-number\=\(uint\)17508\,\ pid\=\(uint\)104\;" };

Nachricht #49 wurde von Element »d« (element) erhalten: pmt, program-number=(uint)17501, pcr-pid=(uint)511, version-number=(uint)5, streams=(structure){ "pid-33\,\ pid\=\(uint\)33\,\ stream-type\=\(uint\)6\,\ component-tag\=\(uint\)10\,\ descriptors\=\(GValueArray\)NULL\;", "pid-511\,\ pid\=\(uint\)511\,\ stream-type\=\(uint\)2\,\ component-tag\=\(uint\)1\,\ descriptors\=\(GValueArray\)NULL\;", "pid-512\,\ pid\=\(uint\)512\,\ stream-type\=\(uint\)3\,\ component-tag\=\(uint\)3\,\ lang-code\=\(string\)deu\,\ descriptors\=\(GValueArray\)NULL\;", "pid-515\,\ pid\=\(uint\)515\,\ stream-type\=\(uint\)6\,\ has-ac3\=\(boolean\)true\,\ component-tag\=\(uint\)7\,\ lang-code\=\(string\)deu\,\ descriptors\=\(GValueArray\)NULL\;", "pid-517\,\ pid\=\(uint\)517\,\ stream-type\=\(uint\)5\,\ descriptors\=\(GValueArray\)NULL\;" };

Nachricht #58 wurde von Element »d« (error) erhalten: GstMessageError, gerror=(GError)NULL, debug=(string)"mpegtsbase.c\(1639\):\ mpegts_base_loop\ \(\):\ /GstPipeline:pipeline0/GstTSDemux:d:\012stream\ stopped\,\ reason\ not-negotiated";

FEHLER: Von Element /GstPipeline:pipeline0/GstTSDemux:d: Interner Datenstromfehler.

Zusätzliche Fehlerdiagnoseinformation:

mpegtsbase.c(1639): mpegts_base_loop (): /GstPipeline:pipeline0/GstTSDemux:d:

stream stopped, reason not-negotiated

FEHLER: Leitung läuft nicht vor.

Leitung wird auf NULL gesetzt ...

Leitung wird geleert ...

 

I hope someone can help me, because that’s the last step for transfer!

 

Thanks a lot!

Bernhard

 

 


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer 1.0 and tsdemux

Tim-Philipp Müller-2
On Thu, 2012-10-04 at 19:14 +0200, Bernhard Graaf wrote:

Hi Bernhard,

does it work in playbin with

 $ gst-launch-1.0 playbin uri=file:///path/to/foo.mpg

or uridecodebin

 $ gst-launch-1.0 uridecodebin uri=file:///path/to/foo.mpg name=d \
      d. ! queue ! xvimagesink  \
      d. ! queue ! alsasink

?

You should be able to get English messages by using

 $ LANG=C gst-launch-1.0 ...



> gst-launch-1.0 -vvv -m filesrc
> location="Die_Simpsons_2012-10-03_18:05:09.mpg" ! tsdemux name=d !
> queue ! mpeg2dec ! xvimagesink d. ! queue ! mad ! alsasink

In 1.0 parsing was removed from most decoders (even if the library does
this internally), we now require parsers before most decoders, so try
putting an mpegaudioparse in front of mad and an mpegvideoparse in front
of mpeg2dec.

Cheers
 -Tim
 


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: GStreamer 1.0 and tsdemux

BGraaf
Hi Tim,

Thanks a lot for the fast answer.
To use the parser was a fantastic idea.
Now it runs very fine!

Thanks again
Bernhard

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel-bounces+bernhard.graaf=[hidden email]
[mailto:gstreamer-devel-bounces+bernhard.graaf=[hidden email]]
Im Auftrag von Tim-Philipp Müller
Gesendet: Donnerstag, 4. Oktober 2012 19:31
An: [hidden email]
Betreff: Re: GStreamer 1.0 and tsdemux

On Thu, 2012-10-04 at 19:14 +0200, Bernhard Graaf wrote:

Hi Bernhard,

does it work in playbin with

 $ gst-launch-1.0 playbin uri=file:///path/to/foo.mpg

or uridecodebin

 $ gst-launch-1.0 uridecodebin uri=file:///path/to/foo.mpg name=d \
      d. ! queue ! xvimagesink  \
      d. ! queue ! alsasink

?

You should be able to get English messages by using

 $ LANG=C gst-launch-1.0 ...



> gst-launch-1.0 -vvv -m filesrc
> location="Die_Simpsons_2012-10-03_18:05:09.mpg" ! tsdemux name=d !
> queue ! mpeg2dec ! xvimagesink d. ! queue ! mad ! alsasink

In 1.0 parsing was removed from most decoders (even if the library does
this internally), we now require parsers before most decoders, so try
putting an mpegaudioparse in front of mad and an mpegvideoparse in front
of mpeg2dec.

Cheers
 -Tim
 


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel