Commit Graph

306 Commits

Author SHA1 Message Date
Zebediah Figura 3a7f54947e strmbase/transform: Hold the streaming lock for the entirety of Receive().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-02 10:42:10 +01:00
Zebediah Figura 3b7ce56908 strmbase: Don't hold the filter lock while calling IPin::NewSegment().
It's not safe to hold the filter lock from a streaming thread, and
anyway we aren't protecting anything that needs locking.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-02 10:42:04 +01:00
Zebediah Figura a4131ca625 strmbase: Swap the lock order in IPin::EndFlush().
This more closely resembles the threading model prescribed by the DirectX SDK
documentation. In particular, the page "Flushing Data" recommends that
IPin::BeginFlush() do the following steps in order:

1. take the filter lock
2. signal the streaming thread to complete
3. take the streaming lock, if necessary

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-29 08:23:45 +01:00
Zebediah Figura 4be014239c strmbase: Don't hold the streaming lock in IPin::BeginFlush().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 08:34:03 +01:00
Zebediah Figura 4d221c3108 strmbase: Get rid of BaseRendererImpl_EndOfStream().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 08:33:59 +01:00
Zebediah Figura dc8bd4598c strmbase: Get rid of BaseRendererImpl_EndFlush().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 08:33:56 +01:00
Zebediah Figura 0011be7fdd strmbase: Get rid of BaseRendererImpl_BeginFlush().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 08:33:52 +01:00
Zebediah Figura 09b39646b0 quartz/dsoundrender: Avoid taking the filter lock in IPin::EndOfStream().
IPin::EndOfStream() is called from a streaming thread. The streaming thread
should never take the filter lock.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 08:33:44 +01:00
Zebediah Figura 6773179a94 strmbase: Move tracking of EOS state to the base renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-27 09:47:23 +01:00
Zebediah Figura 8a05fe0fb5 strmbase: Get rid of BaseOutputPinImpl_Deliver().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-27 09:47:16 +01:00
Zebediah Figura 8bfd6d3285 strmbase/transform: Check whether the source is connected in TransformFilter_Input_Receive().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-25 20:47:43 +01:00
Zebediah Figura b0b56001fe strmbase: Simplify SendFurther().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-25 20:47:43 +01:00
Zebediah Figura bd83b11a23 strmbase: Return a strmbase_pin pointer from the filter_get_pin() callback.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-25 20:47:43 +01:00
Zebediah Figura 6072c66c5a strmbase/renderer: Exit BaseRendererImpl_Receive() immediately if flush_event was signaled.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-22 09:03:33 +01:00
Nikolay Sivov 462d8ae419 strmbase: Remove unused function.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 09:13:36 +01:00
Zebediah Figura e438824ab3 strmbase: Get rid of the BaseInputPinFuncTable typedef.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 09:09:12 +01:00
Zebediah Figura 580ca7557d strmbase: Get rid of the BaseInputPin typedef.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 09:09:08 +01:00
Zebediah Figura cc78d10405 strmbase: Avoid unnecessary use of IPin::ConnectedTo().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-19 09:23:29 +01:00
Zebediah Figura 2a6037e263 strmbase: Forbid (dis)connecting pins if the filter is not stopped.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-19 09:23:16 +01:00
Zebediah Figura 03f0479c34 strmbase: Rename the "mtCurrent" field of struct strmbase_pin to "mt".
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-19 09:23:09 +01:00
Zebediah Figura 21ac839711 strmbase: Get rid of the unused segment fields from struct strmbase_pin.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-18 19:12:14 +01:00
Zebediah Figura 70d2ba7482 strmbase: Get rid of the unused "cs" parameter to strmbase_video_init().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-18 19:12:14 +01:00
Zebediah Figura cdeb55a8f9 strmbase/transform: Reimplement IQualityControl for the source pin.
There is not enough common code between renderers and transforms to be worth
duplicating.

This fixes a regression introduced by db7eb3327. The wrong impl_from_*()
helper was used in IQualityControl::Notify().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-04 12:14:32 +01:00
Zebediah Figura 9a760f9479 strmbase: Retrieve the filter clock from the pin pointer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 18:31:58 +01:00
Zebediah Figura db7eb33275 strmbase: Pass a strmbase_pin pointer to QualityControlImpl_Create().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 18:31:54 +01:00
Zebediah Figura 8655691a8a strmbase/renderer: Use base filter state change methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 18:31:49 +01:00
Zebediah Figura 2fcc7e7292 strmbase/transform: Use base filter state change methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:13:38 +01:00
Zebediah Figura 7c8c0a1d2e strmbase: Introduce filter state callbacks.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:13:36 +01:00
Zebediah Figura f7232d4e2c strmbase: Rename the "pFuncsTable" field of struct strmbase_filter to "ops".
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:13:34 +01:00
Zebediah Figura 0f8dbcdf80 strmbase: Get rid of the BaseRendererFuncTable typedef.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:13:30 +01:00
Zebediah Figura 487ea5df22 strmbase: Get rid of the BaseRenderer typedef.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:13:25 +01:00
Zebediah Figura 1454a661e5 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>
2019-10-27 19:13:19 +01:00
Zebediah Figura 48aa8326f9 strmbase: Get rid of the "vtbl" parameter to strmbase_renderer_init().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-23 10:25:57 +02:00
Zebediah Figura 675af1eb33 strmbase: Introduce renderer_init_stream().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-23 10:25:52 +02:00
Zebediah Figura 132ce049e6 strmbase: Return S_FALSE from IBaseFilter::Pause() when performing asynchronous state change.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-23 10:25:47 +02:00
Zebediah Figura 3f7fdcfd63 strmbase: Get rid of the unused "lock" parameter to BaseControlWindow_Init().
We don't use a lock, and while it's true we probably should be, we already
have access to one.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-18 18:05:53 +02:00
Zebediah Figura 3e7a804790 strmbase: Get rid of the unused "hDC" field of the BaseWindow structure.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-17 10:49:58 +02:00
Zebediah Figura f3a766bfe4 strmbase: Get rid of the unused "hInstance" field of the BaseWindow structure.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-17 10:49:42 +02:00
Zebediah Figura a17f2ecb69 strmbase: Get rid of BaseWindowImpl_OnSize().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-17 10:49:37 +02:00
Zebediah Figura b0b2c7d699 strmbase: Get rid of the "pfnGetClassWindowStyles" callback.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-17 10:49:29 +02:00
Zebediah Figura d1a879fb9d strmbase: Properly implement IVideoWindow::get_WindowStyle().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-16 13:39:32 +02:00
Zebediah Figura a0aa542a26 strmbase: Get rid of the "pfnOnReceiveMessage" callback.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-16 13:39:30 +02:00
Zebediah Figura a29b1d58b7 strmbase: Get rid of BaseWindowImpl_OnReceiveMessage().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-16 13:39:27 +02:00
Zebediah Figura 55b2251fef strmbase: Get rid of the "pfnPossiblyEatMessage" callback.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-16 12:31:35 +02:00
Zebediah Figura 0854f67d09 strmbase: Get rid of the unused BaseWindowImpl_GetDefaultRect() function.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-16 12:31:31 +02:00
Zebediah Figura d2b2e60ada strmbase: Avoid leaking references to the sink's peer in IVideoWindow::SetWindowForeground().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-09 10:00:44 +02:00
Zebediah Figura cc3f73be74 strmbase: More properly implement IVideoWindow::SetWindowForeground().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-09 10:00:41 +02:00
Zebediah Figura a3d3b399ff strmbase: Properly implement IVideoWindow::get_WindowState().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-09 10:00:39 +02:00
Zebediah Figura ab98626afa strmbase: Don't move or activate the window in IVideoWindow::put_WindowStyle().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-09 10:00:35 +02:00
Zebediah Figura 6ef97acd1b strmbase: IVideoWindow::get_Visible() returns OATRUE, not TRUE.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-09 10:00:32 +02:00