Commit Graph

397 Commits

Author SHA1 Message Date
Zebediah Figura 6d675064f8 qcap: Use a condition variable to synchronize with the video capture thread.
This fixes a hang that can be triggered by calling Pause() followed by Stop().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 21:07:43 +02:00
Zebediah Figura ebd4b38f90 qcap: Pass a single AM_MEDIA_TYPE pointer to get_format().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 21:07:43 +02:00
Zebediah Figura 8ad3707443 qcap: Use a function table for video capture driver operations.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 21:07:43 +02:00
Zebediah Figura 9e035293b1 qcap: Combine the internal header files.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-29 21:07:43 +02:00
Jactry Zeng debe646aa7 qcap/videocapture: Implement IAMVideoControl interface.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 22:07:32 +02:00
Jactry Zeng e2abd392c0 qcap/videocapture: Implement IAMFilterMiscFlags interface.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 22:07:32 +02:00
Zebediah Figura 974971ade3 qcap/tests: Get rid of the VFW capture filter tests.
Most video cameras are exposed through WDM on modern Windows, and not supported
by the VFW capture filter. No known applications depend on the VFW capture
filter, and any such applications would fail to work with modern video cameras.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 22:07:32 +02:00
Jactry Zeng fceb730098 qcap/tests: Correct CLSID in aggregation tests of smart tee filter.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 22:07:32 +02:00
Jactry Zeng 832fec3e54 qcap/videocapture: Initialize caps struct.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:44 +02:00
Jactry Zeng ecf825afc7 qcap/tests: Add interface tests for video capture filter.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:44 +02:00
Zebediah Figura fc45c96383 qcap/filewriter: Propagate file I/O failure in file_writer_sink_receive().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-01 22:03:16 +02:00
Jactry Zeng d0a926baf4 qcap/videocapture: Reimplement source_get_media_type().
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 22:00:58 +02:00
Jactry Zeng c8b1b993ad qcap/videocapture: Implement IAMStreamConfig::GetStreamCaps().
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 22:00:58 +02:00
Jactry Zeng d8fd16f139 qcap/videocapture: Implement IAMStreamConfig::GetNumberOfCapabilities().
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 22:00:58 +02:00
Jactry Zeng 5df9f7b352 qcap/videocapture: Remove code for resizing.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 22:00:58 +02:00
Jactry Zeng 9931952a86 qcap/videocapture: Use formats from capabilities instead of hard coding.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 22:00:58 +02:00
Jactry Zeng 1990df8511 qcap/videocapture: Store capabilities information.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 22:00:58 +02:00
Zebediah Figura 0eaa43357e qcap: Register the file writer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:14:29 +02:00
Zebediah Figura dc78a97c30 qcap/filewriter: Post EC_COMPLETE on receiving EOS.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:14:27 +02:00
Zebediah Figura 91d0d9ec05 qcap/filewriter: Implement IAMFilterMiscFlags.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:14:25 +02:00
Zebediah Figura 28f17d8e6e qcap/filewriter: Implement sample processing.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:14:23 +02:00
Zebediah Figura 439458af33 qcap/filewriter: Implement state change methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:14:21 +02:00
Zebediah Figura a6e65dbcc6 qcap/tests: Add tests for file writer pin connection.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-23 09:14:10 +02:00
Zebediah Figura 98da3641d1 qcap/filewriter: Implement file_writer_sink_query_accept().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-23 09:14:07 +02:00
Zebediah Figura 329e0210fd qcap/filewriter: Implement IFileSinkFilter::SetFileName().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-23 09:14:05 +02:00
Zebediah Figura 8dd8371300 qcap/filewriter: Add a stub IFileSinkFilter interface.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-23 09:14:03 +02:00
Zebediah Figura 18502ed9c6 qcap/filewriter: Add a stub sink pin.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 08:29:15 +02:00
Zebediah Figura 191e60c0da qcap: Add a stub file writer filter.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40820
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 08:29:12 +02:00
Zebediah Figura f88567ac15 qcap/tests: Remove some no longer necessary callbacks.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 08:29:09 +02:00
Zebediah Figura d9003a0464 qcap: Search downstream pins regardless of whether the category and major type match.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48766
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:42 +02:00
Zebediah Figura 1371838deb qcap: Iterate over all source pins in find_unconnected_source_from_filter().
find_unconnected_source_from_pin() already checks the category and majortype
anyway.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:33 +02:00
Zebediah Figura 952f194539 qcap: Use pin_matches() directly in find_unconnected_source_from_pin().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:31 +02:00
Zebediah Figura 74014b5539 qcap: Use separate functions when searching from a pin and filter.
Previously, if we tried to search from a matching but connected source, we
would loop forever.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:28 +02:00
Zebediah Figura 18462a2f16 qcap/tests: Add more tests for ICaptureGraphBuilder2::RenderStream().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:24 +02:00
Zebediah Figura 9d5a829034 qcap/tests: Add some basic tests for ICaptureGraphBuilder2::FindPin().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:20 +02:00
Zebediah Figura b95c00abd8 qcap/tests: Use explicit source and sink structures.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:14 +02:00
Alexandre Julliard 0c43293862 qcap: Use standard dlopen() instead of the libwine wrappers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 14:26:19 +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 7bcb8e74ce qcap: Reimplement COM registration and vending locally.
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 fc7477d83e qcap/capturegraph: Implement ICaptureGraphBuilder2::FindInterface().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-06 17:56:32 +01:00
Zebediah Figura e09be148f2 qcap/capturegraph: Return BOOL from pin_matches().
It is not interesting to account for IPin::QueryDirection failing.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-06 17:56:24 +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 996c49bcff qcap/tests: Add some more tests for smart tee pin connection.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-05 08:44:09 +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
Zebediah Figura d01e30052e qcap/tests: Expand tests for smart tee aggregation.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 11:21:18 +01:00
Zebediah Figura c366415360 strmbase: Merge enumpins.c into filter.c.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-29 09:45:56 +01:00
Zebediah Figura a6aea1cecd strmbase: Get rid of the "vtbl" parameter to strmbase_sink_init().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-13 09:57:00 +01:00
Zebediah Figura b5ddaa1337 qcap/avico: Use base sink connection methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-11 21:51:28 +01:00
Zebediah Figura 14a51f57b6 qcap/avimux: Use strmbase sink connection methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-11 21:51:28 +01:00
Francois Gouget 194851e560 qcap/tests: Avoid an unneeded lstrlenW() call.
Note that achName is an array field and thus cannot be NULL.

Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-10 20:59:19 +01:00