diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c index 237a8938b7..147a665b40 100644 --- a/gst/mpegtsdemux/mpegtsbase.c +++ b/gst/mpegtsdemux/mpegtsbase.c @@ -1491,6 +1491,8 @@ mpegts_base_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) if (base->push_section) res = klass->push (base, &packet, section); + } else if (base->push_unknown) { + res = klass->push (base, &packet, NULL); } else if (packet.payload && packet.pid != 0x1fff) GST_LOG ("PID 0x%04x Saw packet on a pid we don't handle", packet.pid); diff --git a/gst/mpegtsdemux/mpegtsbase.h b/gst/mpegtsdemux/mpegtsbase.h index 14dce2fbf2..896eb1dbd5 100644 --- a/gst/mpegtsdemux/mpegtsbase.h +++ b/gst/mpegtsdemux/mpegtsbase.h @@ -160,6 +160,7 @@ struct _MpegTSBase { /* Whether to push data and/or sections to subclasses */ gboolean push_data; gboolean push_section; + gboolean push_unknown; /* Whether the parent bin is streams-aware, meaning we can * add/remove streams at any point in time */ diff --git a/gst/mpegtsdemux/mpegtspacketizer.c b/gst/mpegtsdemux/mpegtspacketizer.c index 7dde696657..8816dacd0b 100644 --- a/gst/mpegtsdemux/mpegtspacketizer.c +++ b/gst/mpegtsdemux/mpegtspacketizer.c @@ -994,7 +994,7 @@ mpegts_packetizer_push_section (MpegTSPacketizer2 * packetizer, * If it is not a PUSI * Accumulate the expected data and check for complete section * (loop) - * + * **/ if (packet->payload_unit_start_indicator) { @@ -1950,7 +1950,7 @@ record_pcr (MpegTSPacketizer2 * packetizer, MpegTSPCR * pcrtable, GList *tmp; /* No current estimator. This happens for the initial value, or after * discont and flushes. Figure out where we need to record this position. - * + * * Possible choices: * 1) No groups at all: * Create a new group with pcr/offset diff --git a/gst/mpegtsdemux/mpegtsparse.c b/gst/mpegtsdemux/mpegtsparse.c index bcf67275bd..620f2ab316 100644 --- a/gst/mpegtsdemux/mpegtsparse.c +++ b/gst/mpegtsdemux/mpegtsparse.c @@ -210,6 +210,7 @@ mpegts_parse_init (MpegTSParse2 * parse) base->program_size = sizeof (MpegTSParseProgram); base->push_data = TRUE; base->push_section = TRUE; + base->push_unknown = TRUE; parse->user_pcr_pid = parse->pcr_pid = -1;