Commit Graph

378 Commits

Author SHA1 Message Date
Zebediah Figura 6f05c69210 strmbase: Don't drop csRenderLock in BaseRenderer_Receive().
We don't grab stream_cs to change any variables checked here, except to reset
flush_event, and that cannot result in a deadlock.

The only possible deadlocks here are:

(1) between this function and EndOfStream(), which is correct, as the two
    should presumably be serialized;

(2) between this function and EndFlush(); however, in that case we expect
    BeginFlush() first, which will unblock the streaming thread.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 10:13:38 +01:00
Zebediah Figura 9c2cf13170 strmbase: Forbid disconnecting the sink if the filter is not stopped.
Addendum to 2a6037e263.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 21:23:25 +01:00
Zebediah Figura 4fe604a2ba strmbase: Get rid of strmbase_pin_get_media_type().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:48:27 +01:00
Zebediah Figura 35cfa11ccd strmbase: Remove no longer used allocator commit helpers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:48:24 +01:00
Zebediah Figura ff01e58f73 strmbase: Print colorimetry information in strmbase_dump_media_type().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-14 11:02:30 +02:00
Zebediah Figura d3ef27f756 quartz/vmr9: Signal state change completion only after PresentImage() has been called.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-21 15:16:17 +02:00
Zebediah Figura 8803a81b33 strmbase: Wait for presentation time after rendering the first sample.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-21 15:16:14 +02:00
Zebediah Figura e4ebf09f4f strmbase: Get rid of BaseRendererImpl_Receive().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-21 15:16:12 +02:00
Zebediah Figura af50b499cb strmbase: Remove some no longer used callbacks.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-20 20:17:20 +02:00
Zebediah Figura 9f467402df 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: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-20 20:17:19 +02:00
Zebediah Figura a9fbbda429 strmbase: Store the quality control object directly in strmbase_renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-17 23:17:07 +02:00
Zebediah Figura 461a928f14 strmbase: Set the IQualityControl vtbl in QualityControlImpl_Create().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-17 23:17:05 +02:00
Zebediah Figura a881a730b0 strmbase: Get rid of the QualityControlImpl typedef.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-17 23:17:03 +02:00
Zebediah Figura 05f319a394 strmbase: Release the allocator in IPin::Disconnect() (Valgrind).
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 12:12:54 +02:00
Zebediah Figura 4beda16757 quartz: Free type libraries on process detach (Valgrind).
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-08 21:01:33 +02:00
Zebediah Figura 07729ea4ef strmbase: Avoid leaking the media type on failure in IEnumMediaTypes::Next().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-08 21:01:33 +02:00
Zebediah Figura 2cf4b6016e strmbase: Clear the debug info before calling DeleteCriticalSection (Valgrind).
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-08 21:01:33 +02:00
Akihiro Sagawa b9dc3324d7 strmbase: Allow NULL pin_get_media_type() callback in source_Connect().
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-20 20:16:57 +02:00
Zebediah Figura a0251e3354 strmbase: Make the pin_query_accept() callback optional.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 08:29:07 +02:00
Zebediah Figura 38f5f36462 strmbase: Make the pin_get_media_type() callback optional.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 08:29:00 +02:00
Zebediah Figura 0c1d931243 strmbase: Check the peer direction in source_Connect().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:41 +02:00
Zebediah Figura 0777941eaf strmbase: Return void from strmbase_renderer_init().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 12:09:09 +02:00
Zebediah Figura 7e226781fa strmbase: Strip trailing zeroes in debugstr_time().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 21:19:45 +01:00
Zebediah Figura c713b2958f strmbase: Support FORMAT_VideoInfo2 in strmbase_dump_media_type().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 21:19:41 +01:00
Zebediah Figura 3b8b066713 strmbase: Move the seeking passthrough object to quartz.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 09:42:41 +01:00
Zebediah Figura 191ae9f3ff strmbase: Use strmbase_passthrough directly in strmbase_renderer.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 09:42:36 +01:00
Zebediah Figura 54ee53382f strmbase: Get rid of the PassThruImpl typedef.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 09:42:31 +01:00
Zebediah Figura d5d6cfbf63 strmbase: Separate the seeking passthrough object from its implementation.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 09:42:26 +01:00
Zebediah Figura d30fd37176 strmbase: Standardize aggregation of the seeking passthrough object.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 09:42:21 +01:00
Zebediah Figura f55427fb9d strmbase: Move video.c to quartz.
The only filters that expose IBasicVideo live in quartz.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 21:18:18 +01:00
Zebediah Figura bb8911928f strmbase: Move window.c to quartz.
The only filters that expose IVideoWindow live in quartz.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 10:12:15 +01:00
Zebediah Figura 421e6b2b93 strmbase: Get rid of the base transform.
This is providing very little of value. The code in Receive() and in the state
management methods should probably be moved to the base pin and filter
respectively; the media type management is just wrong (and our two extant
transforms should not handle it the same way anyway), and most of the rest just
passes through to the transform's own callback table.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:55:59 +01:00
Zebediah Figura 7e788741d1 strmbase: Remove no longer used DLL registration and vending framework.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-09 12:10:52 +01:00
Zebediah Figura fb45f9a806 strmbase/renderer: Return S_FALSE when pausing the stream if approprate.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-20 16:23:09 +01:00
Zebediah Figura c1b7a334f5 qasf/dmowrapper: Implement source connection.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 09:16:06 +01:00
Zebediah Figura 84bede2b0d strmbase: Don't treat GUID_NULL in enumerated types as a wildcard.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 09:39:30 +01:00
Zebediah Figura 7c35fccbcc strmbase: Don't check the subtype when determining if a media type is partial.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 09:39:28 +01:00
Zebediah Figura 4f1df5246c strmbase: Also match a GUID_NULL formattype as a wildcard in source_Connect().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 09:39:25 +01:00
Zebediah Figura fa72a28c51 strmbase: Get rid of current sample tracking.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-11 08:56:37 +01:00
Zebediah Figura 6a3f4b8ee3 strmbase: Remove no longer necessary call to CoInitialize().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-11 08:44:11 +01:00
Zebediah Figura 44c91bcbb0 strmbase: Always return VFW_E_TYPE_NOT_ACCEPTED if the pin_query_accept() callback fails.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-07 21:28:22 +01:00
Zebediah Figura d1897cf96b strmbase: Check if the pin is already connected in source_Connect().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-06 09:24:44 +01:00
Zebediah Figura 09b0d9d456 strmbase: Simplify CompareMediaTypes().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-06 09:24:42 +01:00
Zebediah Figura e14c5430cc strmbase: Access our own media types directly in source_Connect().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-06 09:24:40 +01:00
Zebediah Figura 1d1ca2f883 strmbase: Clean up source_Connect().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-06 09:24:36 +01:00
Zebediah Figura b10a328bf5 strmbase: Rename the "pFuncsTable" member of struct strmbase_pin to "ops".
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-06 09:24:29 +01:00
Zebediah Figura 6656933d78 strmbase: Trace the pin and filter names in IPin and IMemInputPin methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-31 10:20:15 +01:00
Zebediah Figura 1f04af881d strmbase: Trace the filter name in IBaseFilter methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-31 10:20:09 +01:00
Zebediah Figura 4a9893d4fc strmbase: Rename the "pClock" member of struct strmbase_filter to "clock".
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-31 10:20:04 +01:00
Zebediah Figura 6f71e2c48d strmbase: Store the filter name and graph directly in the strmbase_filter structure.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-31 10:19:52 +01:00