[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