strmbase: Get rid of current sample tracking.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
5f9ce6870c
commit
fa72a28c51
|
@ -84,7 +84,6 @@ static HRESULT renderer_init_stream(struct strmbase_filter *iface)
|
||||||
if (filter->sink.pin.peer)
|
if (filter->sink.pin.peer)
|
||||||
ResetEvent(filter->state_event);
|
ResetEvent(filter->state_event);
|
||||||
filter->eos = FALSE;
|
filter->eos = FALSE;
|
||||||
BaseRendererImpl_ClearPendingSample(filter);
|
|
||||||
ResetEvent(filter->flush_event);
|
ResetEvent(filter->flush_event);
|
||||||
if (filter->pFuncsTable->renderer_init_stream)
|
if (filter->pFuncsTable->renderer_init_stream)
|
||||||
filter->pFuncsTable->renderer_init_stream(filter);
|
filter->pFuncsTable->renderer_init_stream(filter);
|
||||||
|
@ -228,7 +227,6 @@ static HRESULT sink_begin_flush(struct strmbase_sink *iface)
|
||||||
{
|
{
|
||||||
struct strmbase_renderer *filter = impl_from_IPin(&iface->pin.IPin_iface);
|
struct strmbase_renderer *filter = impl_from_IPin(&iface->pin.IPin_iface);
|
||||||
|
|
||||||
BaseRendererImpl_ClearPendingSample(filter);
|
|
||||||
SetEvent(filter->flush_event);
|
SetEvent(filter->flush_event);
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
@ -279,7 +277,6 @@ void strmbase_renderer_cleanup(struct strmbase_renderer *filter)
|
||||||
filter->csRenderLock.DebugInfo->Spare[0] = 0;
|
filter->csRenderLock.DebugInfo->Spare[0] = 0;
|
||||||
DeleteCriticalSection(&filter->csRenderLock);
|
DeleteCriticalSection(&filter->csRenderLock);
|
||||||
|
|
||||||
BaseRendererImpl_ClearPendingSample(filter);
|
|
||||||
CloseHandle(filter->state_event);
|
CloseHandle(filter->state_event);
|
||||||
CloseHandle(filter->advise_event);
|
CloseHandle(filter->advise_event);
|
||||||
CloseHandle(filter->flush_event);
|
CloseHandle(filter->flush_event);
|
||||||
|
@ -313,9 +310,6 @@ HRESULT WINAPI BaseRendererImpl_Receive(struct strmbase_renderer *This, IMediaSa
|
||||||
DeleteMediaType(pmt);
|
DeleteMediaType(pmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
This->pMediaSample = pSample;
|
|
||||||
IMediaSample_AddRef(pSample);
|
|
||||||
|
|
||||||
if (This->pFuncsTable->pfnPrepareReceive)
|
if (This->pFuncsTable->pfnPrepareReceive)
|
||||||
hr = This->pFuncsTable->pfnPrepareReceive(This, pSample);
|
hr = This->pFuncsTable->pfnPrepareReceive(This, pSample);
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
|
@ -388,22 +382,11 @@ HRESULT WINAPI BaseRendererImpl_Receive(struct strmbase_renderer *This, IMediaSa
|
||||||
|
|
||||||
QualityControlRender_DoQOS(This->qcimpl);
|
QualityControlRender_DoQOS(This->qcimpl);
|
||||||
|
|
||||||
BaseRendererImpl_ClearPendingSample(This);
|
|
||||||
LeaveCriticalSection(&This->csRenderLock);
|
LeaveCriticalSection(&This->csRenderLock);
|
||||||
|
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI BaseRendererImpl_ClearPendingSample(struct strmbase_renderer *iface)
|
|
||||||
{
|
|
||||||
if (iface->pMediaSample)
|
|
||||||
{
|
|
||||||
IMediaSample_Release(iface->pMediaSample);
|
|
||||||
iface->pMediaSample = NULL;
|
|
||||||
}
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
HRESULT WINAPI strmbase_renderer_init(struct strmbase_renderer *filter, IUnknown *outer,
|
HRESULT WINAPI strmbase_renderer_init(struct strmbase_renderer *filter, IUnknown *outer,
|
||||||
const CLSID *clsid, const WCHAR *sink_name, const struct strmbase_renderer_ops *ops)
|
const CLSID *clsid, const WCHAR *sink_name, const struct strmbase_renderer_ops *ops)
|
||||||
{
|
{
|
||||||
|
|
|
@ -483,7 +483,6 @@ struct strmbase_renderer
|
||||||
/* Signaled when a flush or state change occurs, i.e. anything that needs
|
/* Signaled when a flush or state change occurs, i.e. anything that needs
|
||||||
* to immediately unblock the streaming thread. */
|
* to immediately unblock the streaming thread. */
|
||||||
HANDLE flush_event;
|
HANDLE flush_event;
|
||||||
IMediaSample *pMediaSample;
|
|
||||||
REFERENCE_TIME stream_start;
|
REFERENCE_TIME stream_start;
|
||||||
|
|
||||||
IQualityControl *pQSink;
|
IQualityControl *pQSink;
|
||||||
|
@ -522,7 +521,6 @@ struct strmbase_renderer_ops
|
||||||
HRESULT (*renderer_pin_query_interface)(struct strmbase_renderer *iface, REFIID iid, void **out);
|
HRESULT (*renderer_pin_query_interface)(struct strmbase_renderer *iface, REFIID iid, void **out);
|
||||||
};
|
};
|
||||||
|
|
||||||
HRESULT WINAPI BaseRendererImpl_ClearPendingSample(struct strmbase_renderer *filter);
|
|
||||||
HRESULT WINAPI BaseRendererImpl_Receive(struct strmbase_renderer *filter, IMediaSample *sample);
|
HRESULT WINAPI BaseRendererImpl_Receive(struct strmbase_renderer *filter, IMediaSample *sample);
|
||||||
|
|
||||||
HRESULT WINAPI strmbase_renderer_init(struct strmbase_renderer *filter, IUnknown *outer,
|
HRESULT WINAPI strmbase_renderer_init(struct strmbase_renderer *filter, IUnknown *outer,
|
||||||
|
|
Loading…
Reference in New Issue