On 3/26/20 12:06 AM, Nikolay Sivov wrote:
On 3/26/20 3:12 AM, Derek Lesho wrote:
+static ULONG WINAPI media_source_Release(IMFMediaSource *iface) +{ + struct media_source *This = impl_from_IMFMediaSource(iface); + ULONG ref = InterlockedDecrement(&This->ref);
+ TRACE("(%p) ref=%u\n", This, ref);
+ if (!ref) + { + heap_free(This); + }
+ return ref; +}
This does not release event queue. It should also shutdown it, just in case. It could be important if client subscribed to source events, but didn't call Start/Shutdown.
+static HRESULT media_source_teardown(struct media_source *This) +{ + if (This->event_queue) + IMFMediaEventQueue_Release(This->event_queue);
+ return S_OK; +}
It could as well be void, you can't do much with return value of it.
diff --git a/include/mfidl.idl b/include/mfidl.idl index a5fb8bc0bd..15a68a4253 100644 --- a/include/mfidl.idl +++ b/include/mfidl.idl @@ -1066,3 +1066,4 @@ cpp_quote("EXTERN_GUID(MF_SESSION_APPROX_EVENT_OCCURRENCE_TIME, 0x190e852f, 0x62 cpp_quote("EXTERN_GUID(MF_PMP_SERVER_CONTEXT, 0x2f00c910, 0xd2cf, 0x4278, 0x8b, 0x6a, 0xd0, 0x77, 0xfa, 0xc3, 0xa2, 0x5f);") cpp_quote("EXTERN_GUID(CLSID_VideoProcessorMFT, 0x88753b26, 0x5b24, 0x49bd, 0xb2, 0xe7, 0xc, 0x44, 0x5c, 0x78, 0xc9, 0x82);") +cpp_quote("EXTERN_GUID(CLSID_MPEG4ByteStreamHandler, 0x271c3902, 0x6095, 0x4c45, 0xa2, 0x2f, 0x20, 0x09, 0x18, 0x16, 0xee, 0x9e);")
I don't see this name (or guid) in SDK. Is it going to be used from outside winegstreamer?
P.S. it would be nice to have formatting and naming conventions matching other MF modules for the sake of consistency and more uniform traces, but I'll leave that to gstreamer part reviewers to decide, so ignore it if you disagree.
Either MF style or quartz style (i.e. D3D style) is fine with me, but I'd definitely prefer it match at least one of those.