[PATCH 1/5] winegstreamer: Don't try using src_getrange_cb input buffer.

Rémi Bernon wine at gitlab.winehq.org
Tue Jun 14 02:26:59 CDT 2022


From: Rémi Bernon <rbernon at codeweavers.com>

It is invalid according to GStreamer documentation.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 dlls/winegstreamer/wg_parser.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
index 7d55897aa0a..ca95f187aea 100644
--- a/dlls/winegstreamer/wg_parser.c
+++ b/dlls/winegstreamer/wg_parser.c
@@ -167,8 +167,7 @@ static NTSTATUS wg_parser_push_data(void *args)
             /* Note that we don't allocate the buffer until we have a size.
              * midiparse passes a NULL buffer and a size of UINT_MAX, in an
              * apparent attempt to read the whole input stream at once. */
-            if (!parser->read_request.buffer)
-                parser->read_request.buffer = gst_buffer_new_and_alloc(size);
+            parser->read_request.buffer = gst_buffer_new_and_alloc(size);
             gst_buffer_map(parser->read_request.buffer, &map_info, GST_MAP_WRITE);
             memcpy(map_info.data, data, size);
             gst_buffer_unmap(parser->read_request.buffer, &map_info);
@@ -886,9 +885,7 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
         /* asfreader occasionally asks for zero bytes. gst_buffer_map() will
          * return NULL in this case. Avoid confusing the read thread by asking
          * it for zero bytes. */
-        if (!*buffer)
-            *buffer = gst_buffer_new_and_alloc(0);
-        gst_buffer_set_size(*buffer, 0);
+        *buffer = gst_buffer_new_and_alloc(0);
         GST_LOG("Returning empty buffer.");
         return GST_FLOW_OK;
     }
@@ -896,7 +893,7 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
     pthread_mutex_lock(&parser->mutex);
 
     assert(!parser->read_request.size);
-    parser->read_request.buffer = *buffer;
+    parser->read_request.buffer = NULL;
     parser->read_request.offset = offset;
     parser->read_request.size = size;
     parser->read_request.done = false;
-- 
GitLab


https://gitlab.winehq.org/wine/wine/-/merge_requests/242



More information about the wine-devel mailing list