strmbase: Move strmbase_renderer_init() to avoid forward declarations.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
3f698b950f
commit
1454a661e5
|
@ -250,42 +250,6 @@ static const BaseInputPinFuncTable input_BaseInputFuncTable =
|
||||||
.pfnReceive = BaseRenderer_Receive,
|
.pfnReceive = BaseRenderer_Receive,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const IBaseFilterVtbl strmbase_renderer_vtbl;
|
|
||||||
|
|
||||||
HRESULT WINAPI strmbase_renderer_init(BaseRenderer *filter, IUnknown *outer,
|
|
||||||
const CLSID *clsid, const WCHAR *sink_name, const BaseRendererFuncTable *pBaseFuncsTable)
|
|
||||||
{
|
|
||||||
HRESULT hr;
|
|
||||||
|
|
||||||
memset(filter, 0, sizeof(*filter));
|
|
||||||
strmbase_filter_init(&filter->filter, &strmbase_renderer_vtbl, outer, clsid, &filter_ops);
|
|
||||||
|
|
||||||
filter->pFuncsTable = pBaseFuncsTable;
|
|
||||||
|
|
||||||
strmbase_sink_init(&filter->sink, &BaseRenderer_InputPin_Vtbl, &filter->filter,
|
|
||||||
sink_name, &input_BaseInputFuncTable, NULL);
|
|
||||||
|
|
||||||
hr = CreatePosPassThru(outer ? outer : (IUnknown *)&filter->filter.IBaseFilter_iface, TRUE,
|
|
||||||
&filter->sink.pin.IPin_iface, &filter->pPosition);
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
strmbase_sink_cleanup(&filter->sink);
|
|
||||||
strmbase_filter_cleanup(&filter->filter);
|
|
||||||
return hr;
|
|
||||||
}
|
|
||||||
|
|
||||||
InitializeCriticalSection(&filter->csRenderLock);
|
|
||||||
filter->csRenderLock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__": BaseRenderer.csRenderLock");
|
|
||||||
filter->state_event = CreateEventW(NULL, TRUE, TRUE, NULL);
|
|
||||||
filter->advise_event = CreateEventW(NULL, FALSE, FALSE, NULL);
|
|
||||||
filter->flush_event = CreateEventW(NULL, TRUE, TRUE, NULL);
|
|
||||||
|
|
||||||
QualityControlImpl_Create(&filter->sink.pin.IPin_iface, &filter->filter.IBaseFilter_iface, &filter->qcimpl);
|
|
||||||
filter->qcimpl->IQualityControl_iface.lpVtbl = &Renderer_QualityControl_Vtbl;
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
void strmbase_renderer_cleanup(BaseRenderer *filter)
|
void strmbase_renderer_cleanup(BaseRenderer *filter)
|
||||||
{
|
{
|
||||||
if (filter->sink.pin.peer)
|
if (filter->sink.pin.peer)
|
||||||
|
@ -595,3 +559,37 @@ HRESULT WINAPI BaseRendererImpl_ClearPendingSample(BaseRenderer *iface)
|
||||||
}
|
}
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT WINAPI strmbase_renderer_init(BaseRenderer *filter, IUnknown *outer,
|
||||||
|
const CLSID *clsid, const WCHAR *sink_name, const BaseRendererFuncTable *func_table)
|
||||||
|
{
|
||||||
|
HRESULT hr;
|
||||||
|
|
||||||
|
memset(filter, 0, sizeof(*filter));
|
||||||
|
strmbase_filter_init(&filter->filter, &strmbase_renderer_vtbl, outer, clsid, &filter_ops);
|
||||||
|
|
||||||
|
filter->pFuncsTable = func_table;
|
||||||
|
|
||||||
|
strmbase_sink_init(&filter->sink, &BaseRenderer_InputPin_Vtbl, &filter->filter,
|
||||||
|
sink_name, &input_BaseInputFuncTable, NULL);
|
||||||
|
|
||||||
|
hr = CreatePosPassThru(outer ? outer : (IUnknown *)&filter->filter.IBaseFilter_iface,
|
||||||
|
TRUE, &filter->sink.pin.IPin_iface, &filter->pPosition);
|
||||||
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
strmbase_sink_cleanup(&filter->sink);
|
||||||
|
strmbase_filter_cleanup(&filter->filter);
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
InitializeCriticalSection(&filter->csRenderLock);
|
||||||
|
filter->csRenderLock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__": BaseRenderer.csRenderLock");
|
||||||
|
filter->state_event = CreateEventW(NULL, TRUE, TRUE, NULL);
|
||||||
|
filter->advise_event = CreateEventW(NULL, FALSE, FALSE, NULL);
|
||||||
|
filter->flush_event = CreateEventW(NULL, TRUE, TRUE, NULL);
|
||||||
|
|
||||||
|
QualityControlImpl_Create(&filter->sink.pin.IPin_iface, &filter->filter.IBaseFilter_iface, &filter->qcimpl);
|
||||||
|
filter->qcimpl->IQualityControl_iface.lpVtbl = &Renderer_QualityControl_Vtbl;
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue