[PATCH 07/16] Implement stub bytestream handler and source.

Nikolay Sivov nsivov at codeweavers.com
Thu Mar 26 00:06:44 CDT 2020


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.



More information about the wine-devel mailing list