The first commit addresses the following Wine bug: https://bugs.winehq.org/show_bug.cgi?id=56595
The Wine bug is a regression resulting from a previous commit I made (in which I overlooked WoW64 support): 9e1f5f6d11b14b3ee38050a1b45a55f5c71146c6
The second commit fixes my intention to log the query after setting the URI.
-- v3: winegstreamer: Log query after setting the URI. winegstreamer: Fix wow64 support for wg_parser_connect.
From: Brendan McGrath bmcgrath@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56595 --- dlls/winegstreamer/wg_parser.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c index 679500b617e..d19102ac2ae 100644 --- a/dlls/winegstreamer/wg_parser.c +++ b/dlls/winegstreamer/wg_parser.c @@ -1900,6 +1900,24 @@ C_ASSERT(ARRAYSIZE(__wine_unix_call_funcs) == unix_wg_funcs_count);
typedef ULONG PTR32;
+static NTSTATUS wow64_wg_parser_connect(void *args) +{ + struct + { + wg_parser_t parser; + PTR32 uri; + UINT64 file_size; + } *params32 = args; + struct wg_parser_connect_params params = + { + .parser = params32->parser, + .uri = ULongToPtr(params32->uri), + .file_size = params32->file_size, + }; + + return wg_parser_connect(¶ms); +} + static NTSTATUS wow64_wg_parser_push_data(void *args) { struct { @@ -2184,7 +2202,7 @@ const unixlib_entry_t __wine_unix_call_wow64_funcs[] = X(wg_parser_create), X(wg_parser_destroy),
- X(wg_parser_connect), + X64(wg_parser_connect), X(wg_parser_disconnect),
X(wg_parser_get_next_read_offset),
From: Brendan McGrath bmcgrath@codeweavers.com
--- dlls/winegstreamer/wg_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c index d19102ac2ae..c017edf3f86 100644 --- a/dlls/winegstreamer/wg_parser.c +++ b/dlls/winegstreamer/wg_parser.c @@ -1247,8 +1247,8 @@ static gboolean src_query_cb(GstPad *pad, GstObject *parent, GstQuery *query) case GST_QUERY_URI: if (parser->uri) { - GST_LOG_OBJECT(pad, "Responding with %" GST_PTR_FORMAT, query); gst_query_set_uri(query, parser->uri); + GST_LOG_OBJECT(pad, "Responding with %" GST_PTR_FORMAT, query); return TRUE; } return FALSE;