summaryrefslogtreecommitdiff
path: root/gst/mpegtsdemux
diff options
context:
space:
mode:
authorEdward Hervey <edward.hervey@collabora.co.uk>2012-06-26 18:54:55 +0200
committerEdward Hervey <edward.hervey@collabora.co.uk>2012-08-14 19:05:44 +0200
commita8d1e88bdae4eb7a5786d149f17b84bb1e863c6f (patch)
tree44114404390625015cc8fe6985acdea8aec9cf39 /gst/mpegtsdemux
parent558beab1b476b51a8b301a48eeb0f093f38492b8 (diff)
downloadgstreamer-plugins-bad-a8d1e88bdae4eb7a5786d149f17b84bb1e863c6f.tar.gz
tsparse: Push out buffer on main source pad
Diffstat (limited to 'gst/mpegtsdemux')
-rw-r--r--gst/mpegtsdemux/mpegtsparse.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gst/mpegtsdemux/mpegtsparse.c b/gst/mpegtsdemux/mpegtsparse.c
index 33391154c..701de53f4 100644
--- a/gst/mpegtsdemux/mpegtsparse.c
+++ b/gst/mpegtsdemux/mpegtsparse.c
@@ -109,6 +109,8 @@ static gboolean push_event (MpegTSBase * base, GstEvent * event);
#define mpegts_parse_parent_class parent_class
G_DEFINE_TYPE (MpegTSParse2, mpegts_parse, GST_TYPE_MPEGTS_BASE);
static void mpegts_parse_reset (MpegTSBase * base);
+static GstFlowReturn mpegts_parse_input_done (MpegTSBase * base,
+ GstBuffer * buffer);
static void
mpegts_parse_class_init (MpegTSParse2Class * klass)
@@ -138,6 +140,7 @@ mpegts_parse_class_init (MpegTSParse2Class * klass)
ts_class->program_started = GST_DEBUG_FUNCPTR (mpegts_parse_program_started);
ts_class->program_stopped = GST_DEBUG_FUNCPTR (mpegts_parse_program_stopped);
ts_class->reset = GST_DEBUG_FUNCPTR (mpegts_parse_reset);
+ ts_class->input_done = GST_DEBUG_FUNCPTR (mpegts_parse_input_done);
}
static void
@@ -463,6 +466,14 @@ mpegts_parse_push (MpegTSBase * base, MpegTSPacketizerPacket * packet,
return ret;
}
+static GstFlowReturn
+mpegts_parse_input_done (MpegTSBase * base, GstBuffer * buffer)
+{
+ MpegTSParse2 *parse = GST_MPEGTS_PARSE (base);
+
+ return gst_pad_push (parse->srcpad, buffer);
+}
+
static MpegTSParsePad *
find_pad_for_program (MpegTSParse2 * parse, guint program_number)
{