summaryrefslogtreecommitdiff
path: root/gst/mpegtsdemux/mpegtsbase.c
diff options
context:
space:
mode:
authorJan Schmidt <jan@centricular.com>2014-10-29 22:58:37 +1100
committerJan Schmidt <jan@centricular.com>2014-10-29 23:02:50 +1100
commita49ce685d1b00fe7eb1fd3982847b58b0f8245a8 (patch)
tree9ada9ef7467be0cc7ff40f92d75e127abfa0de80 /gst/mpegtsdemux/mpegtsbase.c
parent9f69bcbfe5ccca672c2042beafda94d37e677148 (diff)
downloadgstreamer-plugins-bad-a49ce685d1b00fe7eb1fd3982847b58b0f8245a8.tar.gz
tsparse: Implement timestamp/retimestamping of output buffers
When the set-timestamps property is set, use PCRs on the provided (or autodetected) pcr-pid to apply (or replace) timestamps on the output buffers, using piece-wise linear interpolation. This allows tsparse to be used to stream an arbitrary mpeg-ts file, or to smooth jittery reception timestamps from a network stream. The reported latency is increased to match the smoothing latency if necessary.
Diffstat (limited to 'gst/mpegtsdemux/mpegtsbase.c')
-rw-r--r--gst/mpegtsdemux/mpegtsbase.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c
index 0ca72538c..82243370c 100644
--- a/gst/mpegtsdemux/mpegtsbase.c
+++ b/gst/mpegtsdemux/mpegtsbase.c
@@ -1077,7 +1077,7 @@ mpegts_base_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
break;
case GST_EVENT_EOS:
res = GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, event);
- res = gst_mpegts_base_handle_eos (base);
+ res &= gst_mpegts_base_handle_eos (base);
break;
case GST_EVENT_CAPS:
/* FIXME, do something */
@@ -1165,6 +1165,9 @@ mpegts_base_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
goto next;
}
+ if (klass->inspect_packet)
+ klass->inspect_packet (base, &packet);
+
/* If it's a known PES, push it */
if (MPEGTS_BIT_IS_SET (base->is_pes, packet.pid)) {
/* push the packet downstream */