Commit Graph

1826 Commits

Author SHA1 Message Date
Akihiro Sagawa 0a32df560f quartz/tests: Add some tests for VMR7 windowless video size.
This is a port of VMR9 commit fd159a3563.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-04 20:51:30 +01:00
Zebediah Figura cf366488f6 quartz/dsoundrender: Don't drop stream_cs in DSoundRender_SendSampleData().
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:35 +01:00
Zebediah Figura 2d6043eb4f quartz/dsoundrender: Don't drop stream_cs in DSoundRender_HandleEndOfStream().
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 Receive(), 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:29 +01:00
Zebediah Figura 3933ceca58 quartz/dsoundrender: Remove the unused "in_loop" field.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-01 10:13:23 +01:00
Zebediah Figura 68d3558830 quartz: Avoid autoplugging renderers in IGraphBuilder::Connect().
I don't know of an application that this helps, but it seems like an
optimization worth performing.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-24 16:53:52 +01:00
Zebediah Figura bc588e9c52 quartz/tests: Avoid some test failures related to timing.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-24 16:53:52 +01:00
Gijs Vermeulen 4807a8f588 quartz: Only return S_FALSE in IEnumFilters::Skip() if count goes past the end of the sequence.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=28332
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 22:11:17 +01:00
Gijs Vermeulen 68d03ba8bb quartz: Return E_INVALIDARG when cursor is NULL in IEnumFilters::Skip().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 22:07:56 +01:00
Gijs Vermeulen d918c6a482 quartz: Return VFW_E_ENUM_OUT_OF_SYNC in IEnumFilters::Skip() when enum version doesn't match graph version.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 22:07:53 +01:00
Zebediah Figura 627b6b29cd quartz: Correct return value handling in IMediaSeeking::GetDuration().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura ec4feafcc0 quartz/tests: Add some more tests for IMediaSeeking return value handling.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura 1bb7ef1c1a winegstreamer: Return the seeking start time from IMediaSeeking::GetCurrentPosition().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura b04c0a56e3 quartz/tests: Add some tests for parser streaming.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura 08026a2c66 quartz/tests: Add some tests for IMediaSeeking on parser filters.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura 9281b542ff quartz/tests: Add some tests for IPin::EndOfStream() on the DirectSound renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 21:05:04 +01:00
Zebediah Figura 6e9920a1d3 quartz/tests: Add some tests for flushing on the DirectSound renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 19:01:04 +01:00
Zebediah Figura 48552496a4 quartz/tests: Add some tests for streaming events on the AVI decoder.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 10:09:42 +01:00
Zebediah Figura cd3b23c13c quartz/avidec: Don't copy the media time to the output sample.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 10:09:40 +01:00
Zebediah Figura f0a6cb9111 quartz/tests: Add some tests for AVI decoder sample processing.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 10:09:38 +01:00
Zebediah Figura cf7717b830 quartz/avidec: Don't send ICM_DECOMPRESS_BEGIN or ICM_DECOMPRESS_END messages if the source is disconnected.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 10:09:37 +01:00
Zebediah Figura 6463f65adc quartz/tests: Test (dis)connecting while not stopped.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 21:23:29 +01:00
Zebediah Figura c00c6000bc quartz/tests: Enable no longer failing tests for IBasicVideo::GetCurrentImage().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:48:29 +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 9685f12d7c quartz: Commit the allocator directly.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 10:48:18 +01:00
Zebediah Figura 60814198fe winegstreamer: Don't fail state change methods if the sink pin is not connected.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 19:36:38 +01:00
Zebediah Figura f35e5c4de2 quartz/tests: Pass an IMediaControl to some functions.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 19:36:36 +01:00
Zebediah Figura bd1174e125 quartz: Immediately return failure from IFilterGraph::RemoveFilter() if IPin::Disconnect() fails.
Do not try to stop the filter.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Zebediah Figura be1ccdf73f quartz/tests: Add more tests for interaction between pin connection and graph state.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Zebediah Figura 316396275c quartz/tests: Store a testfilter pointer inside the testpin structure.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Zebediah Figura d19aac6edb quartz: Don't stop the filter in IFilterGraph::RemoveFilter().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Zebediah Figura 57eddc004b quartz/tests: Test adding and removing filters while the graph is running.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Zebediah Figura 40a43d72a2 quartz/tests: Test releasing the graph while waiting for an asynchronous paused -> running transition.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 10:52:37 +01:00
Zebediah Figura c44173dd49 quartz: Don't hold an extra reference in async_run_cb().
We don't actually need to, because we'll wait for the callback when stopping the graph.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49907
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 10:52:34 +01:00
Zebediah Figura dfa4c07941 quartz: Treat a filter as supporting IMediaSeeking only if it supports TIME_FORMAT_MEDIA_TIME.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48715
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 23:20:24 +01:00
Zebediah Figura 294de6f218 quartz/tests: Add some more tests for seeking formats.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 22:41:25 +01:00
Gijs Vermeulen c7bd395ad9 quartz: Implement IVMRAspectRatioControl9.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=37517
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 22:41:22 +01:00
Gijs Vermeulen a6d1ee860c quartz/vmr9: Don't expose IVMRMonitorConfig from the VMR9.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:25:10 +01:00
Gijs Vermeulen 80fa0b93a6 quartz/vmr9: Don't expose IVMRFilterConfig from the VMR9.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:25:08 +01:00
Gijs Vermeulen f708161a47 quartz/vmr9: Don't expose IVMRMonitorConfig9 in renderless mode.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:25:06 +01:00
Gijs Vermeulen ef8acacaef quartz/vmr9: Don't expose IVMRMonitorConfig9 from the VMR7.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:25:01 +01:00
Gijs Vermeulen 08166d7a2d quartz/vmr9: Don't expose IVMRFilterConfig9 from the VMR7.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-26 20:24:59 +01:00
Zebediah Figura f4b04e2e84 quartz/tests: Use compare_double() to test IBasicVideo::get_AvgTimePerFrame().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-23 11:42:07 +02:00
Zebediah Figura 78c2f08225 quartz: Return the paused timestamp from IMediaSeeking::GetCurrentPosition() if the graph is running asynchronously.
In this case "graph->stream_start" has not yet been set.

This fixes a regression with Blazblue Centralfiction, which incorrectly skipped
a video. The application called IMediaControl::Run() and
IMediaSeeking::GetCurrentPosition() in quick succession, received an incorrect
value for the latter, and consequently believed that the video had already
finished.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-21 10:50:36 +02:00
Michael Stefaniuc 1b9c43df16 quartz: Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-07 11:24:12 +02:00
Pengpeng Dong 4765c5ffe2 quartz: Return E_POINTER from IVideoWindow::get_Visible() if "visible" is NULL.
Signed-off-by: Pengpeng Dong <dongpengpeng@uniontech.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-09 20:31:44 +02:00
Zebediah Figura f4d66140ad quartz/vmr9: Avoid leaking the presenter's reference to the d3d9 device.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-31 22:07:31 +02:00
Gijs Vermeulen 5e1753f04d quartz: Close hfile when GetFileSizeEx fails in IFileSourceFilter::Load() (Coverity).
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-20 18:47:23 +02:00
Zebediah Figura 0beda8a480 quartz: Reimplement AM_RENDEREX_RENDERTOEXISTINGRENDERERS by forbidding renderers from IFilterMapper2::EnumMatchingFilters().
Primarily to avoid unnecessarily creating filters like the VMR.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-18 22:30:09 +02:00
Zebediah Figura eedbfe0c0d quartz/tests: Fix a test in test_basic_video().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-03 10:22:55 +02:00
Zebediah Figura 1ce2cae3e9 quartz/vmr9: Allow AdviseSurfaceAllocator() to be called multiple times.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47161
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-24 18:26:18 +02:00
Zebediah Figura 41a9f82870 quartz: Don't pause the graph in IMediaSeeking::SetPositions if it hasn't finished running yet.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49604
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-24 18:26:18 +02:00
Zebediah Figura 79129db1cd quartz/dsoundrender: Clear the DirectSound buffer on EOS.
"Zero Escape: Nine Hours, Nine Persons, Nine Doors" does not stop or destroy the
graph after it is finished running, so the last second of audio repeats
otherwise.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-24 18:26:18 +02:00
Zebediah Figura ead0e8e5cf quartz: Correctly convert reference time to REFTIME in IBasicVideo::get_AvgTimePerFrame().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-23 22:30:48 +02:00
Zebediah Figura 11df839b69 quartz: Allow the arguments to IMediaSeeking::GetPositions() to be NULL.
This allows "UNDER NIGHT IN-BIRTH Exe:Late" to render video.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-23 22:30:48 +02:00
Zebediah Figura 7f0347bb04 quartz/vmr9: Return E_INVALIDARG if both texture and offscreen flags are passed to AllocateSurfaceHelper().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-22 12:11:31 +02:00
Zebediah Figura 8c9d60c308 quartz: Return the stop position from GetCurrentPosition() after all filters return EC_COMPLETE.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-21 15:16:24 +02:00
Zebediah Figura a6d539381e quartz/tests: Add tests for IMediaSeeking::GetCurrentPosition() and EC_COMPLETE interaction.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-21 15:16:20 +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 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 b9063c4b7e quartz/vmr9: Render preroll samples.
The documentation specifies that preroll samples shouldn't be rendered, but
the VMR9 renders them anyway.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-20 20:17:17 +02:00
Zebediah Figura 72f9472492 quartz/videorenderer: Render preroll samples.
The documentation specifies that preroll samples shouldn't be rendered, but
the video renderer renders them anyway.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-20 20:17:15 +02:00
Zebediah Figura f6f1983be8 quartz/dsoundrender: Do not send quality messages.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-17 23:17:01 +02:00
Zebediah Figura 98390d9c2d quartz/tests: Add tests for DirectSound renderer filter state.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-17 23:16:59 +02:00
Zebediah Figura aca967b8a5 quartz/tests: Add some tests for allocator negotiation on the DirectSound renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-16 09:30:03 +02:00
Zebediah Figura 52862838db quartz/tests: Add some tests for pin connection on the DirectSound renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-16 09:30:03 +02:00
Zebediah Figura 3d54a77af8 quartz/dsoundrender: Don't check the subtype in DSoundRender_CheckMediaType().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-16 09:30:03 +02:00
Zebediah Figura 1af01ac917 quartz/tests: Add some tests for media types for the DirectSound renderer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-16 09:30:03 +02:00
Zebediah Figura 88d2afb79c quartz/tests: Test previous filter states.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-16 09:30:03 +02:00
Zebediah Figura 114832224f quartz: Run the graph asynchronously if necessary.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-15 09:44:08 +02:00
Zebediah Figura 9dd5aa17a0 quartz: Return an error code if a filter reports an incorrect state.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-15 09:44:05 +02:00
Zebediah Figura a8a644c1b8 quartz: Always apply the 200 ms delay to presentation time.
This matches native (actually, native goes one step further and increases the
delay by 100 ms every time the filter is paused). Generally this makes sense,
too, as otherwise a graph that is paused and then resumed will suddenly find
itself 200 ms behind.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-15 09:44:03 +02:00
Zebediah Figura 735c8272f5 quartz: Increase the initial streaming delay to 200 ms.
This matches native, and gstreamer can be slow enough to start up that a bit of
extra time would be useful.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-15 09:43:59 +02:00
Zebediah Figura df8eabc00a quartz: Poll in IMediaFilter::GetState().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-15 09:43:55 +02:00
Zebediah Figura 23ef268663 quartz/tests: Add more tests for asynchronous state change.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-15 09:43:53 +02:00
Zebediah Figura ac0eb57274 quartz: Don't sort the graph in IMediaFilter::GetState().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-15 09:43:48 +02:00
Zebediah Figura 0bad952999 quartz: Add more tracing to state change methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-15 09:43:44 +02:00
Zebediah Figura 44c0e69137 quartz/vmr9: Auto-show the window when pausing, not when running.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-14 09:39:30 +02:00
Zebediah Figura 4d580796bc quartz/vmr9: Show the window only if auto-show is enabled.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-14 09:39:28 +02:00
Zebediah Figura d93137e2e0 quartz: Get rid of the IFilterGraphImpl typedef.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-14 09:39:25 +02:00
Zebediah Figura 02485967d6 quartz: Use calloc() in filter_graph_common_create().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-14 09:39:23 +02:00
Zebediah Figura f7265d97ee quartz: Try to create the VMR7 in video_renderer_default_create().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-26 21:00:19 +02:00
Zebediah Figura 90f8a1b876 quartz/vmr9: Set the destination rect to the whole client area when connecting.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-26 21:00:17 +02:00
Zebediah Figura 8725564f68 quartz/videorenderer: Set the destination rect to the whole client area when connecting.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-26 21:00:15 +02:00
Zebediah Figura 79c3a24a08 quartz: Don't register the VMR7.
Oddly, Windows doesn't either.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 09:51:09 +02:00
Zebediah Figura 667af9a2c2 quartz: Change the merit of the default video renderer to 0x800001.
To match Windows.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 09:51:07 +02:00
Zebediah Figura 8fcdca9dd5 quartz/vmr9: Support YUV formats in the VMR7.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 09:51:04 +02:00
Zebediah Figura 7595461f77 quartz/vmr9: Return VFW_E_TYPE_NOT_ACCEPTED when connection fails.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 09:51:00 +02:00
Zebediah Figura 6e8b2dcc26 quartz/vmr9: Remove support for 16-bit RGB from the VMR7.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:51 +02:00
Zebediah Figura 530cb0da4d quartz/vmr9: Remove support for 15-bit RGB from the VMR7.
This was never correct; 15-bit RGB has a biBitCount of 16.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:48 +02:00
Zebediah Figura ceceba2ec2 quartz/vmr9: Remove support for 8-bit RGB from the VMR7.
This was never correct; 8-bit RGB is always palettized.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-23 10:11:45 +02:00
Zebediah Figura 339dbc586a quartz/vmr9: Allow connecting with YUV formats.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura 4eb58312d6 quartz/vmr9: Avoid leaking the surface array on connection failure.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura c4f92087af quartz/vmr9: Invert only RGB video.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura 46a6dd0824 quartz/vmr9: The source pitch is the width of the Y plane for planar 4:2:0 formats.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura d417802015 quartz/vmr9: Align the source pitch to a multiple of 4.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura 717784efc9 quartz/vmr9: Merge VMR9_SendSampleData() into VMR9_DoRenderSample().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-20 14:40:57 +02:00
Zebediah Figura 15303e5401 quartz: Implement IFilterGraph2::RenderEx().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35215
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-16 11:25:05 +02:00
Zebediah Figura c603a5bfbc quartz: Combine IGraphBuilder::Render() and IGraphBuilder::Connect() into a single helper.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-16 11:25:00 +02:00
Zebediah Figura 2ddc3e4758 quartz/tests: Test autoplugging order.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-16 11:24:56 +02:00
Zebediah Figura cdab25b03a quartz: Try to connect all source pins when autoplugging from the registry.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-16 11:24:38 +02:00