You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Updated mfplat-streaming-support patchset
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From 3277e517f89730f9963d4fc619179a882e9911d0 Mon Sep 17 00:00:00 2001
|
||||
From d62c72b607a0afed782df3b1c0bdba6eec5a538e Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Fri, 16 Oct 2020 16:53:29 -0500
|
||||
Subject: [PATCH] mfmediaengine: Provide the partial topology to the media
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 0979488b998dde4074fe4f443971fc90534c3fad Mon Sep 17 00:00:00 2001
|
||||
From afcfca53cc7f15bf0f49463d46b865ba254b70d2 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Fri, 16 Oct 2020 16:54:57 -0500
|
||||
Subject: [PATCH] mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_CANPLAY upon
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From a18e891de447633290c6a22ba556bff695ae9f40 Mon Sep 17 00:00:00 2001
|
||||
From 63f092c3ef53718cdeaf1564ac3793cc65891109 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Fri, 16 Oct 2020 16:57:21 -0500
|
||||
Subject: [PATCH] mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_PLAYING upon
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From ef80a5e368f46d035b15910f591fa6e6adf214d4 Mon Sep 17 00:00:00 2001
|
||||
From d2b277c0588a44e56fa260de34d61f1ca0d16a9d Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Fri, 16 Oct 2020 16:58:20 -0500
|
||||
Subject: [PATCH] mfmediaengine: Issue MF_MEDIA_ENGINE_EVENT_ENDED upon
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 0f807d915d1ee170217cd97d85183922fbda1722 Mon Sep 17 00:00:00 2001
|
||||
From 6f5a552ebbe6bcafed0b92de60c7104fb1021c64 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Wed, 14 Oct 2020 11:07:05 -0500
|
||||
Subject: [PATCH] mf: Unconditionally deliver NULL (EOS) samples.
|
||||
|
@@ -0,0 +1,27 @@
|
||||
From d0b869a25b3924794855379017bf023241397ae8 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 27 Oct 2020 10:18:22 -0500
|
||||
Subject: [PATCH] winegstreamer: Replace gst_pad_get_current_caps with
|
||||
gst_pad_query_caps.
|
||||
|
||||
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
---
|
||||
dlls/winegstreamer/media_source.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index 0991710755c..d6c7837e544 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
||||
+++ b/dlls/winegstreamer/media_source.c
|
||||
@@ -388,7 +388,7 @@ static const IMFMediaStreamVtbl media_stream_vtbl =
|
||||
the user throws at us through gstreamer's caps negotiation. */
|
||||
static HRESULT media_stream_connect_to_sink(struct media_stream *stream)
|
||||
{
|
||||
- GstCaps *source_caps = gst_pad_get_current_caps(stream->their_src);
|
||||
+ GstCaps *source_caps = gst_pad_query_caps(stream->their_src, NULL);
|
||||
const gchar *stream_type;
|
||||
|
||||
if (!source_caps)
|
||||
--
|
||||
2.28.0
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 2955cbeaa8b000785b87e39b542d4bebef394644 Mon Sep 17 00:00:00 2001
|
||||
From 6d7bcc3e6efe220d010aa72039e3f0dc71b63f1f Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 31 Mar 2020 11:21:21 -0500
|
||||
Subject: [PATCH] winegstreamer: Implement
|
||||
@@ -8,14 +8,15 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
---
|
||||
dlls/mf/tests/mf.c | 1 -
|
||||
dlls/mfplat/tests/mfplat.c | 10 +++++-----
|
||||
dlls/mfreadwrite/tests/mfplat.c | 15 ++++++++++-----
|
||||
dlls/winegstreamer/media_source.c | 28 ++++++++++++++++++++++++++--
|
||||
3 files changed, 31 insertions(+), 8 deletions(-)
|
||||
4 files changed, 41 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c
|
||||
index 351a6e1edab..e6f3593a74b 100644
|
||||
index b110c0ec9ef..be8241a51d7 100644
|
||||
--- a/dlls/mf/tests/mf.c
|
||||
+++ b/dlls/mf/tests/mf.c
|
||||
@@ -1451,7 +1451,6 @@ todo_wine
|
||||
@@ -1452,7 +1452,6 @@ todo_wine
|
||||
return;
|
||||
|
||||
hr = IMFMediaSource_CreatePresentationDescriptor(source, &pd);
|
||||
@@ -24,7 +25,7 @@ index 351a6e1edab..e6f3593a74b 100644
|
||||
if (FAILED(hr))
|
||||
return;
|
||||
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c
|
||||
index a5388840bc5..81d09694dae 100644
|
||||
index 971469ec574..6a1a5bafc1a 100644
|
||||
--- a/dlls/mfplat/tests/mfplat.c
|
||||
+++ b/dlls/mfplat/tests/mfplat.c
|
||||
@@ -574,10 +574,7 @@ static void test_source_resolver(void)
|
||||
@@ -70,6 +71,61 @@ index a5388840bc5..81d09694dae 100644
|
||||
hr = IMFMediaSource_Shutdown(mediasource);
|
||||
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
|
||||
|
||||
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c
|
||||
index 84581f9be9a..cfe68cb6736 100644
|
||||
--- a/dlls/mfreadwrite/tests/mfplat.c
|
||||
+++ b/dlls/mfreadwrite/tests/mfplat.c
|
||||
@@ -627,14 +627,13 @@ static void test_source_reader(void)
|
||||
stream = get_resource_stream("test.wav");
|
||||
|
||||
hr = MFCreateSourceReaderFromByteStream(stream, NULL, &reader);
|
||||
-todo_wine
|
||||
- ok(hr == S_OK, "Failed to create source reader, hr %#x.\n", hr);
|
||||
-
|
||||
if (FAILED(hr))
|
||||
{
|
||||
+ skip("MFCreateSourceReaderFromByteStream() failed, is G-Streamer missing?\n");
|
||||
IMFByteStream_Release(stream);
|
||||
return;
|
||||
}
|
||||
+ ok(hr == S_OK, "Failed to create source reader, hr %#x.\n", hr);
|
||||
|
||||
/* Access underlying media source object. */
|
||||
hr = IMFSourceReader_GetServiceForStream(reader, MF_SOURCE_READER_MEDIASOURCE, &GUID_NULL, &IID_IMFMediaSource,
|
||||
@@ -723,7 +722,10 @@ todo_wine
|
||||
|
||||
hr = IMFSourceReader_ReadSample(reader, MF_SOURCE_READER_FIRST_AUDIO_STREAM, 0, &actual_index, &stream_flags,
|
||||
×tamp, &sample);
|
||||
+todo_wine
|
||||
ok(hr == S_OK, "Failed to get a sample, hr %#x.\n", hr);
|
||||
+ if (hr != S_OK)
|
||||
+ goto skip_read_sample;
|
||||
ok(actual_index == 0, "Unexpected stream index %u\n", actual_index);
|
||||
ok(!stream_flags, "Unexpected stream flags %#x.\n", stream_flags);
|
||||
IMFSample_Release(sample);
|
||||
@@ -784,6 +786,8 @@ todo_wine
|
||||
ok(stream_flags == MF_SOURCE_READERF_ENDOFSTREAM, "Unexpected stream flags %#x.\n", stream_flags);
|
||||
ok(!sample, "Unexpected sample object.\n");
|
||||
|
||||
+skip_read_sample:
|
||||
+
|
||||
/* Flush. */
|
||||
hr = IMFSourceReader_Flush(reader, MF_SOURCE_READER_FIRST_VIDEO_STREAM);
|
||||
ok(hr == MF_E_INVALIDSTREAMNUMBER, "Unexpected hr %#x.\n", hr);
|
||||
@@ -814,10 +818,11 @@ todo_wine
|
||||
IMFSourceReaderCallback_Release(&callback->IMFSourceReaderCallback_iface);
|
||||
|
||||
hr = MFCreateSourceReaderFromByteStream(stream, attributes, &reader);
|
||||
+todo_wine
|
||||
ok(hr == S_OK, "Failed to create source reader, hr %#x.\n", hr);
|
||||
IMFAttributes_Release(attributes);
|
||||
-
|
||||
- IMFSourceReader_Release(reader);
|
||||
+ if (hr == S_OK)
|
||||
+ IMFSourceReader_Release(reader);
|
||||
|
||||
IMFByteStream_Release(stream);
|
||||
}
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index d6c7837e544..9b2c2174318 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
@@ -0,0 +1,100 @@
|
||||
From 1558eef3ca2e063c10b29796ba85f1c891170c61 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 27 Oct 2020 09:44:11 -0500
|
||||
Subject: [PATCH] mfreadwrite: Abort ReadSample when unable to request any
|
||||
samples.
|
||||
|
||||
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
---
|
||||
dlls/mfreadwrite/reader.c | 14 +++++++++++---
|
||||
dlls/mfreadwrite/tests/mfplat.c | 26 ++++++++++++++++++++++++++
|
||||
2 files changed, 37 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/mfreadwrite/reader.c b/dlls/mfreadwrite/reader.c
|
||||
index 96a82b798ab..7dcae5a1cfa 100644
|
||||
--- a/dlls/mfreadwrite/reader.c
|
||||
+++ b/dlls/mfreadwrite/reader.c
|
||||
@@ -439,7 +439,8 @@ static HRESULT source_reader_new_stream_handler(struct source_reader *reader, IM
|
||||
}
|
||||
|
||||
if (reader->streams[i].requests)
|
||||
- source_reader_request_sample(reader, &reader->streams[i]);
|
||||
+ if (FAILED(source_reader_request_sample(reader, &reader->streams[i])))
|
||||
+ WakeAllConditionVariable(&reader->sample_event);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1780,10 +1781,17 @@ static HRESULT source_reader_read_sample(struct source_reader *reader, DWORD ind
|
||||
stream->requests++;
|
||||
if (FAILED(hr = source_reader_request_sample(reader, stream)))
|
||||
WARN("Failed to request a sample, hr %#x.\n", hr);
|
||||
+ if (stream->stream && !(stream->flags & STREAM_FLAG_SAMPLE_REQUESTED))
|
||||
+ {
|
||||
+ *actual_index = index;
|
||||
+ *stream_flags = MF_SOURCE_READERF_ERROR;
|
||||
+ *timestamp = 0;
|
||||
+ break;
|
||||
+ }
|
||||
SleepConditionVariableCS(&reader->sample_event, &reader->cs, INFINITE);
|
||||
}
|
||||
-
|
||||
- source_reader_get_read_result(reader, stream, flags, &hr, actual_index, stream_flags,
|
||||
+ if (SUCCEEDED(hr))
|
||||
+ source_reader_get_read_result(reader, stream, flags, &hr, actual_index, stream_flags,
|
||||
timestamp, sample);
|
||||
}
|
||||
}
|
||||
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c
|
||||
index cfe68cb6736..0e5053f905f 100644
|
||||
--- a/dlls/mfreadwrite/tests/mfplat.c
|
||||
+++ b/dlls/mfreadwrite/tests/mfplat.c
|
||||
@@ -158,6 +158,8 @@ static HRESULT WINAPI test_media_stream_GetStreamDescriptor(IMFMediaStream *ifac
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
+static BOOL fail_request_sample;
|
||||
+
|
||||
static HRESULT WINAPI test_media_stream_RequestSample(IMFMediaStream *iface, IUnknown *token)
|
||||
{
|
||||
struct test_media_stream *stream = impl_from_IMFMediaStream(iface);
|
||||
@@ -165,6 +167,9 @@ static HRESULT WINAPI test_media_stream_RequestSample(IMFMediaStream *iface, IUn
|
||||
IMFSample *sample;
|
||||
HRESULT hr;
|
||||
|
||||
+ if (fail_request_sample)
|
||||
+ return E_NOTIMPL;
|
||||
+
|
||||
hr = MFCreateSample(&sample);
|
||||
ok(hr == S_OK, "Failed to create a sample, hr %#x.\n", hr);
|
||||
hr = IMFSample_SetSampleTime(sample, 123);
|
||||
@@ -977,6 +982,27 @@ static void test_source_reader_from_media_source(void)
|
||||
ok(hr == MF_E_NOTACCEPTING, "Unexpected hr %#x.\n", hr);
|
||||
|
||||
IMFSourceReader_Release(reader);
|
||||
+ IMFMediaSource_Release(source);
|
||||
+
|
||||
+ /* RequestSample failure. */
|
||||
+ source = create_test_source();
|
||||
+ ok(!!source, "Failed to create test source.\n");
|
||||
+
|
||||
+ fail_request_sample = TRUE;
|
||||
+
|
||||
+ hr = MFCreateSourceReaderFromMediaSource(source, NULL, &reader);
|
||||
+ ok(hr == S_OK, "Failed to create source reader, hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = IMFSourceReader_SetStreamSelection(reader, 0, TRUE);
|
||||
+ ok(hr == S_OK, "Failed to select a stream, hr %#x.\n", hr);
|
||||
+
|
||||
+ hr = IMFSourceReader_ReadSample(reader, 0, 0, &actual_index, &stream_flags, ×tamp, &sample);
|
||||
+ ok(hr == E_NOTIMPL, "Unexpected ReadSample result, hr %#x.\n", hr);
|
||||
+
|
||||
+ IMFSourceReader_Release(reader);
|
||||
+ IMFMediaSource_Release(source);
|
||||
+
|
||||
+ fail_request_sample = FALSE;
|
||||
}
|
||||
|
||||
START_TEST(mfplat)
|
||||
--
|
||||
2.28.0
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 3bda7ac147cd3bff5c6eabce86a9f54338d4abab Mon Sep 17 00:00:00 2001
|
||||
From 34618e06f5d5ca7c90fbe9b788efb5c9ef86ee50 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 24 Mar 2020 16:15:35 -0500
|
||||
Subject: [PATCH] winegstreamer: Implement IMFMediaSource::Start.
|
||||
@@ -8,11 +8,11 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
dlls/mfplat/tests/mfplat.c | 8 +-
|
||||
dlls/winegstreamer/gst_private.h | 1 +
|
||||
dlls/winegstreamer/media_source.c | 307 +++++++++++++++++++++++++++++-
|
||||
dlls/winegstreamer/mfplat.c | 131 +++++++++++++
|
||||
4 files changed, 439 insertions(+), 8 deletions(-)
|
||||
dlls/winegstreamer/mfplat.c | 130 +++++++++++++
|
||||
4 files changed, 438 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c
|
||||
index 81d09694dae..ceabbd09d0d 100644
|
||||
index 6a1a5bafc1a..a080035e477 100644
|
||||
--- a/dlls/mfplat/tests/mfplat.c
|
||||
+++ b/dlls/mfplat/tests/mfplat.c
|
||||
@@ -603,10 +603,7 @@ todo_wine
|
||||
@@ -54,10 +54,10 @@ index 81d09694dae..ceabbd09d0d 100644
|
||||
IMFPresentationDescriptor_Release(descriptor);
|
||||
|
||||
diff --git a/dlls/winegstreamer/gst_private.h b/dlls/winegstreamer/gst_private.h
|
||||
index 60b38a48f5a..07556802a51 100644
|
||||
index 57d40d19a89..3a8020b6760 100644
|
||||
--- a/dlls/winegstreamer/gst_private.h
|
||||
+++ b/dlls/winegstreamer/gst_private.h
|
||||
@@ -57,6 +57,7 @@ extern HRESULT mfplat_get_class_object(REFCLSID rclsid, REFIID riid, void **obj)
|
||||
@@ -79,6 +79,7 @@ extern HRESULT mfplat_get_class_object(REFCLSID rclsid, REFIID riid, void **obj)
|
||||
|
||||
HRESULT winegstreamer_stream_handler_create(REFIID riid, void **obj) DECLSPEC_HIDDEN;
|
||||
IMFMediaType *mf_media_type_from_caps(const GstCaps *caps) DECLSPEC_HIDDEN;
|
||||
@@ -66,7 +66,7 @@ index 60b38a48f5a..07556802a51 100644
|
||||
HRESULT winegstreamer_stream_handler_create(REFIID riid, void **obj) DECLSPEC_HIDDEN;
|
||||
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index 9b2c2174318..70c5b47ba84 100644
|
||||
index 9b2c2174318..9c6e7bfd539 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
||||
+++ b/dlls/winegstreamer/media_source.c
|
||||
@@ -55,14 +55,38 @@ struct media_stream
|
||||
@@ -294,7 +294,7 @@ index 9b2c2174318..70c5b47ba84 100644
|
||||
+ IMFMediaTypeHandler_GetCurrentMediaType(mth, ¤t_mt);
|
||||
+ current_caps = caps_from_mf_media_type(current_mt);
|
||||
+ g_object_get(stream->appsink, "caps", &prev_caps, NULL);
|
||||
+ if (!gst_caps_is_equal(prev_caps, current_caps))
|
||||
+ if (!prev_caps || !gst_caps_is_equal(prev_caps, current_caps))
|
||||
+ {
|
||||
+ GstEvent *reconfigure_event = gst_event_new_reconfigure();
|
||||
+ g_object_set(stream->appsink, "caps", current_caps, NULL);
|
||||
@@ -302,7 +302,8 @@ index 9b2c2174318..70c5b47ba84 100644
|
||||
+ }
|
||||
+
|
||||
+ gst_caps_unref(current_caps);
|
||||
+ gst_caps_unref(prev_caps);
|
||||
+ if (prev_caps)
|
||||
+ gst_caps_unref(prev_caps);
|
||||
+ IMFMediaType_Release(current_mt);
|
||||
+ IMFMediaTypeHandler_Release(mth);
|
||||
+ }
|
||||
@@ -313,7 +314,6 @@ index 9b2c2174318..70c5b47ba84 100644
|
||||
+ {
|
||||
+ GstEvent *seek_event = gst_event_new_seek(1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH,
|
||||
+ GST_SEEK_TYPE_SET, position->u.hVal.QuadPart / 100, GST_SEEK_TYPE_NONE, 0);
|
||||
+ GstSample *preroll;
|
||||
+
|
||||
+ gst_pad_push_event(stream->my_sink, seek_event);
|
||||
+ }
|
||||
@@ -441,10 +441,10 @@ index 9b2c2174318..70c5b47ba84 100644
|
||||
object->bus = gst_bus_new();
|
||||
gst_bus_set_sync_handler(object->bus, mf_src_bus_watch_wrapper, object, NULL);
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index 2e8b0978648..12bce9257dd 100644
|
||||
index 2e8b0978648..46bbb2ac2b1 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -601,3 +601,134 @@ IMFMediaType *mf_media_type_from_caps(const GstCaps *caps)
|
||||
@@ -601,3 +601,133 @@ IMFMediaType *mf_media_type_from_caps(const GstCaps *caps)
|
||||
|
||||
return media_type;
|
||||
}
|
||||
@@ -464,7 +464,6 @@ index 2e8b0978648..12bce9257dd 100644
|
||||
+ {
|
||||
+ UINT64 frame_rate = 0, frame_size = 0;
|
||||
+ DWORD width, height;
|
||||
+ UINT32 unused;
|
||||
+ GstVideoFormat format = GST_VIDEO_FORMAT_UNKNOWN;
|
||||
+ GUID subtype_base;
|
||||
+ GstVideoInfo info;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 65b1f4c2914cf346efa95bc07e0524c412023762 Mon Sep 17 00:00:00 2001
|
||||
From 28b1e11eb783b9bf8643209023723cf81e2be941 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Thu, 8 Oct 2020 16:39:53 -0500
|
||||
Subject: [PATCH] winegstreamer: Implement IMFMediaStream::RequestSample.
|
||||
@@ -6,13 +6,14 @@ Subject: [PATCH] winegstreamer: Implement IMFMediaStream::RequestSample.
|
||||
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
---
|
||||
dlls/mfplat/tests/mfplat.c | 4 --
|
||||
dlls/mfreadwrite/tests/mfplat.c | 4 +-
|
||||
dlls/winegstreamer/gst_private.h | 1 +
|
||||
dlls/winegstreamer/media_source.c | 92 ++++++++++++++++++++++++++++++-
|
||||
dlls/winegstreamer/mfplat.c | 69 +++++++++++++++++++++++
|
||||
4 files changed, 161 insertions(+), 5 deletions(-)
|
||||
5 files changed, 164 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c
|
||||
index ceabbd09d0d..a6bfaab22bf 100644
|
||||
index a080035e477..8f9fb3faff3 100644
|
||||
--- a/dlls/mfplat/tests/mfplat.c
|
||||
+++ b/dlls/mfplat/tests/mfplat.c
|
||||
@@ -621,13 +621,10 @@ todo_wine
|
||||
@@ -37,11 +38,35 @@ index ceabbd09d0d..a6bfaab22bf 100644
|
||||
IMFMediaStream_Release(video_stream);
|
||||
IMFMediaTypeHandler_Release(handler);
|
||||
IMFPresentationDescriptor_Release(descriptor);
|
||||
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c
|
||||
index 0e5053f905f..ba457181a61 100644
|
||||
--- a/dlls/mfreadwrite/tests/mfplat.c
|
||||
+++ b/dlls/mfreadwrite/tests/mfplat.c
|
||||
@@ -727,7 +727,6 @@ static void test_source_reader(void)
|
||||
|
||||
hr = IMFSourceReader_ReadSample(reader, MF_SOURCE_READER_FIRST_AUDIO_STREAM, 0, &actual_index, &stream_flags,
|
||||
×tamp, &sample);
|
||||
-todo_wine
|
||||
ok(hr == S_OK, "Failed to get a sample, hr %#x.\n", hr);
|
||||
if (hr != S_OK)
|
||||
goto skip_read_sample;
|
||||
@@ -753,8 +752,11 @@ todo_wine
|
||||
×tamp, &sample);
|
||||
ok(hr == S_OK, "Failed to get a sample, hr %#x.\n", hr);
|
||||
ok(actual_index == 0, "Unexpected stream index %u\n", actual_index);
|
||||
+todo_wine
|
||||
+{
|
||||
ok(stream_flags == MF_SOURCE_READERF_ENDOFSTREAM, "Unexpected stream flags %#x.\n", stream_flags);
|
||||
ok(!sample, "Unexpected sample object.\n");
|
||||
+}
|
||||
|
||||
hr = IMFSourceReader_ReadSample(reader, MF_SOURCE_READER_FIRST_AUDIO_STREAM, MF_SOURCE_READER_CONTROLF_DRAIN,
|
||||
&actual_index, &stream_flags, ×tamp, &sample);
|
||||
diff --git a/dlls/winegstreamer/gst_private.h b/dlls/winegstreamer/gst_private.h
|
||||
index 07556802a51..ff5aff42482 100644
|
||||
index 3a8020b6760..28e424439d8 100644
|
||||
--- a/dlls/winegstreamer/gst_private.h
|
||||
+++ b/dlls/winegstreamer/gst_private.h
|
||||
@@ -58,6 +58,7 @@ extern HRESULT mfplat_get_class_object(REFCLSID rclsid, REFIID riid, void **obj)
|
||||
@@ -80,6 +80,7 @@ extern HRESULT mfplat_get_class_object(REFCLSID rclsid, REFIID riid, void **obj)
|
||||
HRESULT winegstreamer_stream_handler_create(REFIID riid, void **obj) DECLSPEC_HIDDEN;
|
||||
IMFMediaType *mf_media_type_from_caps(const GstCaps *caps) DECLSPEC_HIDDEN;
|
||||
GstCaps *caps_from_mf_media_type(IMFMediaType *type) DECLSPEC_HIDDEN;
|
||||
@@ -50,7 +75,7 @@ index 07556802a51..ff5aff42482 100644
|
||||
HRESULT winegstreamer_stream_handler_create(REFIID riid, void **obj) DECLSPEC_HIDDEN;
|
||||
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index 70c5b47ba84..a67f1cb71d7 100644
|
||||
index 9c6e7bfd539..ef694bf194a 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
||||
+++ b/dlls/winegstreamer/media_source.c
|
||||
@@ -58,11 +58,13 @@ struct media_stream
|
||||
@@ -80,7 +105,7 @@ index 70c5b47ba84..a67f1cb71d7 100644
|
||||
};
|
||||
|
||||
@@ -311,6 +318,8 @@ static void start_pipeline(struct media_source *source, struct source_async_comm
|
||||
GstSample *preroll;
|
||||
GST_SEEK_TYPE_SET, position->u.hVal.QuadPart / 100, GST_SEEK_TYPE_NONE, 0);
|
||||
|
||||
gst_pad_push_event(stream->my_sink, seek_event);
|
||||
+
|
||||
@@ -206,10 +231,10 @@ index 70c5b47ba84..a67f1cb71d7 100644
|
||||
if (FAILED(hr = MFCreateEventQueue(&object->event_queue)))
|
||||
goto fail;
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index 12bce9257dd..50bda6c6807 100644
|
||||
index 46bbb2ac2b1..908f3d83ef9 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -732,3 +732,72 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
@@ -731,3 +731,72 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
FIXME("Unrecognized major type %s\n", debugstr_guid(&major_type));
|
||||
return NULL;
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From fa168ec5f74da53249dbcc2ec632aa781ac3e5fa Mon Sep 17 00:00:00 2001
|
||||
From aefabd1b2c8859c0fdf2ecbdf03cf76204e667a0 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 15 Sep 2020 14:25:26 -0500
|
||||
Subject: [PATCH] winegstreamer: Insert parser into pipeline to rectify type
|
||||
@@ -12,10 +12,10 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
3 files changed, 130 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/gst_private.h b/dlls/winegstreamer/gst_private.h
|
||||
index ff5aff42482..df1e643c3f6 100644
|
||||
index 28e424439d8..75fc7dc90a8 100644
|
||||
--- a/dlls/winegstreamer/gst_private.h
|
||||
+++ b/dlls/winegstreamer/gst_private.h
|
||||
@@ -56,6 +56,7 @@ void start_dispatch_thread(void) DECLSPEC_HIDDEN;
|
||||
@@ -78,6 +78,7 @@ void start_dispatch_thread(void) DECLSPEC_HIDDEN;
|
||||
extern HRESULT mfplat_get_class_object(REFCLSID rclsid, REFIID riid, void **obj) DECLSPEC_HIDDEN;
|
||||
|
||||
HRESULT winegstreamer_stream_handler_create(REFIID riid, void **obj) DECLSPEC_HIDDEN;
|
||||
@@ -24,7 +24,7 @@ index ff5aff42482..df1e643c3f6 100644
|
||||
GstCaps *caps_from_mf_media_type(IMFMediaType *type) DECLSPEC_HIDDEN;
|
||||
IMFSample *mf_sample_from_gst_buffer(GstBuffer *in) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
|
||||
index a67f1cb71d7..c72ac064518 100644
|
||||
index ef694bf194a..d25e34dec68 100644
|
||||
--- a/dlls/winegstreamer/media_source.c
|
||||
+++ b/dlls/winegstreamer/media_source.c
|
||||
@@ -752,8 +752,17 @@ static const IMFMediaStreamVtbl media_stream_vtbl =
|
||||
@@ -181,7 +181,7 @@ index a67f1cb71d7..c72ac064518 100644
|
||||
g_signal_connect(object->decodebin, "pad-removed", G_CALLBACK(mf_src_stream_removed_wrapper), object);
|
||||
g_signal_connect(object->decodebin, "no-more-pads", G_CALLBACK(mf_src_no_more_pads_wrapper), object);
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index 50bda6c6807..34bc2ca4fde 100644
|
||||
index 908f3d83ef9..bed5d0cc31c 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -602,6 +602,28 @@ IMFMediaType *mf_media_type_from_caps(const GstCaps *caps)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From b619bda7be2574511b8a50881acaf64cd6208d9a Mon Sep 17 00:00:00 2001
|
||||
From 7f8e08bb35cb2a9432a0f827f67b232d488d1051 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 24 Mar 2020 16:00:26 -0500
|
||||
Subject: [PATCH] winegstreamer: Translate H.264 caps to attributes.
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 80 insertions(+)
|
||||
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index 34bc2ca4fde..b10486416c3 100644
|
||||
index bed5d0cc31c..5e6b5a8ec33 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -26,6 +26,7 @@
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 36dc3a39cac411b6f1b1c8a91d994e38b237473c Mon Sep 17 00:00:00 2001
|
||||
From 7d6c748a2fe172d3c59ef225c87cd10bac45d1b7 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 24 Mar 2020 16:01:20 -0500
|
||||
Subject: [PATCH] winegstreamer: Translate WMV caps to attributes.
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 51 insertions(+)
|
||||
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index b10486416c3..a857ffd5f69 100644
|
||||
index 5e6b5a8ec33..1ed1ed2f825 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -457,6 +457,24 @@ uncompressed_video_formats[] =
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 5d55b4502d6daae2ca84d1955d37483f1a01e159 Mon Sep 17 00:00:00 2001
|
||||
From 6e954ed74dbf7ab37b5a3b75d12a0a50a8a1e3ce Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 24 Mar 2020 16:02:27 -0500
|
||||
Subject: [PATCH] winegstreamer: Translate AAC caps to attributes.
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 108 insertions(+)
|
||||
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index a857ffd5f69..43673a058be 100644
|
||||
index 1ed1ed2f825..a1958f79807 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -457,6 +457,15 @@ uncompressed_video_formats[] =
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From cd06036658253c87e3be0a229d42d62ef2c86317 Mon Sep 17 00:00:00 2001
|
||||
From 134086a1d60e24065d0556ada3070603834036d8 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Wed, 25 Mar 2020 13:36:19 -0500
|
||||
Subject: [PATCH] winegstreamer: Translate MPEG-4 Section-2 caps to attributes.
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index 43673a058be..f55080685bc 100644
|
||||
index a1958f79807..c05b9ddf41a 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -650,6 +650,22 @@ IMFMediaType *mf_media_type_from_caps(const GstCaps *caps)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From fcf12b069f62a8a2af96a5ffb5a3a14075a3d88f Mon Sep 17 00:00:00 2001
|
||||
From d07c302989c043d23091accafdc998cf1851d12f Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 12 May 2020 17:05:41 -0500
|
||||
Subject: [PATCH] winegstreamer: Translate WMA caps to attributes.
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 24 insertions(+)
|
||||
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index f55080685bc..691ea4b74ed 100644
|
||||
index c05b9ddf41a..416daa7b8a6 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -830,6 +830,30 @@ IMFMediaType *mf_media_type_from_caps(const GstCaps *caps)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 2e3c9e176ce464b1d14efa4b7bb29e1d7fe42e3a Mon Sep 17 00:00:00 2001
|
||||
From be591787edbf17c43034f44eff3b0cb55296ae83 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 24 Mar 2020 16:18:40 -0500
|
||||
Subject: [PATCH] winegstreamer: Translate H.264 attributes to caps.
|
||||
@@ -9,13 +9,13 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 71 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index 691ea4b74ed..24921573235 100644
|
||||
index 416daa7b8a6..5ccae20e8bb 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -919,10 +919,6 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
@@ -918,10 +918,6 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
{
|
||||
UINT64 frame_rate = 0, frame_size = 0;
|
||||
DWORD width, height;
|
||||
UINT32 unused;
|
||||
- GstVideoFormat format = GST_VIDEO_FORMAT_UNKNOWN;
|
||||
- GUID subtype_base;
|
||||
- GstVideoInfo info;
|
||||
@@ -23,7 +23,7 @@ index 691ea4b74ed..24921573235 100644
|
||||
|
||||
if (FAILED(IMFMediaType_GetUINT64(type, &MF_MT_FRAME_SIZE, &frame_size)))
|
||||
return NULL;
|
||||
@@ -931,28 +927,84 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
@@ -930,28 +926,84 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
|
||||
output = gst_caps_new_empty_simple("video/x-raw");
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 926fb4468a42f41404f7dee6a904a60083010017 Mon Sep 17 00:00:00 2001
|
||||
From 43e6b3be2fd3a5e4b6ddb4e8eb1833c69c2ef817 Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 24 Mar 2020 16:20:17 -0500
|
||||
Subject: [PATCH] winegstreamer: Translate WMV attributes to caps.
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 51 insertions(+)
|
||||
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index 24921573235..9105ce5a221 100644
|
||||
index 5ccae20e8bb..ffb6a303d34 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -903,6 +903,21 @@ GstCaps *make_mf_compatible_caps(GstCaps *caps)
|
||||
@@ -34,7 +34,7 @@ index 24921573235..9105ce5a221 100644
|
||||
GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
{
|
||||
GUID major_type;
|
||||
@@ -975,6 +990,42 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
@@ -974,6 +989,42 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
gst_caps_set_simple(output, "level", G_TYPE_STRING, level, NULL);
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From f35a9b2a422a8a645141c3fffa2dcdeb15da1083 Mon Sep 17 00:00:00 2001
|
||||
From 272225ae4f7e9dea77c90c783fc3a49373387cee Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Tue, 21 Apr 2020 10:31:02 -0500
|
||||
Subject: [PATCH] winegstreamer: Translate AAC attributes to caps.
|
||||
@@ -9,10 +9,10 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 66 insertions(+)
|
||||
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index 9105ce5a221..cd8eaecb187 100644
|
||||
index ffb6a303d34..bbba4d718f6 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -1106,6 +1106,72 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
@@ -1105,6 +1105,72 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 4affbf60a1b64036aac89fee8d776d69254fe6a4 Mon Sep 17 00:00:00 2001
|
||||
From 186b88f42753dd6d26aee1f29d27de77984b9e3c Mon Sep 17 00:00:00 2001
|
||||
From: Derek Lesho <dlesho@codeweavers.com>
|
||||
Date: Mon, 11 May 2020 16:03:09 -0500
|
||||
Subject: [PATCH] winegstreamer: Translate MPEG-4 Section-2 attributes to caps.
|
||||
@@ -9,10 +9,10 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c
|
||||
index cd8eaecb187..2168ed153eb 100644
|
||||
index bbba4d718f6..e952a782bc1 100644
|
||||
--- a/dlls/winegstreamer/mfplat.c
|
||||
+++ b/dlls/winegstreamer/mfplat.c
|
||||
@@ -1026,6 +1026,14 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
@@ -1025,6 +1025,14 @@ GstCaps *caps_from_mf_media_type(IMFMediaType *type)
|
||||
|
||||
user_data_to_codec_data(type, output);
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user