On 4/16/20 10:24 AM, Gabriel Ivăncescu wrote:
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com
dlls/qedit/mediadet.c | 17 +++++++++++++++-- dlls/qedit/tests/mediadet.c | 22 ++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/dlls/qedit/mediadet.c b/dlls/qedit/mediadet.c index a6b52c0..dae98fd 100644 --- a/dlls/qedit/mediadet.c +++ b/dlls/qedit/mediadet.c @@ -303,8 +303,21 @@ static HRESULT WINAPI MediaDet_get_StreamType(IMediaDet* iface, GUID *pVal) static HRESULT WINAPI MediaDet_get_StreamTypeB(IMediaDet* iface, BSTR *pVal) { MediaDetImpl *This = impl_from_IMediaDet(iface);
- FIXME("(%p)->(%p): not implemented!\n", This, pVal);
- return E_NOTIMPL;
- AM_MEDIA_TYPE mt;
- HRESULT hr;
- TRACE("(%p)->(%p)\n", This, pVal);
- hr = IMediaDet_get_StreamMediaType(&This->IMediaDet_iface, &mt);
Wouldn't it be simpler just to call get_StreamType() here?
- if (FAILED(hr))
return hr;
- CoTaskMemFree(mt.pbFormat);
- if (!(*pVal = SysAllocStringLen(NULL, CHARS_IN_GUID - 1)))
return E_OUTOFMEMORY;
- StringFromGUID2(&mt.majortype, *pVal, CHARS_IN_GUID);
- return hr;
}
static HRESULT WINAPI MediaDet_get_StreamLength(IMediaDet* iface, double *pVal) diff --git a/dlls/qedit/tests/mediadet.c b/dlls/qedit/tests/mediadet.c index c92c187..596171b 100644 --- a/dlls/qedit/tests/mediadet.c +++ b/dlls/qedit/tests/mediadet.c @@ -193,6 +193,7 @@ static void test_mediadet(void) LONG nstrms = 0; LONG strm; GUID guid;
- BSTR bstr; AM_MEDIA_TYPE mt; double fps; int flags;
@@ -249,6 +250,12 @@ static void test_mediadet(void) hr = IMediaDet_get_StreamType(pM, NULL); ok(hr == E_POINTER, "IMediaDet_get_StreamType failed: %08x\n", hr);
- hr = IMediaDet_get_StreamTypeB(pM, &bstr);
- ok(hr == E_INVALIDARG, "IMediaDet_get_StreamTypeB failed: %08x\n", hr);
- hr = IMediaDet_get_StreamTypeB(pM, NULL);
- ok(hr == E_INVALIDARG, "IMediaDet_get_StreamTypeB 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);
@@ -269,6 +276,11 @@ static void test_mediadet(void) 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_StreamTypeB(pM, &bstr);
- ok(hr == S_OK, "IMediaDet_get_StreamTypeB failed: %08x\n", hr);
- ok(!wcscmp(bstr, L"{73646976-0000-0010-8000-00AA00389B71}"), "Wrong GUID %s\n", wine_dbgstr_w(bstr));
- SysFreeString(bstr);
- /* Even before get_OutputStreams. */ hr = IMediaDet_put_CurrentStream(pM, 1); ok(hr == E_INVALIDARG, "IMediaDet_put_CurrentStream failed: %08x\n", hr);
@@ -326,6 +338,11 @@ static void test_mediadet(void) 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_StreamTypeB(pM, &bstr);
- ok(hr == S_OK, "IMediaDet_get_StreamTypeB failed: %08x\n", hr);
- ok(!wcscmp(bstr, L"{73646976-0000-0010-8000-00AA00389B71}"), "Wrong GUID %s\n", wine_dbgstr_w(bstr));
- SysFreeString(bstr);
- hr = IMediaDet_get_FrameRate(pM, NULL); ok(hr == E_POINTER, "IMediaDet_get_FrameRate failed: %08x\n", hr);
@@ -389,6 +406,11 @@ static void test_mediadet(void) 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_StreamTypeB(pM, &bstr);
ok(hr == S_OK, "IMediaDet_get_StreamTypeB failed: %08x\n", hr);
ok(!wcscmp(bstr, L"{73647561-0000-0010-8000-00AA00389B71}"), "Wrong GUID %s\n", wine_dbgstr_w(bstr));
SysFreeString(bstr);
hr = IMediaDet_get_FrameRate(pM, &fps); ok(hr == VFW_E_INVALIDMEDIATYPE, "IMediaDet_get_FrameRate failed: %08x\n", hr); }