[Bug 747898] New: unable to dynamically insert tsmux into running pipeline
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed Apr 15 02:02:03 PDT 2015
https://bugzilla.gnome.org/show_bug.cgi?id=747898
Bug ID: 747898
Summary: unable to dynamically insert tsmux into running
pipeline
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-bad
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: fraxinas at opendreambox.org
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created attachment 301598
--> https://bugzilla.gnome.org/attachment.cgi?id=301598&action=edit
./tsswitchtest <short-file.ts>
i have a scenario where i wanna dynamically switch the input of a
gst-rtsp-server streaming mpeg ts (with h.264 + aac es inside) from a ts stream
delivered over a socket to a still image in case the input stream is lost.
so i destilled this into a minimal test case reading a ts from a file in an
appsrc's need-data callback and then removing the appsrc and replacing it with
testsources when the file is played completely.
so basically i have this pipeline (except with appsrc instead of filesrc)
gst-launch-1.0 filesrc location=test.ts ! queue name=ts_queue ! tsparse
name=tsparse set-timestamps=TRUE ! tsdemux name=d d. ! queue ! faad !
audioconvert ! alsasink d. ! queue ! h264parse ! avdec_h264 ! autovideosink
and replace it with
gst-launch-1.0 videotestsrc ! capsfilter ! x264enc ! mpegtsmux name=m
audiotestsrc ! capsfilter ! faac ! m. m. ! queue name=ts_queue ! tsparse
name=tsparse set-timestamps=TRUE ! tsdemux name=d d. ! queue ! faad !
audioconvert ! alsasink d. ! queue ! h264parse ! avdec_h264 ! autovideosink
i did lots of experiments trying to get the timestamps right to achieve a
seamless transition but I suspect some bugginess because there are also
(tsswitchtest:10281): GStreamer-WARNING **:
gstpad.c:4802:store_sticky_event:<ts_queue:sink> Sticky event misordering, got
'segment' before 'caps'
the testsources seem to produce the buffers with the correct timestamps because
they show up as
tsparse mpegtsparse.c:789:drain_pending_buffers:<tsparse> Pushing buffers -
startTS 0:00:13.874543898 duration 0:00:00.119712000 16168 bytes
...
but then after each drain line, there are several
GST_PADS gstpad.c:4102:gst_pad_chain_list_default:<tsparse:sink> chaining each
group in list as a merged buffer
and faad will eventually error out because it can't decode the stream
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list