Commit graph

398 commits

Author SHA1 Message Date
Zebediah Figura
60a2d66e40 strmbase: Rename the "pFuncsTable" member of struct strmbase_renderer to "ops".
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-12 12:13:55 +01:00
Zebediah Figura
4bede3b27b strmbase: Rename pfnBreakConnect to renderer_disconnect.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-12 12:13:50 +01:00
Zebediah Figura
4abf09f02e strmbase: Rename pfnDoRenderSample to renderer_render.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-12 12:13:35 +01:00
Zebediah Figura
646f2040d8 strmbase: Rename pfnCheckMediaType to renderer_query_accept.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-11 13:13:35 +01:00
Zebediah Figura
6ab9ad1096 strmbase: Move run_event handling to strmbase.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-11 13:13:35 +01:00
Zebediah Figura
914ad66c52 strmbase: Move run_event to the strmbase_renderer structure.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-11 13:13:35 +01:00
Zebediah Figura
bcfa8f413b quartz: Move the current sample tracking back to strmbase.
Only the video renderer uses this, but we'd like to deduplicate the
wait-on-preroll behaviour.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-11 13:13:35 +01:00
Zebediah Figura
0d07d1ec61 strmbase: Make the "current_*" fields of struct strmbase_renderer into local variables.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-10 11:07:45 +01:00
Zebediah Figura
d99912aa65 strmbase: Record jitter before waiting for presentation time.
Otherwise we will consistently report that samples are late. In practice this
can end up causing GStreamer to drop many video samples, which is one of the
apparent causes of bug 50733.

At the same time, don't record jitter *before* signalling preroll, as in that
case stream_start will not yet be valid, and we'll end up recording something
near the current tick count, and in this way also incorrectly report that
samples are late.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-10 11:07:40 +01:00
Zebediah Figura
1564d65868 strmbase: Inline the strmbase_qc structure into struct strmbase_renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-10 11:07:38 +01:00
Zebediah Figura
b9393d08e1 strmbase: Do not pretend to drop samples.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-10 11:07:35 +01:00
Zebediah Figura
c7d65913da strmbase: Remove the unused "avg_render", "start", and "stop" fields from struct strmbase_renderer.
This corresponds to part of GStreamer commit dc0ed9a5ebadbc5b0e9baac215b6b1714cf23b22.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 12:00:00 +01:00
Zebediah Figura
92aacce542 strmbase: Remove the unused "dropped" field from struct strmbase_qc.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 11:59:57 +01:00
Zebediah Figura
09081737ef strmbase: Remove the unused "rendered" field from struct strmbase_qc.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 11:59:54 +01:00
Zebediah Figura
4d400a71fa strmbase: Remove the unused "qos_handled" field from struct strmbase_qc.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 11:59:52 +01:00
Zebediah Figura
4f72fbef11 strmbase: Merge qualitycontrol.c into renderer.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-09 11:59:48 +01:00
Zebediah Figura
480ece6a15 strmbase: Acquire the streaming lock in sink_EndOfStream().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-20 11:11:22 +01:00
Zebediah Figura
32d339829e strmbase: Acquire the streaming lock in MemInputPin_Receive().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-20 11:11:20 +01:00
Zebediah Figura
e468aab053 strmbase: Move strmbase_renderer.csRenderLock into the strmbase_filter structure.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 08:52:34 +01:00
Zebediah Figura
690afb42f6 strmbase: Rename csFilter to filter_cs.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 08:52:32 +01:00
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