Commit graph

20807 commits

Author SHA1 Message Date
Jordan Petridis 23da209431 ext/gl: change graphene default options
The type was changed upstream from a boolean to an autofeature

41ebe5fa61

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1087>
2021-05-16 13:18:33 +00:00
Jose Quaresma 56380af717 tests: use the real name of the videoscale test in GST_REGISTRY
The videoscale tests uses the same name as the one used in base tests.
Fix this and use the name of the videoscale test on the test environment GST_REGISTRY

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1146>
2021-05-14 23:24:20 +01:00
Thibault Saunier 3f5d580f4e playback: Handle sources with dynamic pads and pads already present
In case we already have a pad but more might be added later we were
ignoring the new pads added later, we should track the element
new pads and expose them as they are added.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1120>
2021-05-13 11:58:12 +00:00
Thibault Saunier 2e13d97dd6 playback: Stop giving "source" as name to sources
This makes it very hard to understand what source we are talking about

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1120>
2021-05-13 11:58:12 +00:00
Matthew Waters 7066c849e4 glcontext: add support for influencing the backing configuration
New API:
- gst_gl_context_get_config()
- gst_gl_context_request_config()

A GL context configuration is a GstStructure that has some well-known
names for common values that can also be extended in platform-specific
ways if necessary.

Wrapped OpenGL contexts may be able to retrieve the GL context
configuration depending on the platform.  If that information is
available, GstGLContext will attempt to create an context that matches
the shared OpenGL context config unless gst_gl_context_request_config()
has been called.

A new environment variable 'GST_GL_CONFIG' will be read to influence the
configuration chosen.  The environment variable will only be used as a
fallback if gst_gl_context_request_config() has not been called.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/809>
2021-05-13 16:44:28 +10:00
Matthew Waters dfd749c5da gl/context/egl: change header guard to be unique
The header guard in gst/gl/egl/gstglcontext_egl.h was the same as
gst/gl/egl/egl.h

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/809>
2021-05-13 16:19:42 +10:00
Matthew Waters f03071439f gl/api: improve the to/from string for GstGLAPI/GstGLPlatform
With unit tests now!

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/809>
2021-05-13 15:35:23 +10:00
Matthew Waters 3c3d978578 gl/framebuffer: expand documentation on valid usage
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/809>
2021-05-12 16:51:25 +10:00
Nicolas Dufresne 725763f8b2 opusdec: Add Converter class to hint gst-validate
opusdec have minimal conversion capability, adding the Converter class allow
gst-validate to behave properly and not spit an error when it notice that the
number of channels or rate miss-match in and out.

Related to https://gitlab.freedesktop.org/gstreamer/gst-integration-testsuites/-/merge_requests/102

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1142>
2021-05-11 15:06:39 -04:00
Haihao Xiang d15f88adc5 doc: update gst_plugins_cache.json
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1141>
2021-05-11 12:24:41 +08:00
Haihao Xiang 74129211e4 gl: add support for RGBP and BGRP formats
gst-launch-1.0 videotestsrc ! video/x-raw,format=RGBP ! glimagesink
gst-launch-1.0 videotestsrc ! video/x-raw,format=BGRP ! glimagesink

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1141>
2021-05-11 12:24:41 +08:00
Haihao Xiang ca046ca73c video: add support for RGBP and BGRP formats
The two RGB planar formats are used in OpenVino [1]

gst-launch-1.0 videotestsrc ! video/x-raw,format=BGRP ! fakesink
gst-launch-1.0 videotestsrc ! video/x-raw,format=RGBP ! fakesink

[1] https://docs.openvinotoolkit.org/latest/openvino_docs_optimization_guide_dldt_optimization_guide.html

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1141>
2021-05-11 12:24:41 +08:00
Haihao Xiang c778686a3c test: enlarge the number
This is to make sure the case can pass after adding new video formats.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1141>
2021-05-11 12:24:41 +08:00
Nicolas Dufresne d3ac7bfcbf codec: Introduce GstVideoCodecAlphaMeta
This meta hold one buffer of the same codec data as the parent memory. This
extra frame luma will be used as the alpha values for the final combined
frame. This is notably used to support VP8/VP9 alpha as defined in WebM and
matroska specification.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1128>
2021-05-10 16:33:11 -04:00
Nicolas Dufresne ac54f073d8 video: Sort includes in video.h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1128>
2021-05-05 16:20:37 -04:00
Sebastian Dröge 5a65f5f3b7 multihandlesink: Use the monotonic clock for detecting timeouts and connection durations
Otherwise real-time clock changes can wrongly trigger timeouts, or not
cause timeouts to happen in time.

Unfortunately real-time clock times still have to be kept track inside
the elements for the statistics. Switching those over to the monotonic
clock would cause behaviour changes from the application point of view.

The statistics are extended with fields with monotonic times though.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1137>
2021-05-05 16:12:38 +00:00
Sebastian Dröge 26b8a96b84 appsrc: Add test for testing the max-* and leaky-type properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1133>
2021-05-05 15:13:33 +00:00
Sebastian Dröge 02530e9d3e appsrc: Implement a leaky property similar to the queue element
This allows dropping the newest or oldest buffer when the internal queue
is full instead of blocking or continuing to grow.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1133>
2021-05-05 15:13:33 +00:00
Sebastian Dröge d987ec21f2 appsrc: Add new max-buffers / max-time / current-level-buffers / current-level-time properties
These work the same way as the corresponding properties on queue and
allow to control the internal buffer size of the appsrc in a more
flexible way.

Unlike in queue the max-buffers and max-time properties are 0 (i.e.
disabled) by default for backwards compatibility reasons.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1133>
2021-05-05 15:13:33 +00:00
François Laignel ca7a964fb1 Use gst_element_request_pad_simple...
Instead of the deprecated gst_element_get_request_pad.
2021-05-05 11:55:54 +03:00
Matthew Waters a77c316590 rtp/hdrext: correct gst_rtp_get_header_extension_list() docs
The return value is a list of GstElementFactory's that when
gst_element_factory_create()ed will create a GstRTPHeaderExtension.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/897

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1136>
2021-05-04 15:40:30 +10:00
Sebastian Dröge da9a3da8aa appsrc: Don't leak buffer list while wrongly unreffing buffer on EOS/flushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1134>
2021-05-03 05:42:07 +00:00
Sebastian Dröge fc7d65b107 app: Add gstappsrc.h to the enum headers in meson.build
It's already indirectly included but let's better be explicit here.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1134>
2021-05-03 05:42:07 +00:00
Stéphane Cerveau a7114f4b88 gst-play: add --start-position command line argument
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1126>
2021-04-30 15:54:24 +00:00
Nirbheek Chauhan b14347041a videotestsrc: Fix a leak when computing alpha caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1131>
2021-04-30 20:46:08 +05:30
Stéphane Cerveau 9b6a425aa4 playback-test: add window title
If playbin mode, display the current uri

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1122>
2021-04-29 23:47:05 +00:00
Matthew Waters 1ca747436f sdp/caps: support translating transport-cc rtcp-fb from caps to sdp attributes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1130>
2021-04-29 21:16:57 +10:00
Doug Nazar 7725c90d5c rtp: Fix request-extension signal call
Signal is registered as taking a guint however was being passed a
guint64 which fails on 32-bit.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1102>
2021-04-28 22:50:53 -04:00
Víctor Manuel Jáquez Leal 87193af4d5 xvimagesink: Handle cropping when copying frames.
Cropping was not handled properly when frames have to be copied to
xvimage's buffer pool, first because the crop meta were dropped, and
second because the allocated frame size in xvimage's buffer pool were
smaller than the incoming frame.

This patch updates xvimagesink's video info when propose_allocation()
is called, and copies the GstVideoCropMeta from source frame to
destination one.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1088>
2021-04-28 11:00:56 +00:00
Víctor Manuel Jáquez Leal c38bede8ba xvimagesink: Delay pool creation until it's needed.
Buffer pool is created every time setcaps() is called, but it's
required only when upstream doesn't use it, so it's only needed to
copy frames onto XV buffers.

This patch delay the creation of the buffer pool until it's frame copy
is required.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1088>
2021-04-28 11:00:56 +00:00
Matthew Waters c16412dd63 gl/download: add support for output memory:NVMM buffers
Currently RGBA-only.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1071>
2021-04-28 12:44:38 +10:00
Matthew Waters 94f0d9c69b gl/bufferpool: add api for retrieving the configure gl allocation params
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1071>
2021-04-28 12:44:38 +10:00
Matthew Waters 2f35aeca8c glupload: add support for uploading memory:NVMM buffers
Currently RGBA-only.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1071>
2021-04-28 12:42:15 +10:00
Matthew Waters f770982635 glupload: guard against glEGLImageTexture2D not existing
e.g. if targetting EGL/opengl, we would attempt to use this GLES
function when wrapping EGLImage's.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1071>
2021-04-28 12:42:15 +10:00
Xavier Claessens 4ef5c91697 gstgl: Fix build when Meson >= 0.58.0rc1
"implicit_include_directories: false" now also means that current build
directory is not added to include paths by default any more. We have to
add it manually because we have some custom_target() that generate
headers in current build directory.

See https://github.com/mesonbuild/meson/issues/8700.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1125>
2021-04-27 08:26:18 +00:00
Doug Nazar b14c2e6fb0 opengl: Silence macOS OpenGL deprecations
As of macOS 10.14 the entire OpenGL system is deprecated. No need to
log the general warnings about it. Specific warnings are still enabled.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1123>
2021-04-24 22:26:36 -04:00
Stéphane Cerveau 403e0024f1 playback-test: fix seek crash
check that app->seek_format exists before seeking.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1095>
2021-04-23 11:43:17 +02:00
Doug Nazar 3676a2c6de tcp: Rework client start error handling.
Ensure errors are cleaned up properly at the right level.
Abort connection attempts if we're cancelled.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1115>
2021-04-22 07:17:06 +00:00
Jakub Adam 538e2ef1d0 rtpbasedepay: fix locking of GstRTPHeaderExtension
'ext' object unlocked if gst_rtp_header_extension_read() fails was never
locked in the first place.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1118>
2021-04-21 17:34:18 +02:00
Stéphane Cerveau 74346080ba vorbis: avoid duplicate symbols
Use TREMOR define to avoid duplicate symbols
of ivodebis and vorbis plugins when
static linking GStreamer.

Rearrange debug category init.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1116>
2021-04-21 12:40:53 +02:00
Seungha Yang e785560687 uridecodebin: Don't force floating reference for future reusable decodebin
uridecodebin assumes that refcount of decodebins stored in pending_decodebins
are floating but it might not be true in case that refcount of the decodebin
was touched in other places. To avoid the floating refcount issue,
hold strong reference.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1113>
2021-04-21 02:40:06 +09:00
Seungha Yang 3a1816bf3f uridecodebin: Use gst_object_ref instead of g_object_ref
It's more debugging friendly (tracer for example)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1113>
2021-04-21 02:02:48 +09:00
Jordan Petridis df88b10c7f gstvideoencoder: make sure the buffer is writable before modifying metadata
Similar to ae8d0cf3ac

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1112>
2021-04-20 16:01:15 +00:00
Doug Nazar dd12c9b230 tcp: Convert tcpclientsink to new helpers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1105>
2021-04-20 09:49:23 +00:00
Doug Nazar 13743353cb tcp: Convert tcpclientsrc to new helpers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1105>
2021-04-20 09:49:23 +00:00
Doug Nazar 0fefbc932a tcp: Convert tcpserversink to new helpers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1105>
2021-04-20 09:49:23 +00:00
Doug Nazar 9ad0566c37 tcp: Convert tcpserversrc to new helpers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1105>
2021-04-20 09:49:23 +00:00
Doug Nazar 408b2fa634 tcp: Add helper functions to lookup hostnames and create sockets.
Lookup will now maintain the full list of possible IP address(es).
We can now iterate over all available addresses in case certain
address families (IPv6) are disabled or try connecting to additional
addresses for the clients.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1105>
2021-04-20 09:49:23 +00:00
Doug Nazar 27c392bda3 tests/tcp: Fail if unable to start pipelines.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1105>
2021-04-20 09:49:23 +00:00
Doug Nazar d4bf6b36d2 tcp: cleanup files
consolidate gsttcp.h & gsttcpelements.h
rename gsttcpelement.c to match header

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1105>
2021-04-20 09:49:23 +00:00