Commit 9f467402 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

quartz/dsoundrender: Reimplement the DirectSound renderer directly on top of the strmbase filter.

The DirectSound renderer does a lot of things differently. To a large degree this is to be expected; it's an audio renderer and therefore needs to buffer much farther in advance. However, it also doesn't participate in quality management, doesn't block in Receive(), and has a few other mild differences in behaviour. Weighing the features implemented by the base renderer against the quirks necessary for the DirectSound renderer leads me to believe that it would be easier not to use that framework. Signed-off-by: 's avatarZebediah Figura <z.figura12@gmail.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent b9063c4b
......@@ -615,8 +615,7 @@ static const struct strmbase_filter_ops testfilter_ops =
static HRESULT testsource_query_interface(struct strmbase_pin *iface, REFIID iid, void **out)
{
todo_wine_if (IsEqualGUID(iid, &IID_IQualityControl))
ok(!IsEqualGUID(iid, &IID_IQualityControl), "Unexpected query for IQualityControl.\n");
ok(!IsEqualGUID(iid, &IID_IQualityControl), "Unexpected query for IQualityControl.\n");
return E_NOINTERFACE;
}
......
......@@ -58,8 +58,4 @@ void QualityControlRender_DoQOS(struct strmbase_qc *priv);
void QualityControlRender_BeginRender(struct strmbase_qc *This, REFERENCE_TIME start, REFERENCE_TIME stop);
void QualityControlRender_EndRender(struct strmbase_qc *This);
void strmbase_passthrough_update_time(struct strmbase_passthrough *passthrough, REFERENCE_TIME time);
void strmbase_passthrough_invalidate_time(struct strmbase_passthrough *passthrough);
void strmbase_passthrough_eos(struct strmbase_passthrough *passthrough);
#endif /* __WINE_STRMBASE_PRIVATE_H */
......@@ -271,6 +271,10 @@ struct strmbase_passthrough
void strmbase_passthrough_init(struct strmbase_passthrough *passthrough, IUnknown *outer);
void strmbase_passthrough_cleanup(struct strmbase_passthrough *passthrough);
void strmbase_passthrough_eos(struct strmbase_passthrough *passthrough);
void strmbase_passthrough_invalidate_time(struct strmbase_passthrough *passthrough);
void strmbase_passthrough_update_time(struct strmbase_passthrough *passthrough, REFERENCE_TIME time);
struct strmbase_qc
{
IQualityControl IQualityControl_iface;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment