David Bender
b4bdb75a80
gstglwindow_x11: fix resize
...
This patch was taken from #629#note_178766, the comment made
at the time was:
The root issue is a mismatch between the initialization of render_rect
in GstGLWindowX11Private and what's expected in the draw_cb function.
Because render_rect is not explicitly initialized to a width and height
of -1 (unlike gstglwindow_wayland_egl.c which does initialize to -1),
the less-than check for explicitly-set render_rect at gstglwindow_x11.c:453-454
always fails, even when the parent_win has been set and the render rectangle
has never been set.
Maybe this came from copying the similar check in the wayland code? Regardless,
I think the correct inequality should be '<= 0' (on both lines).
Alternatively initialization could be changed, but other sinks, e.g.
xvimagesink don't appear to use -1 to mean "unset" render_rect this way.
The issue can be reproduced by running the example in
tests/examples/gl/qt/videooverlay/ on X11, and resizing the output
window
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/701 >
2020-06-12 01:36:22 +00:00
Mathieu Duponchelle
a90968997a
videooverlay: chevrons don't need to be escaped in code examples
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/700 >
2020-06-11 22:19:09 +00:00
Thibault Saunier
3354b3ebbb
decodebin3: Lower error message to debug
...
Debugging leftover
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/699 >
2020-06-11 16:39:23 -04:00
Jordan Petridis
1b567af051
libvisual: use gst_element_class_set_metadata when passing dynamic strings
...
gst_element_class_set_metadata is meant to only be used with
static or inlined strings, which isn't the case for this element
resulting in use-after-free later on.
https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c#gst_element_class_set_static_metadata
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/698 >
2020-06-11 20:57:58 +03:00
Nirbheek Chauhan
30509252ca
meson: Use the tests option for validate
...
This is what gstreamer core does too, and avoids a configure error
when tests are disabled globally. Also print a useful error when
gst_tester is not found from the gstreamer subproject.
This broke in https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/667
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/697 >
2020-06-11 14:01:01 +05:30
Thibault Saunier
4986138c16
docs: Update plugins cache
2020-06-10 13:37:09 +00:00
Guillaume Desmottes
008d72d5da
audio: add missing space in GST_AUDIO_FORMATS_ALL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/694 >
2020-06-10 10:43:42 +02:00
Thibault Saunier
cef7c833cd
docs: Update plugins cache
2020-06-09 09:19:40 -04:00
Guillaume Desmottes
62254f93a3
video: sort formats by quality
...
Will ensure that we pick the "best" format when negotiating caps.
Fix #649
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/689 >
2020-06-09 08:09:58 +00:00
Guillaume Desmottes
e2f6b85fd9
audio: sort formats by quality
...
Will ensure that we pick the "best" format when negotiating caps.
Fix #649
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/689 >
2020-06-09 08:09:58 +00:00
Guillaume Desmottes
1b4ab9f033
tests: enforce I420 format
...
Tests are assuming video is I420 but are not actually enforcing it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/689 >
2020-06-09 08:09:58 +00:00
Thibault Saunier
7edbc3fd7d
uridecodebin3: Let decodebin do its stream selection if no one answers
...
If no one answers our `select-stream` signal, uridecodebin3 should
behave the same way as `decodebin3` and let decodebin do its own stream
selection.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/666 >
2020-06-08 12:54:05 -04:00
Thibault Saunier
b41b87522f
decodebin3: Avoid overriding explicit user selection
...
In case the user set a list of streams to select or answer explicitly
to all 'select-stream' event, we should respect his choice and not
try to add a stream per type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/666 >
2020-06-08 12:54:05 -04:00
Edward Hervey
78444fc622
tests: Avoid hang with decodebin test
...
When adding elements dynamically to a pipeline one should never guess what the
curren/target state is, and instead use `gst_element_sync_state_with_parent()`.
Fixes racy hang when running within valgrind
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/692 >
2020-06-08 08:11:00 +02:00
Seungha Yang
9c3cff287e
playbin: Fix wrong AV element pair selection when rank is very large value
...
If user set very high rank to an element (e.g., integer max),
integer overflow can happen while multiplication operation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/690 >
2020-06-06 20:22:28 +09:00
Mathieu Duponchelle
cc516695b0
plugins: uddate gst_type_mark_as_plugin_api() calls
2020-06-06 00:41:17 +02:00
Sebastian Dröge
954a314ca8
videoencoder: Add test for min-force-key-unit-interval property
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684 >
2020-06-05 10:04:43 +00:00
Sebastian Dröge
76364ebfe7
videoencoder: Also don't request a new key-unit if we already got one after the requested running time
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684 >
2020-06-05 10:04:43 +00:00
Sebastian Dröge
19fecabdf7
videoencoder: Don't request another keyunit if another one is pending or we requested one for a future time already
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684 >
2020-06-05 10:04:43 +00:00
Sebastian Dröge
c5b081edc2
videoencoder: Add min-force-key-unit-interval property
...
This allows configuring the minimum interval between subsequent
force-key-unit requests and prevents a big bitrate increase if a lot of
key-units are requested.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684 >
2020-06-05 10:04:43 +00:00
Sebastian Dröge
931b5ad996
videoencoder: Add test for correct force-keyunit event handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684 >
2020-06-05 10:04:43 +00:00
Sebastian Dröge
01eecc69bd
videoencoder: Fix force-keyunit handling in test
...
This now behaves according to the videoencoder API instead of some other
signalling.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684 >
2020-06-05 10:04:43 +00:00
Sebastian Dröge
6260c4be7e
videoencoder: When pushing headers as part of a keyframe mark the first header as keyframe
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684 >
2020-06-05 10:04:43 +00:00
Sebastian Dröge
401d56a6a7
videoencoder: Handle all matching force-keyunit events at once
...
Previously we only handled one event at a time, which could lead to the
following two suboptimal situations:
- frame 0 at 20ms, frame 1 at 40ms and two force-keyunit events at 10ms
and 15ms. We would create a new keyframe for both of the frames.
- 100 force-keyunit events with running-time NONE would cause all
following 100 frames to be made into a keyframe.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684 >
2020-06-05 10:04:43 +00:00
Sebastian Dröge
9b1f1f431a
videoencoder: Sort force-keyunit-events by their running time
...
That way we can more easily work with the whole list without iterating
over all of the elements.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/684 >
2020-06-05 10:04:43 +00:00
Edward Hervey
b087415757
uridecodebin: Dont link random pads
...
When linking source pads to decodebin, make sure we use the *specified* new
source pad and not some random one.
This avoids ending up with source pads being unlinked.
Main cause of random timeouts with rtsp change_state_intensive validate tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/687 >
2020-06-05 09:06:05 +00:00
Stéphane Cerveau
42dcbcd61f
video-hdr: fix memset warning
...
Fix warning on fedora arm64 target
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/685 >
2020-06-05 08:13:32 +00:00
Nicolas Dufresne
8e3c4a5d5a
video: Fix NV12_64Z32 number of component
...
This format has 3 components, just like NV12.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/686 >
2020-06-04 20:12:59 +00:00
Thibault Saunier
c2610d7f41
doc: Add a minimal GstVideoMultiviewFlagsSet documentation
2020-06-03 22:44:24 -04:00
Thibault Saunier
7495006efa
doc: Require hotdoc >= 0.11.0
2020-06-03 22:44:23 -04:00
Sebastian Dröge
b952fc5516
docs: Update gst_plugins_cache.json
2020-06-03 22:44:23 -04:00
Mathieu Duponchelle
e666c9ec04
plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
2020-06-03 22:44:23 -04:00
Sebastian Dröge
fb7ab33e03
videoencoder: Simplify header buffer metadata updating
...
Instead of doing a shallow copy of the list just to call make_writable()
on each buffer, do that inline in the same loop and modify the list
contents.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/683 >
2020-06-03 16:21:41 +03:00
Sebastian Dröge
caaa5ac864
video: Use GQueue instead of plain GList in a few places
...
Also not optimal but at least simplifies the code a bit and doesn't
require g_list_length() and g_list_append() in a few places.
For 2.0 there are some more candidates to change but unfortunately
they're currently part of the API.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/683 >
2020-06-03 16:21:41 +03:00
Sebastian Dröge
4fcc1121e6
video-format: RGB16/15 are not 16 bit per component but only 5.333 and 5
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/682 >
2020-06-02 14:38:55 +00:00
Guillaume Desmottes
02fd2f12f9
audio: add gst_audio_make_raw_caps()
...
More binding friendly version of GST_AUDIO_CAPS_MAKE().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/676 >
2020-06-02 11:57:42 +00:00
Guillaume Desmottes
58a6303a5f
audio-format: remove empty space prefix from GST_AUDIO_FORMATS_ALL
...
This space prevent deserialization using gst_value_deserialize().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/676 >
2020-06-02 11:57:42 +00:00
Guillaume Desmottes
75411ce1e7
audio-format: add gst_audio_formats_raw()
...
The existing GST_AUDIO_FORMATS_ALL macro is not binding friendly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/676 >
2020-06-02 11:57:42 +00:00
Guillaume Desmottes
84e0689d58
video: add gst_video_make_raw_caps()
...
More binding friendly version of GST_VIDEO_CAPS_MAKE().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/676 >
2020-06-02 11:57:42 +00:00
Guillaume Desmottes
f42e67c639
video-format: add gst_video_formats_raw()
...
The existing GST_VIDEO_FORMATS_ALL macro is not binding friendly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/676 >
2020-06-02 11:57:42 +00:00
Matthew Waters
51b057ea26
glcontext/eagl: handle sending one message during shutdown
...
gst_gl_window_quit() will attempt to send a message but will be called
from GstGLContext's finalize handler and so the weak ref that backs
gst_gl_window_get_context will return NULL as it has already been
cleared. We need that context in send_message_async to decide whether
to run the provided callback immediately or queue in GCD
This is the equivalent commit for iOS as:
7f59cefafb
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/618
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/681 >
2020-06-02 14:32:03 +10:00
Matthew Waters
c506adc950
gl/eagl: don't access UIkit objects on the main thread
...
This means we cannot access [view layer] or view.bounds from the OpenGL
thread. This also means that we need to call the main thread when
setting the window handle. However, we cannot perform that
synchronously as that may deadlock with the application performing the
set_window_handle() call.
We need to defer the actual update and run it asynchronously and wait
for the window handle update internally at each point it is needed.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/372
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/681 >
2020-06-02 14:32:03 +10:00
Matthew Waters
a57380d718
gl/ios: fix typo GS_GL -> GST_GL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/681 >
2020-06-02 14:32:03 +10:00
Thibault Saunier
0c75ea0858
videorate: Update QoS events taking into account our rate
...
Otherwise there is a mismatch between the QoS values and what upstream
would expect, leading to too much buffer dropping in video decoders in
case rate < 1.0 or not enough buffer dropping in case rate > 1.0
Adding validate tests with and without decoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/679 >
2020-06-01 07:07:31 +00:00
Thibault Saunier
6499e2afa5
videorate: Fix changing rate
property during playback
...
We need to take into account the base_ts to compute next_ts and it needs
to be updated on rate change.
This introduces `pending_rate` so that change rate is properly handled
in the streaming thread in a safe way.
Added tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/679 >
2020-06-01 07:07:31 +00:00
Thibault Saunier
d846a1ac1c
tests:validate: Run all test using a simple fakesink
...
`fakevideosink` is in -bad and thus not available here.
Update the expectation files as video metas are not negotiated anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/677 >
2020-05-29 19:21:43 +00:00
Víctor Manuel Jáquez Leal
165f801bb0
libs: gl: silence gir compiler
...
There were a couple complains of the gir compiler on these gstgl
files.
* Added namespace to public macros, even if they are helpers.
* Removed a misused private tag
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/678 >
2020-05-29 13:35:56 +02:00
Michael Gruner
9a94b4cbc1
videoscale: reorder code to avoid indent missmatches
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/548 >
2020-05-29 00:44:07 +00:00
Michael Gruner
c0ca12a3fb
videoscale: transform size sensitive metas
...
Currently, videoscale just drops all metas that have other tags
besides video. However videoscale wont change the colorspace or
the orientation of the video so metas tagged as such may be
copied safely. Additionaly, given that videoscale will change
the frame size, we invoke the meta transform implementation
to give it the opportunity to scale accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/548 >
2020-05-29 00:44:07 +00:00
Seungha Yang
7d7108f35d
tests: audiosink: Test class extension struct
...
Test a vfunc which belongs to GstAudioSinkExtension struct.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/547 >
2020-05-28 19:14:29 +09:00