On 3/11/21 3:27 PM, Zebediah Figura (she/her) wrote:
On 3/10/21 1:33 PM, Derek Lesho wrote:
Signed-off-by: Derek Lesho dlesho@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));
This (and the below) leaks "segment". You probably want to allocate it on stack instead (despite the naming, it's not a proper object).
👌
Should we initialize the segment stop time (i.e. file size)?
Yeah, that wouldn't hurt.
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;