Commit Graph

130 Commits

Author SHA1 Message Date
Zebediah Figura 0f9e4cd660 strmbase: Get rid of the "filterVtbl" parameter to TransformFilter_Construct().
Reordering some functions to avoid forward declarations.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-15 09:36:15 +02:00
Jimi Huotari eca00491cd winegstreamer: Fix spelling of 'initialized' in a TRACE().
Signed-off-by: Jimi Huotari <chiitoo@gentoo.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 10:29:20 +02:00
Zebediah Figura cade211d06 winegstreamer: Use CONTAINING_RECORD instead of casting.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 10:29:17 +02:00
Zebediah Figura dad885e2b9 strmbase: Get rid of the "pfnGetPinCount" callback.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 10:29:15 +02:00
Zebediah Figura df05902b96 strmbase: Get rid of the "pfnBreakConnect" field from BaseOutputPinFuncTable.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 12:48:18 +02:00
Zebediah Figura 797672182b winegstreamer: Make GSTOutPin_BreakConnect() a local helper.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 12:48:13 +02:00
Zebediah Figura 9be7995448 strmbase: Get rid of the "pfnGetMediaTypeVersion" callback.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-10 16:04:25 +02:00
Zebediah Figura 7e6ab5e53c strmbase: Move "AttemptConnection" to the base source pin function table.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-10 15:54:15 +02:00
Zebediah Figura cf345813de winegstreamer: Convert media type registration to IRegistrar mechanism.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-23 23:52:39 +02:00
Nikolay Sivov 11401be90b winegstreamer: Actually pin module on initialization.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:47:42 +01:00
Nikolay Sivov d6fcab825b winegstreamer: Print current and build version of GStreamer.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:47:36 +01:00
Nikolay Sivov 9a9e521da8 winegstreamer: Get rid of allocated arguments array.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:47:13 +01:00
Nikolay Sivov f5908390a7 winegstreamer: Use init-once API to initialize library.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:47:00 +01:00
Michael Stefaniuc b618a6c6a7 winegstreamer: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 22:43:52 +01:00
Zebediah Figura f482b9463c winegstreamer: Add a missing debugstr_a.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-05 19:57:16 +02:00
Zebediah Figura b252ef91a2 winegstreamer: Use CBaseFilter::FindPin().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-04 14:56:24 +02:00
Zebediah Figura 10ff8f3082 strmbase: Implement QueryAccept() on top of CheckMediaType() for output pins too.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-04 11:01:40 +02:00
Zebediah Figura 577fd01249 winegstreamer: Remove unused callbacks.
These were left behind in the transition to 1.0.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-26 18:47:33 +01:00
Zebediah Figura 999c862f4f winegstreamer: Wait for GST_EVENT_CAPS instead of data.
Some decoders and files fail to find any valid frames during test-play, so
don't wait for data we might never receive.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-26 18:47:33 +01:00
Zebediah Figura 7ae35a04f4 winegstreamer: Zero-initialize the GstImpl filter.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-26 18:47:33 +01:00
Zebediah Figura c907d69cf0 winegstreamer: Avoid using the same event for multiple purposes.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-26 18:47:33 +01:00
Zebediah Figura 9550556f3c winegstreamer: Use ERR instead of FIXME for GStreamer errors.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00
Zebediah Figura 7bf59055cb winegstreamer: Make sure the pipeline state is NULL before removing output pins.
Source pads can be created asynchronously, so they might not be created until
during the call to gst_element_set_state(). Therefore don't copy This->ppPins
into a local variable.

This condition can be triggered by failing to demux a stream.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00
Zebediah Figura 3201cee735 winegstreamer: Don't wait for the no-more-pads signal if playback fails.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00
Zebediah Figura 2ea0d6ff81 winegstreamer: Check for failure from gst_element_set_state() instead of counting pads.
Especially since pads might be exposed before failure is reported.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00
Zebediah Figura 5374d5ca59 winegstreamer: Stop creating the filter if gstreamer fails to render.
Otherwise the push_data() thread will run and try to use resources we
never allocated.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-22 21:46:28 +01:00
Zebediah Figura 079d63e66c winegstreamer: Hold a reference to the filter in push_data().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-20 17:49:15 +01:00
Alistair Leslie-Hughes 5f5f9974f5 winegstreamer: Remove redundant check.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-06 19:27:09 +01:00
Bruno Jesus a8fc94d526 winegstreamer: Avoid a magic number for empty offset.
Signed-off-by: Bruno Jesus <bjesus@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-27 17:50:40 +01:00
Masanori Kakura 442653b94e winegstreamer: Avoid zero division in amt_from_gst_caps_video().
Signed-off-by: Masanori Kakura <kakurasan@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-25 16:14:15 +01:00
Akihiro Sagawa 38586dcf48 winegstreamer: Fix reference leaks.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:10:38 +01:00
Alex Henrie 5c54963482 Revert "winegstreamer: Remove redundant null check before g_error_free.".
This reverts commit 976ccb92ea.

This is what I get for not reading the documentation...if you call
g_error_free(NULL), it prints a nasty error message, which I am now
getting frequently.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-30 23:18:51 +01:00
Alex Henrie 424c86ad29 winegstreamer: Avoid double initialization.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-30 23:18:47 +01:00
Alex Henrie 976ccb92ea winegstreamer: Remove redundant null check before g_error_free.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-18 10:52:56 -06:00
Alex Henrie 474d5be546 winegstreamer: If no audio media type was allocated, don't free it.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-16 09:56:52 -06:00
Alex Henrie 8d4c724593 winegstreamer: Fix memory leaks in amt_from_gst_caps_video.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-16 09:56:48 -06:00
Akihiro Sagawa 8d3392a8ce winegstreamer: Always pass non-NULL preferred allocator to IAsyncReader::RequestAllocator.
This fixes video playback issue in a certain application.
The approach is very similar to 068593b238.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-09 16:33:32 +01:00
Nikolay Sivov 6dc6f7fe4d winegstreamer: Remove some casts that are not needed.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-27 13:21:52 +09:00
Jan Schmidt adde9fadeb winegstreamer: Fix refcounting for videoflip.
Creating an element and placing it in a bin gives overship of the
element refcount to the bin. Don't explicitly unref it after that.

Signed-off-by: Jan Schmidt <jan@centricular.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 22:32:06 +09:00
Jan Schmidt 4aefacd162 winegstreamer: Do conversion before flipping.
The videoflip element doesn't handle all formats, so some formats like
Intel Indeo 3 will cause errors and fail.

Add videoconvert before videoflip to do format conversion when it's
needed.

Signed-off-by: Jan Schmidt <jan@centricular.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 22:32:06 +09:00
Jan Schmidt 1db3b0bd25 winegstreamer: Don't store decodebin explicitly.
Once placed inside the container, decodebin will be managed and
destroyed by the container. There's no need to store it, or (especially)
unref it.

Signed-off-by: Jan Schmidt <jan@centricular.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 22:32:05 +09:00
Jan Schmidt 22bdf77486 winegstreamer: Don't replace internal bus.
Don't replace the bus on the decodebin inside our container, as it
causes problems with internal GStreamer element management.

Put the bus only on the top-level container.

Signed-off-by: Jan Schmidt <jan@centricular.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 22:32:01 +09:00
Akihiro Sagawa 6ea86fae55 winegstreamer: Fix a crash in Gstreamer_Mp3_SetMediaType().
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-14 01:02:59 +09:00
Zhenbo Li 0c0c86a8c7 winegstreamer: Remove a condition which is always true.
Signed-off-by: Zhenbo Li <litimetal@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-08 00:51:08 +09:00
Hadrien Boizard 68e45dd4d0 winegstreamer: Use BOOL type where appropriate.
Signed-off-by: Hadrien Boizard <h.boizard@laposte.net>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-02 13:24:50 +09:00
Andrew Eikum 29deae351b winegstreamer: Set offset on GstBuffer.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-19 23:42:16 +09:00
Andrew Eikum 1517bfb186 winegstreamer: Fix IQualityControl::Notify.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-19 23:42:13 +09:00
Andrew Eikum 0025649714 strmbase: Improve QualityControl tracing.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-18 10:37:08 +09:00
Andrew Eikum 6107b36e56 winegstreamer: Flip video output.
Gstreamer handles video top-down, but Windows's dshow handles it
bottom-up. So let's insert a videoflip filter to fix the discrepancy
instead of relying on videorenderer to flip it like we did before.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-14 14:39:55 +09:00
Andrew Eikum 008e4d3e86 winegstreamer: Add YUV to ARGB32 transformation filter.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-14 14:39:55 +09:00