mpegdemux: refactor segment sending
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Thu, 11 Oct 2012 09:51:50 +0000 (11:51 +0200)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Fri, 12 Oct 2012 15:03:37 +0000 (17:03 +0200)
gst/mpegdemux/gstmpegdemux.c

index 8c21685..02219a7 100644 (file)
@@ -501,23 +501,10 @@ unknown_stream:
   }
 }
 
-static GstFlowReturn
-gst_flups_demux_send_data (GstFluPSDemux * demux, GstFluPSStream * stream,
-    GstBuffer * buf)
+static inline void
+gst_flups_demux_send_segment (GstFluPSDemux * demux, GstFluPSStream * stream,
+    GstClockTime pts)
 {
-  GstFlowReturn result;
-  GstClockTime pts = GST_CLOCK_TIME_NONE, dts = GST_CLOCK_TIME_NONE;
-  guint size;
-
-  if (stream == NULL)
-    goto no_stream;
-
-  /* timestamps */
-  if (G_UNLIKELY (demux->next_pts != G_MAXUINT64))
-    pts = MPEGTIME_TO_GSTTIME (demux->next_pts);
-  if (G_UNLIKELY (demux->next_dts != G_MAXUINT64))
-    dts = MPEGTIME_TO_GSTTIME (demux->next_dts);
-
   /* discont */
   if (G_UNLIKELY (stream->need_segment)) {
     guint64 time, start, stop;
@@ -575,6 +562,26 @@ gst_flups_demux_send_data (GstFluPSDemux * demux, GstFluPSStream * stream,
 
     stream->need_segment = FALSE;
   }
+}
+
+static GstFlowReturn
+gst_flups_demux_send_data (GstFluPSDemux * demux, GstFluPSStream * stream,
+    GstBuffer * buf)
+{
+  GstFlowReturn result;
+  GstClockTime pts = GST_CLOCK_TIME_NONE, dts = GST_CLOCK_TIME_NONE;
+  guint size;
+
+  if (stream == NULL)
+    goto no_stream;
+
+  /* timestamps */
+  if (G_UNLIKELY (demux->next_pts != G_MAXUINT64))
+    pts = MPEGTIME_TO_GSTTIME (demux->next_pts);
+  if (G_UNLIKELY (demux->next_dts != G_MAXUINT64))
+    dts = MPEGTIME_TO_GSTTIME (demux->next_dts);
+
+  gst_flups_demux_send_segment (demux, stream, pts);
 
   /* OK, sent new segment now prepare the buffer for sending */
   GST_BUFFER_PTS (buf) = pts;