Module: wine Branch: master Commit: 21c5627e2a6e4a9d418a49a18b7e1ae62ac0200b URL: https://gitlab.winehq.org/wine/wine/-/commit/21c5627e2a6e4a9d418a49a18b7e1ae...
Author: Alfred Agrell floating@muncher.se Date: Fri Oct 20 14:29:07 2023 +0200
winegstreamer: Implement parts of IAMStreamSelect::Info in CLSID_MPEG1Splitter.
---
dlls/winegstreamer/quartz_parser.c | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-)
diff --git a/dlls/winegstreamer/quartz_parser.c b/dlls/winegstreamer/quartz_parser.c index b1a463af531..fe050602db6 100644 --- a/dlls/winegstreamer/quartz_parser.c +++ b/dlls/winegstreamer/quartz_parser.c @@ -1526,9 +1526,41 @@ static HRESULT WINAPI stream_select_Info(IAMStreamSelect *iface, LONG index, AM_MEDIA_TYPE **mt, DWORD *flags, LCID *lcid, DWORD *group, WCHAR **name, IUnknown **object, IUnknown **unknown) { - FIXME("iface %p, index %ld, mt %p, flags %p, lcid %p, group %p, name %p, object %p, unknown %p, stub!\n", - iface, index, mt, flags, lcid, group, name, object, unknown); - return E_NOTIMPL; + struct parser *filter = impl_from_IAMStreamSelect(iface); + HRESULT hr = S_OK; + + FIXME("filter %p, index %ld, mt %p, flags %p, lcid %p, group %p, name %p, object %p, unknown %p, semi-stub!\n", + filter, index, mt, flags, lcid, group, name, object, unknown); + EnterCriticalSection(&filter->filter.filter_cs); + + if (!filter->sink.pin.peer) + { + LeaveCriticalSection(&filter->filter.filter_cs); + return VFW_E_NOT_CONNECTED; + } + if (index < 0 || index >= filter->source_count) + { + LeaveCriticalSection(&filter->filter.filter_cs); + return S_FALSE; + } + + if (mt) + *mt = CreateMediaType(&filter->sources[index]->pin.pin.mt); + if (flags) /* todo */ + *flags = 0; + if (lcid) /* todo */ + *lcid = 0; + if (group) /* todo */ + *group = 0; + if (name) /* todo */ + *name = NULL; + if (object) /* todo */ + *object = NULL; + if (unknown) + *unknown = NULL; + + LeaveCriticalSection(&filter->filter.filter_cs); + return hr; }
static HRESULT WINAPI stream_select_Enable(IAMStreamSelect *iface, LONG index, DWORD flags)