Zebediah Figura : wmvcore: Move the sync reader implementation to winegstreamer.

Alexandre Julliard julliard at winehq.org
Thu Oct 7 16:21:22 CDT 2021


Module: wine
Branch: master
Commit: e4767ea6126fce8b419ef10a3cfce8bf43206d6f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=e4767ea6126fce8b419ef10a3cfce8bf43206d6f

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Thu Oct  7 10:47:07 2021 -0500

wmvcore: Move the sync reader implementation to winegstreamer.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winegstreamer/Makefile.in                     |  4 ++-
 dlls/winegstreamer/winegstreamer.spec              |  1 +
 .../syncreader.c => winegstreamer/wm_syncreader.c} | 33 ++++++++--------------
 dlls/wmvcore/Makefile.in                           |  2 +-
 dlls/wmvcore/wmvcore_main.c                        | 16 +++++++++++
 5 files changed, 33 insertions(+), 23 deletions(-)

diff --git a/dlls/winegstreamer/Makefile.in b/dlls/winegstreamer/Makefile.in
index e35df3cf3f9..671e3bcb7ba 100644
--- a/dlls/winegstreamer/Makefile.in
+++ b/dlls/winegstreamer/Makefile.in
@@ -1,5 +1,6 @@
 MODULE    = winegstreamer.dll
 UNIXLIB   = winegstreamer.so
+IMPORTLIB = winegstreamer
 IMPORTS   = strmbase strmiids uuid ole32 mfuuid
 DELAYIMPORTS = mfplat
 EXTRAINCL = $(GSTREAMER_CFLAGS)
@@ -11,7 +12,8 @@ C_SRCS = \
 	media_source.c \
 	mfplat.c \
 	quartz_parser.c \
-	wg_parser.c
+	wg_parser.c \
+	wm_syncreader.c
 
 IDL_SRCS = \
 	winegstreamer_classes.idl
diff --git a/dlls/winegstreamer/winegstreamer.spec b/dlls/winegstreamer/winegstreamer.spec
index b16365d0c9f..bd9f53a7445 100644
--- a/dlls/winegstreamer/winegstreamer.spec
+++ b/dlls/winegstreamer/winegstreamer.spec
@@ -2,3 +2,4 @@
 @ stdcall -private DllGetClassObject(ptr ptr ptr)
 @ stdcall -private DllRegisterServer()
 @ stdcall -private DllUnregisterServer()
+@ stdcall winegstreamer_create_wm_sync_reader(ptr)
diff --git a/dlls/wmvcore/syncreader.c b/dlls/winegstreamer/wm_syncreader.c
similarity index 96%
rename from dlls/wmvcore/syncreader.c
rename to dlls/winegstreamer/wm_syncreader.c
index b245ff20d31..75b8e021148 100644
--- a/dlls/wmvcore/syncreader.c
+++ b/dlls/winegstreamer/wm_syncreader.c
@@ -16,11 +16,9 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#include "wmvcore.h"
-
+#include "gst_private.h"
+#include "initguid.h"
 #include "wmsdk.h"
-#include "wine/debug.h"
-#include "wine/heap.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(wmvcore);
 
@@ -85,7 +83,7 @@ static ULONG WINAPI WMSyncReader_Release(IWMSyncReader2 *iface)
     TRACE("(%p) ref=%d\n", This, ref);
 
     if(!ref)
-        heap_free(This);
+        free(This);
 
     return ref;
 }
@@ -605,27 +603,20 @@ static const IWMProfile3Vtbl WMProfile3Vtbl =
     WMProfile3_GetExpectedPacketCount
 };
 
-HRESULT WINAPI WMCreateSyncReader(IUnknown *pcert, DWORD rights, IWMSyncReader **syncreader)
+HRESULT WINAPI winegstreamer_create_wm_sync_reader(IWMSyncReader **reader)
 {
-    WMSyncReader *sync;
-
-    TRACE("(%p, %x, %p)\n", pcert, rights, syncreader);
+    WMSyncReader *object;
 
-    sync = heap_alloc(sizeof(*sync));
+    TRACE("reader %p.\n", reader);
 
-    if (!sync)
+    if (!(object = calloc(1, sizeof(*object))))
         return E_OUTOFMEMORY;
 
-    sync->IWMProfile3_iface.lpVtbl = &WMProfile3Vtbl;
-    sync->IWMSyncReader2_iface.lpVtbl = &WMSyncReader2Vtbl;
-    sync->ref = 1;
-
-    *syncreader = (IWMSyncReader *)&sync->IWMSyncReader2_iface;
+    object->IWMProfile3_iface.lpVtbl = &WMProfile3Vtbl;
+    object->IWMSyncReader2_iface.lpVtbl = &WMSyncReader2Vtbl;
+    object->ref = 1;
 
+    TRACE("Created sync reader %p.\n", object);
+    *reader = (IWMSyncReader *)&object->IWMSyncReader2_iface;
     return S_OK;
 }
-
-HRESULT WINAPI WMCreateSyncReaderPriv(IWMSyncReader **syncreader)
-{
-    return WMCreateSyncReader(NULL, 0, syncreader);
-}
diff --git a/dlls/wmvcore/Makefile.in b/dlls/wmvcore/Makefile.in
index 15c017f86d9..d0b230dd7c0 100644
--- a/dlls/wmvcore/Makefile.in
+++ b/dlls/wmvcore/Makefile.in
@@ -1,12 +1,12 @@
 MODULE    = wmvcore.dll
 IMPORTLIB = wmvcore
 IMPORTS   = kernel32
+DELAYIMPORTS = winegstreamer
 
 EXTRADLLFLAGS = -Wb,--prefer-native
 
 C_SRCS = \
 	reader.c \
-	syncreader.c \
 	wmvcore_main.c \
 	writer.c
 
diff --git a/dlls/wmvcore/wmvcore_main.c b/dlls/wmvcore/wmvcore_main.c
index 5f93fc68e3b..8d4d4251369 100644
--- a/dlls/wmvcore/wmvcore_main.c
+++ b/dlls/wmvcore/wmvcore_main.c
@@ -25,6 +25,22 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(wmvcore);
 
+HRESULT WINAPI winegstreamer_create_wm_sync_reader(IWMSyncReader **reader);
+
+HRESULT WINAPI WMCreateSyncReader(IUnknown *reserved, DWORD rights, IWMSyncReader **reader)
+{
+    TRACE("reserved %p, rights %#x, reader %p.\n", reserved, rights, reader);
+
+    return winegstreamer_create_wm_sync_reader(reader);
+}
+
+HRESULT WINAPI WMCreateSyncReaderPriv(IWMSyncReader **reader)
+{
+    TRACE("reader %p.\n", reader);
+
+    return winegstreamer_create_wm_sync_reader(reader);
+}
+
 HRESULT WINAPI WMCheckURLExtension(const WCHAR *url)
 {
     FIXME("(%s): stub\n", wine_dbgstr_w(url));




More information about the wine-cvs mailing list