[gst-devel] mpeg transport stream "stuck"

Dan Taylor dtaylor at startrac.com
Fri Oct 10 07:01:24 CEST 2008


I'm trying to use GStreamer and its associated plugins to play an MPEG
Transport Stream (TS) that I captured.  FWIW, I can play the stream, as
is, with mplayer, but mplayer has limitations that make it unusable as a
long-term solution.

 

The TS has several programs and I want to play one of them.  This is
simply a development step on the way to using a DVB-T/ATSC front end to
source the TS.

 

I have used

"gst-launch filesrc location=file.ts ! flutsdemux name=d  d.audio_0801 !
queue ! filesink location=0801.mpa d.video_0800 ! queue ! filesink
location=0800.mpv"

to extract an audio and video PID to files, so the demuxer seems to be
working.

I have used

"gst-launch filesrc location=0801.mpa ! decodebin ! audioconvert !
alsasink"

and

"gst-launch filesrc location=0800.mpv ! queue ! mpeg2dec !
ffmpegcolorspace ! xvimagesink"

to successfully play the individual files, but when I combine them with

gst-launch -m filesrc location=file.ts ! flutsdemux name=d  d.audio_0801
! queue ! decodebin ! audioconvert ! alsasink  d.video_0800 ! queue !
mpeg2dec ! xvimagesink

a window is opened and the first frame displayed, but neither does the
video continue, nor is there any audio.  I can kill the X window, and
there are the messages at the end of the post.

Any ideas where I should begin debugging this?  Is there a clock/sync
problem, perhaps?

Thanks.

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got Message from element "xvimagesink0" (state-changed):
GstMessageState, old-state=(GstState)GST_STATE_NULL,
new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "alsasink0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "ffmpegcsp0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "audioconvert0" (state-changed):
GstMessageState, old-state=(GstState)GST_STATE_NULL,
new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "mpeg2dec0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "queue1" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "fakesink" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "typefind" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "decodebin0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "queue0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "d" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "filesrc0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "pipeline0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_PAUSED;
Got Message from element "ffmpegcsp0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "audioconvert0" (state-changed):
GstMessageState, old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "mpeg2dec0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "queue1" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "typefind" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "queue0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "d" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "filesrc0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
No accelerated IMDCT transform found
Got Message from element "a52dec0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "a52dec0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "fakesink" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PLAYING,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_READY;
Got Message from element "decodebin0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "fakesink" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_READY,
pending-state=(GstState)GST_STATE_NULL;
Got Message from element "fakesink" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_NULL,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "a52dec0" (tag): taglist,
bitrate=(guint)384000;
Got Message from element "xvimagesink0" (element): prepare-xwindow-id;
Got Message from element "xvimagesink0" (element): have-xwindow-id,
xwindow-id=(gulong)58720262;
Got Message from element "xvimagesink0" (state-changed):
GstMessageState, old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "alsasink0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "pipeline0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_READY,
new-state=(GstState)GST_STATE_PAUSED,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
Got Message from element "pipeline0" (new-clock): GstMessageNewClock,
clock=(GstClock)"\(GstAudioClock\)\ GstAudioSinkClock";
New clock: GstAudioSinkClock
Got Message from element "pipeline0" (async-done): no message details
Got Message from element "xvimagesink0" (state-changed):
GstMessageState, old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "alsasink0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "ffmpegcsp0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "audioconvert0" (state-changed):
GstMessageState, old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "mpeg2dec0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "a52dec0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "typefind" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "decodebin0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "queue1" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "queue0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "d" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "filesrc0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "pipeline0" (state-changed): GstMessageState,
old-state=(GstState)GST_STATE_PAUSED,
new-state=(GstState)GST_STATE_PLAYING,
pending-state=(GstState)GST_STATE_VOID_PENDING;
Got Message from element "xvimagesink0" (error): GstMessageError,
gerror=(GstGError)(NULL), debug=(string)"xvimagesink.c\(1199\):\
gst_xvimagesink_handle_xevents\ \(\):\ /pipeline0/xvimagesink0";
ERROR: from element /pipeline0/xvimagesink0: Output window was closed
Additional debug info:
xvimagesink.c(1199): gst_xvimagesink_handle_xevents ():
/pipeline0/xvimagesink0
Execution ended after 2136255378 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
FREEING pipeline ...
 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20081009/e44bd840/attachment.htm>


More information about the gstreamer-devel mailing list