[PATCH v2 01/13] qedit: Implement MediaDet_get_StreamType.
Zebediah Figura
zfigura at codeweavers.com
Thu Apr 16 11:15:58 CDT 2020
On 4/16/20 10:24 AM, Gabriel Ivăncescu wrote:
> Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
> ---
> dlls/qedit/mediadet.c | 17 +++++++++++++++--
> dlls/qedit/tests/mediadet.c | 19 +++++++++++++++++++
> 2 files changed, 34 insertions(+), 2 deletions(-)
>
> diff --git a/dlls/qedit/mediadet.c b/dlls/qedit/mediadet.c
> index ecfafc4..a6b52c0 100644
> --- a/dlls/qedit/mediadet.c
> +++ b/dlls/qedit/mediadet.c
> @@ -283,8 +283,21 @@ static HRESULT WINAPI MediaDet_put_CurrentStream(IMediaDet* iface, LONG newVal)
> static HRESULT WINAPI MediaDet_get_StreamType(IMediaDet* iface, GUID *pVal)
> {
> MediaDetImpl *This = impl_from_IMediaDet(iface);
> - FIXME("(%p)->(%s): not implemented!\n", This, debugstr_guid(pVal));
> - return E_NOTIMPL;
> + AM_MEDIA_TYPE mt;
> + HRESULT hr;
> +
> + TRACE("(%p)->(%p)\n", This, pVal);
> +
> + if (!pVal)
> + return E_POINTER;
> +
> + hr = IMediaDet_get_StreamMediaType(&This->IMediaDet_iface, &mt);
> + if (FAILED(hr))
> + return hr;
> + CoTaskMemFree(mt.pbFormat);
This should be FreeMediaType().
> +
> + *pVal = mt.majortype;
> + return hr;
> }
>
> static HRESULT WINAPI MediaDet_get_StreamTypeB(IMediaDet* iface, BSTR *pVal)
> diff --git a/dlls/qedit/tests/mediadet.c b/dlls/qedit/tests/mediadet.c
> index 65f5af7..c92c187 100644
> --- a/dlls/qedit/tests/mediadet.c
> +++ b/dlls/qedit/tests/mediadet.c
> @@ -192,6 +192,7 @@ static void test_mediadet(void)
> BSTR filename = NULL;
> LONG nstrms = 0;
> LONG strm;
> + GUID guid;
> AM_MEDIA_TYPE mt;
> double fps;
> int flags;
> @@ -242,6 +243,12 @@ static void test_mediadet(void)
> hr = IMediaDet_get_StreamMediaType(pM, NULL);
> ok(hr == E_POINTER, "IMediaDet_get_StreamMediaType failed: %08x\n", hr);
>
> + hr = IMediaDet_get_StreamType(pM, &guid);
> + ok(hr == E_INVALIDARG, "IMediaDet_get_StreamType failed: %08x\n", hr);
> +
> + hr = IMediaDet_get_StreamType(pM, NULL);
> + ok(hr == E_POINTER, "IMediaDet_get_StreamType failed: %08x\n", hr);
> +
> filename = SysAllocString(test_avi_filename);
> hr = IMediaDet_put_Filename(pM, filename);
> ok(hr == S_OK, "IMediaDet_put_Filename failed: %08x\n", hr);
> @@ -258,6 +265,10 @@ static void test_mediadet(void)
> ok(hr == S_OK, "IMediaDet_get_StreamMediaType failed: %08x\n", hr);
> CoTaskMemFree(mt.pbFormat);
>
> + hr = IMediaDet_get_StreamType(pM, &guid);
> + ok(hr == S_OK, "IMediaDet_get_StreamType failed: %08x\n", hr);
> + ok(IsEqualGUID(&guid, &MEDIATYPE_Video), "Wrong GUID %s\n", wine_dbgstr_guid(&guid));
> +
> /* Even before get_OutputStreams. */
> hr = IMediaDet_put_CurrentStream(pM, 1);
> ok(hr == E_INVALIDARG, "IMediaDet_put_CurrentStream failed: %08x\n", hr);
> @@ -311,6 +322,10 @@ static void test_mediadet(void)
> "IMediaDet_get_StreamMediaType\n");
> CoTaskMemFree(mt.pbFormat);
>
> + hr = IMediaDet_get_StreamType(pM, &guid);
> + ok(hr == S_OK, "IMediaDet_get_StreamType failed: %08x\n", hr);
> + ok(IsEqualGUID(&guid, &MEDIATYPE_Video), "Wrong GUID %s\n", wine_dbgstr_guid(&guid));
> +
> hr = IMediaDet_get_FrameRate(pM, NULL);
> ok(hr == E_POINTER, "IMediaDet_get_FrameRate failed: %08x\n", hr);
>
> @@ -370,6 +385,10 @@ static void test_mediadet(void)
>
> if (IsEqualGUID(&mt.majortype, &MEDIATYPE_Audio))
> {
> + hr = IMediaDet_get_StreamType(pM, &guid);
> + ok(hr == S_OK, "IMediaDet_get_StreamType failed: %08x\n", hr);
> + ok(IsEqualGUID(&guid, &MEDIATYPE_Audio), "Wrong GUID %s\n", wine_dbgstr_guid(&guid));
> +
> hr = IMediaDet_get_FrameRate(pM, &fps);
> ok(hr == VFW_E_INVALIDMEDIATYPE, "IMediaDet_get_FrameRate failed: %08x\n", hr);
> }
>
More information about the wine-devel
mailing list