[PATCH 2/5] winegstreamer: Push stream-start and segment events in push mode.

Derek Lesho dlesho at codeweavers.com
Wed Mar 10 13:33:39 CST 2021


Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
---
 dlls/winegstreamer/wg_parser.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
index 67f65264a8d..0dc0d30f64c 100644
--- a/dlls/winegstreamer/wg_parser.c
+++ b/dlls/winegstreamer/wg_parser.c
@@ -1252,6 +1252,7 @@ static void *push_data(void *arg)
 {
     struct wg_parser *parser = arg;
     GstBuffer *buffer;
+    GstSegment *segment;
     guint max_size;
 
     GST_DEBUG("Starting push thread.");
@@ -1264,6 +1265,12 @@ static void *push_data(void *arg)
 
     max_size = parser->stop_offset ? parser->stop_offset : parser->file_size;
 
+    gst_pad_push_event(parser->my_src, gst_event_new_stream_start("wg_stream"));
+
+    segment = gst_segment_new();
+    gst_segment_init(segment, GST_FORMAT_BYTES);
+    gst_pad_push_event(parser->my_src, gst_event_new_segment(segment));
+
     for (;;)
     {
         ULONG size;
@@ -1398,6 +1405,7 @@ static gboolean src_perform_seek(struct wg_parser *parser, GstEvent *event)
     GstEvent *flush_event;
     GstSeekFlags flags;
     gint64 cur, stop;
+    GstSegment *seg;
     guint32 seqnum;
     gdouble rate;
 
@@ -1431,7 +1439,12 @@ static gboolean src_perform_seek(struct wg_parser *parser, GstEvent *event)
         gst_event_set_seqnum(flush_event, seqnum);
         gst_pad_push_event(parser->my_src, flush_event);
         if (thread)
+        {
             gst_pad_set_active(parser->my_src, 1);
+            seg = gst_segment_new();
+            gst_segment_init(seg, GST_FORMAT_BYTES);
+            gst_pad_push_event(parser->my_src, gst_event_new_segment(seg));
+        }
     }
 
     return TRUE;
-- 
2.30.1




More information about the wine-devel mailing list