From 69e004344a74a7bd3ef7eac6812a696882d7af43 Mon Sep 17 00:00:00 2001
From: Jan Schmidt <jan@centricular.com>
Date: Sun, 8 Feb 2015 04:51:13 +1100
Subject: [PATCH] resindvd: Don't send meaningless segment position downstream
Don't place a meaningless value in the position field in
outgoing segments - values have to be in the range start->stop.
https://bugzilla.gnome.org/show_bug.cgi?id=740558
---
ext/resindvd/gstmpegdemux.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/ext/resindvd/gstmpegdemux.c b/ext/resindvd/gstmpegdemux.c
index fcf9d75..7753514 100644
--- a/ext/resindvd/gstmpegdemux.c
+++ b/ext/resindvd/gstmpegdemux.c
@@ -942,22 +942,20 @@ gst_flups_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
demux->bytes_since_scr = 0;
GST_DEBUG_OBJECT (demux,
- "demux: received new segment start %" G_GINT64_FORMAT " stop %"
- G_GINT64_FORMAT " time %" G_GINT64_FORMAT
- " base %" G_GINT64_FORMAT, start, stop, time, base);
+ "demux: received new segment %" GST_SEGMENT_FORMAT,
+ &demux->sink_segment);
#if 0
g_print ("demux: received new segment start %" G_GINT64_FORMAT " stop %"
G_GINT64_FORMAT " time %" G_GINT64_FORMAT
" base %" G_GINT64_FORMAT "\n", start, stop, time, base);
#endif
- position = base - start;
- adjust = position + SCR_MUNGE;
+ adjust = base - start + SCR_MUNGE;
if (adjust >= 0)
demux->scr_adjust = GSTTIME_TO_MPEGTIME (adjust);
else
demux->scr_adjust = -GSTTIME_TO_MPEGTIME (-adjust);
- start = SCR_MUNGE;
+ position = start = SCR_MUNGE;
base = 0;
if (stop != -1)
@@ -973,12 +971,9 @@ gst_flups_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
demux->src_segment.position = position;
GST_DEBUG_OBJECT (demux,
- "sending new segment: rate %g format %d, start: %"
- G_GINT64_FORMAT ", stop: %" G_GINT64_FORMAT ", time: %"
- G_GINT64_FORMAT ", base: %" G_GINT64_FORMAT
+ "sending new segment %" GST_SEGMENT_FORMAT
", scr_adjust: %" G_GINT64_FORMAT "(%" GST_TIME_FORMAT ")",
- segment->rate, segment->format, start, stop, time, base,
- demux->scr_adjust,
+ &demux->src_segment, demux->scr_adjust,
GST_TIME_ARGS (MPEGTIME_TO_GSTTIME (demux->scr_adjust)));
#if 0
g_print ("sending new segment: rate %g format %d, start: %"
--
2.4.2