Rebase against 3660176e09bc02e71586b4cf42f58c9498481af6.

This commit is contained in:
Alistair Leslie-Hughes
2021-10-07 09:15:30 +11:00
parent 7750a01cea
commit c61d12592b
24 changed files with 365 additions and 428 deletions

View File

@@ -0,0 +1,37 @@
From c7cefd4d7ba969969ad31baa4e05c3968c5ae01c Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 7 Oct 2021 09:00:38 +1100
Subject: [PATCH 01/17] Revert "winegstreamer: Trace the unfiltered caps in
sink_query_cb()."
This reverts commit fd6315eb8f6809b89b7449f4b9dd01453de32eda.
---
dlls/winegstreamer/wg_parser.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
index 0c23ae6d351..9a382cb724c 100644
--- a/dlls/winegstreamer/wg_parser.c
+++ b/dlls/winegstreamer/wg_parser.c
@@ -1006,7 +1006,6 @@ static gboolean sink_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
case GST_QUERY_CAPS:
{
GstCaps *caps, *filter, *temp;
- gchar *str;
gst_query_parse_caps(query, &filter);
@@ -1017,10 +1016,6 @@ static gboolean sink_query_cb(GstPad *pad, GstObject *parent, GstQuery *query)
if (!caps)
return FALSE;
- str = gst_caps_to_string(caps);
- GST_LOG("Stream caps are \"%s\".", str);
- g_free(str);
-
if (filter)
{
temp = gst_caps_intersect(caps, filter);
--
2.33.0

View File

@@ -0,0 +1,33 @@
From 8750208931f96be6f30a13f033658eb92a51a8ef Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 7 Oct 2021 09:00:39 +1100
Subject: [PATCH 02/17] Revert "winegstreamer: Avoid seeking past the end of an
IMFByteStream."
This reverts commit 3efb72de5aca01d3d979ce697728e51bc3e99901.
---
dlls/winegstreamer/media_source.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
index 6ecd345cb73..dab85e4689d 100644
--- a/dlls/winegstreamer/media_source.c
+++ b/dlls/winegstreamer/media_source.c
@@ -639,14 +639,6 @@ static DWORD CALLBACK read_thread(void *arg)
else if (offset + size >= file_size)
size = file_size - offset;
- /* Some IMFByteStreams (including the standard file-based stream) return
- * an error when reading past the file size. */
- if (!size)
- {
- wg_parser_push_data(source->wg_parser, data, 0);
- continue;
- }
-
if (!array_reserve(&data, &buffer_size, size, 1))
{
free(data);
--
2.33.0

View File

@@ -0,0 +1,52 @@
From 111eb77f0dc9fcf241167dec1656818e7a636f0a Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 7 Oct 2021 09:00:39 +1100
Subject: [PATCH 03/17] Revert "winegstreamer: Avoid passing a NULL buffer to
wg_parser_push_data() in the case of a zero-length read."
This reverts commit 585acfa04188f85fb9138e57d56dd44b870dca41.
---
dlls/winegstreamer/media_source.c | 7 ++-----
dlls/winegstreamer/quartz_parser.c | 5 +----
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
index dab85e4689d..703bdd7c57d 100644
--- a/dlls/winegstreamer/media_source.c
+++ b/dlls/winegstreamer/media_source.c
@@ -613,12 +613,9 @@ static DWORD CALLBACK read_thread(void *arg)
{
struct media_source *source = arg;
IMFByteStream *byte_stream = source->byte_stream;
- size_t buffer_size = 4096;
+ size_t buffer_size = 0;
uint64_t file_size;
- void *data;
-
- if (!(data = malloc(buffer_size)))
- return 0;
+ void *data = NULL;
IMFByteStream_GetLength(byte_stream, &file_size);
diff --git a/dlls/winegstreamer/quartz_parser.c b/dlls/winegstreamer/quartz_parser.c
index 6d79d2ef129..b6655d5da3c 100644
--- a/dlls/winegstreamer/quartz_parser.c
+++ b/dlls/winegstreamer/quartz_parser.c
@@ -786,12 +786,9 @@ static DWORD CALLBACK read_thread(void *arg)
{
struct parser *filter = arg;
LONGLONG file_size, unused;
- size_t buffer_size = 4096;
+ size_t buffer_size = 0;
void *data = NULL;
- if (!(data = malloc(buffer_size)))
- return 0;
-
IAsyncReader_Length(filter->reader, &file_size, &unused);
TRACE("Starting read thread for filter %p.\n", filter);
--
2.33.0

View File

@@ -0,0 +1,122 @@
From 6b2ebf10c196d3ced85546af54599071d750bb1d Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 7 Oct 2021 09:00:40 +1100
Subject: [PATCH 04/17] Revert "winegstreamer: Use array_reserve() to
reallocate read buffers."
This reverts commit 59997c355fdc9cb5857c767b3bf16c9513b3d1f3.
---
dlls/winegstreamer/gst_private.h | 2 --
dlls/winegstreamer/main.c | 27 ---------------------------
dlls/winegstreamer/media_source.c | 8 ++++----
dlls/winegstreamer/quartz_parser.c | 8 ++++----
4 files changed, 8 insertions(+), 37 deletions(-)
diff --git a/dlls/winegstreamer/gst_private.h b/dlls/winegstreamer/gst_private.h
index 986c8ca695d..ebe0bf6f50d 100644
--- a/dlls/winegstreamer/gst_private.h
+++ b/dlls/winegstreamer/gst_private.h
@@ -38,8 +38,6 @@
#include "unixlib.h"
-bool array_reserve(void **elements, size_t *capacity, size_t count, size_t size) DECLSPEC_HIDDEN;
-
static inline const char *debugstr_time(REFERENCE_TIME time)
{
ULONGLONG abstime = time >= 0 ? time : -time;
diff --git a/dlls/winegstreamer/main.c b/dlls/winegstreamer/main.c
index d6f19fb4ad1..c799aa06d1b 100644
--- a/dlls/winegstreamer/main.c
+++ b/dlls/winegstreamer/main.c
@@ -31,33 +31,6 @@ static unixlib_handle_t unix_handle;
WINE_DEFAULT_DEBUG_CHANNEL(quartz);
-bool array_reserve(void **elements, size_t *capacity, size_t count, size_t size)
-{
- unsigned int new_capacity, max_capacity;
- void *new_elements;
-
- if (count <= *capacity)
- return TRUE;
-
- max_capacity = ~(SIZE_T)0 / size;
- if (count > max_capacity)
- return FALSE;
-
- new_capacity = max(4, *capacity);
- while (new_capacity < count && new_capacity <= max_capacity / 2)
- new_capacity *= 2;
- if (new_capacity < count)
- new_capacity = max_capacity;
-
- if (!(new_elements = realloc(*elements, new_capacity * size)))
- return FALSE;
-
- *elements = new_elements;
- *capacity = new_capacity;
-
- return TRUE;
-}
-
struct wg_parser *wg_parser_create(enum wg_parser_type type, bool unlimited_buffering)
{
struct wg_parser_create_params params =
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
index 703bdd7c57d..da898f20f66 100644
--- a/dlls/winegstreamer/media_source.c
+++ b/dlls/winegstreamer/media_source.c
@@ -613,7 +613,7 @@ static DWORD CALLBACK read_thread(void *arg)
{
struct media_source *source = arg;
IMFByteStream *byte_stream = source->byte_stream;
- size_t buffer_size = 0;
+ uint32_t buffer_size = 0;
uint64_t file_size;
void *data = NULL;
@@ -636,10 +636,10 @@ static DWORD CALLBACK read_thread(void *arg)
else if (offset + size >= file_size)
size = file_size - offset;
- if (!array_reserve(&data, &buffer_size, size, 1))
+ if (size > buffer_size)
{
- free(data);
- return 0;
+ buffer_size = size;
+ data = realloc(data, size);
}
ret_size = 0;
diff --git a/dlls/winegstreamer/quartz_parser.c b/dlls/winegstreamer/quartz_parser.c
index b6655d5da3c..6ae1a99a14a 100644
--- a/dlls/winegstreamer/quartz_parser.c
+++ b/dlls/winegstreamer/quartz_parser.c
@@ -786,7 +786,7 @@ static DWORD CALLBACK read_thread(void *arg)
{
struct parser *filter = arg;
LONGLONG file_size, unused;
- size_t buffer_size = 0;
+ uint32_t buffer_size = 0;
void *data = NULL;
IAsyncReader_Length(filter->reader, &file_size, &unused);
@@ -807,10 +807,10 @@ static DWORD CALLBACK read_thread(void *arg)
else if (offset + size >= file_size)
size = file_size - offset;
- if (!array_reserve(&data, &buffer_size, size, 1))
+ if (size > buffer_size)
{
- free(data);
- return 0;
+ buffer_size = size;
+ data = realloc(data, size);
}
hr = IAsyncReader_SyncRead(filter->reader, offset, size, data);
--
2.33.0

View File

@@ -0,0 +1,44 @@
From 611e86da3f0b7050cd10c6fa693e31d7f37d7a8a Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 7 Oct 2021 09:00:41 +1100
Subject: [PATCH 05/17] Revert "winegstreamer: Handle zero-length reads in
src_getrange_cb()."
This reverts commit 8e9d7b031f7b0c93471cfbffe8f720c34623a273.
---
dlls/winegstreamer/wg_parser.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
index 9a382cb724c..72dfab8f3d6 100644
--- a/dlls/winegstreamer/wg_parser.c
+++ b/dlls/winegstreamer/wg_parser.c
@@ -1272,7 +1272,7 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
GstMapInfo map_info;
bool ret;
- GST_LOG("pad %p, offset %" G_GINT64_MODIFIER "u, size %u, buffer %p.", pad, offset, size, *buffer);
+ GST_LOG("pad %p, offset %" G_GINT64_MODIFIER "u, length %u, buffer %p.", pad, offset, size, *buffer);
if (offset == GST_BUFFER_OFFSET_NONE)
offset = parser->next_pull_offset;
@@ -1281,16 +1281,6 @@ static GstFlowReturn src_getrange_cb(GstPad *pad, GstObject *parent,
if (!*buffer)
*buffer = new_buffer = gst_buffer_new_and_alloc(size);
- if (!size)
- {
- /* 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. */
- gst_buffer_set_size(*buffer, 0);
- GST_LOG("Returning empty buffer.");
- return GST_FLOW_OK;
- }
-
gst_buffer_map(*buffer, &map_info, GST_MAP_WRITE);
pthread_mutex_lock(&parser->mutex);
--
2.33.0

View File

@@ -1,7 +1,7 @@
From 9519e2c9a353d51703831646c3e95bd0eb488846 Mon Sep 17 00:00:00 2001
From cbb33659c8d97084e41648dd6d093508d493ffd8 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 6 Oct 2021 08:38:11 +1100
Subject: [PATCH 01/12] Revert "winegstreamer: Convert the Unix library to the
Subject: [PATCH 06/17] Revert "winegstreamer: Convert the Unix library to the
__wine_unix_call interface."
This reverts commit 4ba31162c37ea237763e650f6242535d86ffb170.

View File

@@ -1,7 +1,7 @@
From d524440204163e2ad00ccb94886f299c3afa9e3c Mon Sep 17 00:00:00 2001
From 3f0ae88023b048aa9ae2d942a7d38a305a70fde2 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 6 Oct 2021 08:38:12 +1100
Subject: [PATCH 02/12] Revert "winegstreamer: Return void from
Subject: [PATCH 07/17] Revert "winegstreamer: Return void from
wg_parser_stream_seek()."
This reverts commit 494039d0d0df8fd5b2b3442caac7bd6c0c7433c0.

View File

@@ -1,7 +1,7 @@
From 6725238dfb2de2144fccfc83f0f4fbf96aba4b6c Mon Sep 17 00:00:00 2001
From 2060f5090f7b51b46d791b6f7997857ea7dd2797 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 6 Oct 2021 08:38:12 +1100
Subject: [PATCH 03/12] Revert "winegstreamer: Move Unix library definitions
Subject: [PATCH 08/17] Revert "winegstreamer: Move Unix library definitions
into a separate header."
This reverts commit 84b870bb1fcac27288ed70d28de6a1c2649e9fe6.

View File

@@ -1,7 +1,7 @@
From 673582fbfd99f1d1837127bac4bb7dab01d9f84b Mon Sep 17 00:00:00 2001
From a0f69a9083c84afe21f397fdb4c7511cff4706cd Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 2 Oct 2021 10:35:45 +1000
Subject: [PATCH 04/12] Revert "winegstreamer: Remove the no longer used
Subject: [PATCH 09/17] Revert "winegstreamer: Remove the no longer used
start_dispatch_thread() declaration."
This reverts commit a87abdbe85779adf6a2a7897bd88984587880693.

View File

@@ -1,7 +1,7 @@
From c583b4715063e2b961724779c963fffb4098ec75 Mon Sep 17 00:00:00 2001
From 49bb1f9a0024f79c5fc4bd015e87a94d9b088f3b Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 2 Oct 2021 10:35:46 +1000
Subject: [PATCH 05/12] Revert "winegstreamer: Set unlimited buffering using a
Subject: [PATCH 10/17] Revert "winegstreamer: Set unlimited buffering using a
flag for wg_parser_create()."
This reverts commit 45690320f933d68f613f95f0330098426fc5a08f.

View File

@@ -1,7 +1,7 @@
From 8c3c3aead2c71f69d4b132f897f2a746e56b9e3c Mon Sep 17 00:00:00 2001
From a609f821cebb9005b52f5642c74d2e5d7a6a62c4 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 2 Oct 2021 10:35:47 +1000
Subject: [PATCH 06/12] Revert "winegstreamer: Initialize GStreamer in
Subject: [PATCH 11/17] Revert "winegstreamer: Initialize GStreamer in
wg_parser_create()."
This reverts commit 3643f73ab61f05ddc9a637f8613c933dda0dd232.

View File

@@ -1,7 +1,7 @@
From edbd61fcdce0925f6efe4cc91bad006fbeb2ab2f Mon Sep 17 00:00:00 2001
From 145dfaf9d560e16658710819e2b598e135ccb554 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 2 Oct 2021 10:35:47 +1000
Subject: [PATCH 07/12] Revert "winegstreamer: Use a single wg_parser_create()
Subject: [PATCH 12/17] Revert "winegstreamer: Use a single wg_parser_create()
entry point."
This reverts commit eab189810d9c40c698bd049d9af647e195cd5993.

View File

@@ -1,7 +1,7 @@
From 9e4429f355fda7b1d3572aa849de2c3d2326885b Mon Sep 17 00:00:00 2001
From d32ea8a60ed0666a860e3bb6d8bb0c2f11fc80bd Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sun, 19 Sep 2021 13:07:56 +1000
Subject: [PATCH 08/12] Revert "winegstreamer: Fix return code in init_gst
Subject: [PATCH 13/17] Revert "winegstreamer: Fix return code in init_gst
failure case."
This reverts commit b9a7e961cdd39203866be38e90b1d901595d54ba.

View File

@@ -1,7 +1,7 @@
From 47c589a15c0a20a6643fc61eab0772e60bb7d6e9 Mon Sep 17 00:00:00 2001
From cfc2e7689ca9832750e81e11bcff48715a8de778 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sun, 19 Sep 2021 13:08:02 +1000
Subject: [PATCH 09/12] Revert "winegstreamer: Allocate source media buffers in
Subject: [PATCH 14/17] Revert "winegstreamer: Allocate source media buffers in
the PE components."
This reverts commit 8b7390f80d866435f06f2571a93bcd67c0947673.

View File

@@ -1,7 +1,7 @@
From 4fc216dc84f0d25c1bfe828f0ab01747536dc6f7 Mon Sep 17 00:00:00 2001
From 7ef1cf5893b686861b1704c9b87e2aa7ae29ce11 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sun, 19 Sep 2021 13:08:03 +1000
Subject: [PATCH 10/12] Revert "winegstreamer: Duplicate source shutdown path
Subject: [PATCH 15/17] Revert "winegstreamer: Duplicate source shutdown path
into constructor with leak fixes."
This reverts commit 67734bfce31d6032cee1a8980a9022665e9e18fa.

View File

@@ -1,7 +1,7 @@
From b1c93d216b7319beeb1588c427408809cd0f66ff Mon Sep 17 00:00:00 2001
From f47579e06833eeab21cb0ac30cd36bec8889a477 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sun, 19 Sep 2021 13:08:04 +1000
Subject: [PATCH 11/12] Revert "winegstreamer: Properly clean up from failure
Subject: [PATCH 16/17] Revert "winegstreamer: Properly clean up from failure
in wg_parser_connect()."
This reverts commit 721b1eb2ebe5c3eaab8ac3fb1e4f4648cbee5b4d.

View File

@@ -1,7 +1,7 @@
From c7efccc7753bbda48493a7ff94fea0b72eb398c6 Mon Sep 17 00:00:00 2001
From d5ab02f7aaba148ecc74926d3fdda6484e74a646 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sun, 19 Sep 2021 13:08:05 +1000
Subject: [PATCH 12/12] Revert "winegstreamer: Factor out more of the init_gst
Subject: [PATCH 17/17] Revert "winegstreamer: Factor out more of the init_gst
callback into wg_parser_connect()."
This reverts commit 830efe873a967dbbb0c9a65be6a66b124a5fa826.