Justin Kim [Fri, 14 Dec 2018 03:03:07 +0000 (12:03 +0900)]
examples: gl: generic: recordgraphic: Use gst/gl/gstglfuncs.h
https://gitlab.freedesktop.org/gstreamer/gst-build/issues/11
Justin Kim [Fri, 14 Dec 2018 03:02:36 +0000 (12:02 +0900)]
gl/meson: Add OpenGL dependency by OSX way
Otherwise, it fails to link with the message below:
```
ld: can't map file, errno=22 file '...'
```
https://gitlab.freedesktop.org/gstreamer/gst-build/issues/13
Olivier Crête [Thu, 13 Dec 2018 16:20:03 +0000 (11:20 -0500)]
rtcpbuffer: Validate the length of RTCP packets
Justin Kim [Wed, 1 Nov 2017 01:54:06 +0000 (10:54 +0900)]
rtcpbuffer: add support XR packet parsing
According to RFC3611, the extended report blocks in XR packet can
have variable length. To visit each block, the iterator should look
into block header. Once XR type is extracted, users can parse the
detailed information by given functions.
Loss/Duplicate RLE
The Loss RLE and the Duplicate RLE have same format so
they can share parsers. For unit test, randomly generated
pseudo packet is used.
Packet Receipt Times
The packet receipt times report block has a list of receipt
times which are in [begin_seq, end_seq).
Receiver Reference Time paser for XR packet
The receiver reference time has ntptime which is 64 bit type.
DLRR
The DLRR report block consists of sub-blocks which has ssrc, last RR,
and delay since last RR. The number of sub-blocks should be calculated
from block length.
Statistics Summary
The Statistics Summary report block provides fixed length
information.
VoIP Metrics
VoIP Metrics consists of several metrics even though they are in
a report block. Data retrieving functions are added per metrics.
https://bugzilla.gnome.org/show_bug.cgi?id=789822
Philipp Zabel [Wed, 12 Dec 2018 14:48:09 +0000 (15:48 +0100)]
glupload: dmabuf: use out_info to create allocation params for non-direct dmabuf uploads as well
Non-direct dmabuf uploads, just as direct dmabuf uploads, create EGL
images and thus GL textures of the same width as the imported image.
The input dmabuf line stride is not relevant to the resulting texture
in both cases.
This fixes the case where non-direct uploads of input dmabufs with line
stride larger than the width will for example cause glcolorconvert to
sample only the left part (width * bytes per pixel / stride) of the
image, causing a horizontally stretched and cropped output image.
Matthew Waters [Wed, 12 Dec 2018 12:25:58 +0000 (23:25 +1100)]
glmemory: normalize the internal format we pass into glTex* functions
Passing unsized formats sometimes breaks on embedded platforms
Take 2 at
694e30f858ebddae8c39cf934ff1b21ba7aa08e7,
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/49
Matthew Waters [Wed, 12 Dec 2018 12:14:56 +0000 (23:14 +1100)]
Revert "glformat: return sized formats in from_video_info"
This broke videotestsrc ! video/x-raw,format=NV12 ! glimagesink on
the desktop
Reverts: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/49
This reverts commit
694e30f858ebddae8c39cf934ff1b21ba7aa08e7.
Sebastian Dröge [Fri, 7 Dec 2018 17:13:59 +0000 (19:13 +0200)]
video-overlay-composition: Optimize premultiplication/unpremultiplication loops
Pull in video frame fields into local variables. Without this the
compiler must assume that they could've changed on every use and read
them from memory again.
This reduces the inner loop from 6 memory reads per pixels to 4, and the
number of writes stays at 3.
Per Forlin [Fri, 30 Nov 2018 12:37:26 +0000 (13:37 +0100)]
rtspconnection: Replace Auth header instead of append
gst_rtsp_connection_send() adds the Authorization header to the request.
If this function is being called multiple times with the same request
it will add one more Authorization header every time.
To fix to this issue do not append a new Authorization header on
top of an existing ones. Remove any existing Authorization headers first
and then add the new one.
Fixes gst-plugins-good#425
Jan Alexander Steffens (heftig) [Wed, 5 Dec 2018 09:35:33 +0000 (10:35 +0100)]
oggmux: Fix a maybe-uninitialized warning
Arch Linux, GCC 8.2.1+
20181127, CFLAGS='-Og -g3'
Jan Alexander Steffens (heftig) [Wed, 5 Dec 2018 09:35:33 +0000 (10:35 +0100)]
typefind: Fix a maybe-uninitialized warning
Arch Linux, GCC 8.2.1+
20181127, CFLAGS='-Og -g3'
Thibault Saunier [Wed, 5 Dec 2018 20:24:06 +0000 (17:24 -0300)]
Automatic update of common submodule
From cd1dee0 to 59cb678
Nicolas Dufresne [Wed, 5 Dec 2018 17:11:25 +0000 (12:11 -0500)]
gldeinterlace: Indentation fix
Nicolas Dufresne [Sun, 2 Dec 2018 01:45:31 +0000 (20:45 -0500)]
gl: window-gbm: Restore CRTC on close
This simply try and restore the state of the CRTC when the window
is closed. This is a bit cosmetic, but it allow resuming fbcon
when we exit.
Nicolas Dufresne [Sun, 2 Dec 2018 01:41:10 +0000 (20:41 -0500)]
gl: window-gbm: Remove unused private class member
The display class member is not used, not set and rather
confusing.
Nicolas Dufresne [Sun, 2 Dec 2018 01:30:16 +0000 (20:30 -0500)]
gl: window-gbm: Remove unneeded extra function
The cleanup function was only called in _close() which was only
calling that function. This indirection didn't make much sense.
Wangfei [Fri, 23 Nov 2018 06:40:27 +0000 (14:40 +0800)]
video: add Y410 pixel format.
This pixel format is packed format with 4:4:4 sample. And 10
available bits of Y/U/V and 2 available bits of alpha stored
in 4 Bytes.
Format defined in:
https://docs.microsoft.com/en-us/windows/desktop/medfound/10-bit-and-16-bit-yuv-video-formats
Carlos Rafael Giani [Wed, 3 Oct 2018 22:27:42 +0000 (00:27 +0200)]
gl/gbm: Add GST_GL_GBM_DRM_CONNECTOR environment variable
If multiple DRM connectors are connected, currently the first one is
picked. Improve this by adding an environment variable that allows for
choosing a connector by name. The connector name has been made so they
are compatible with modetest/modeprint DRM utilities.
Related to #490
Carlos Rafael Giani [Wed, 3 Oct 2018 22:22:02 +0000 (00:22 +0200)]
gl/gbm: Improve logging output
* List all connectors, modes, and encoders, even after picking one
* Add missing DRM_MODE_CONNECTOR_DPI string for logging and improve
existing strings
* Make sure the names matches modetest/modeprint from DRM utilities
Related to #490
Sebastian Dröge [Fri, 30 Nov 2018 10:40:19 +0000 (12:40 +0200)]
video: convertframe: Shut down pipeline asynchronously via the thread pool
If we use the main loop it might happen that the caller (e.g. our unit
test) already shut down the loop once the result was received and in
that case the pipeline would never ever be shut down (and our unit test
would hang).
Sebastian Dröge [Fri, 30 Nov 2018 10:39:43 +0000 (12:39 +0200)]
video: Split the success and error convert_frame_async() test into two tests
To make it more obvious which of the two is actually failing.
Marouen Ghodhbane [Thu, 29 Nov 2018 11:55:28 +0000 (12:55 +0100)]
audio-convert: Fix endianness conversion function init
Endianness conversion should be based on the sample width instead of the
sample depth.
Fixes #510
Matthew Waters [Fri, 30 Nov 2018 06:50:14 +0000 (17:50 +1100)]
glformat: return sized formats in from_video_info
Fixes green output on e.g. Android when converting between YUV->RGBA
Freyr666 [Fri, 23 Nov 2018 13:41:38 +0000 (16:41 +0300)]
opengl: gldeinterlace: remove interlace-mode from srcpad's caps
This fixes output caps format, so the output frames are not interlaced anymore
Philippe Normand [Wed, 28 Nov 2018 11:13:39 +0000 (11:13 +0000)]
gltestsrc: Run context query only during decide_allocation
Running the context query in _start and during the NULL->READY state transition
can fail because downstream elements might not be able to answer and thus the
source element would not be able to reuse downstream GLContext and GLDisplay.
This issue happened specifically when trying to use gltestsrc in playbin.
Tim-Philipp Müller [Thu, 29 Nov 2018 20:51:18 +0000 (20:51 +0000)]
video: fix typo in GstVideoCaptionType docs
Matthew Waters [Wed, 28 Nov 2018 09:46:05 +0000 (20:46 +1100)]
gl/meson: Allow for the use of libGL as well as OpenGL
OpenGL.framework and libGL are two different providers of a GL
implementation that can be linked into an application together.
Sebastian Dröge [Mon, 26 Nov 2018 10:29:41 +0000 (11:29 +0100)]
video-anc: G_GNUC_CHECK_VERSION was added in GLib 2.42
Define our own version if compiling with older versions. We currently
only require GLib 2.40.
Maciej Wolny [Mon, 19 Nov 2018 15:09:25 +0000 (15:09 +0000)]
gst-gl: Remove duplicate declarations
This causes 'redefinition of typedef ...' errors on GCC 4.5.3
Jordan Petridis [Wed, 28 Nov 2018 03:51:53 +0000 (05:51 +0200)]
Run gst-indent through the files
This is required before we enabled an indent test in the CI.
https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
Freyr666 [Fri, 23 Nov 2018 13:30:30 +0000 (16:30 +0300)]
opengl: gbm: Adds missing unrefs for gl context and drm node release in finalizer
This adds a few missing gst_object_unref calls for the opengl context in
gstglwindow_gbm_egl.c, as well as the missing close call for the
drm node fd in gst_gl_display_gbm_finalize.
Sebastian Dröge [Fri, 23 Nov 2018 11:25:43 +0000 (13:25 +0200)]
convertframe: Error out directly in the sync variant if the state change to PAUSED failed
Sebastian Dröge [Fri, 23 Nov 2018 11:22:44 +0000 (13:22 +0200)]
convertframe: Only go to PAUSED state for the async variant
We only care for the pre-roll sample.
Sebastian Dröge [Fri, 23 Nov 2018 11:21:23 +0000 (13:21 +0200)]
convertframe: Error out directly if changing the pipeline state to PLAYING failed
Sebastian Dröge [Fri, 23 Nov 2018 11:16:43 +0000 (13:16 +0200)]
convertframe: Use refcounting for the context
While this creates a circular reference between the pipeline and the
context, this ensures that the context stays alive for as long as any
callbacks could be called on it. The circular reference is broken once
the conversion is finished (or error, or timeout), which will then cause
everything to be freed.
Previously it was possible that a callback could be called on the
context right after it was freed already.
Also use only a single context structure, the second structure does not
simplify anything and duplicates storage.
Víctor Manuel Jáquez Leal [Thu, 22 Nov 2018 10:10:53 +0000 (11:10 +0100)]
gl: libs: glib might not define G_HAVE_ISO_VARARGS
This will fix the compiler warning
"G_HAVE_ISO_VARARGS" is not defined, evaluates to 0 [-Wundef]
Xavier Claessens [Wed, 21 Nov 2018 20:08:42 +0000 (15:08 -0500)]
Check for zlib header
Xavier Claessens [Wed, 21 Nov 2018 21:12:20 +0000 (16:12 -0500)]
Disable gl examples when we don't have OpenGL
Xavier Claessens [Mon, 19 Nov 2018 21:31:20 +0000 (16:31 -0500)]
Fix zlib detection when there is no pkg-config file
Tomasz Andrzejak [Tue, 13 Nov 2018 16:40:23 +0000 (17:40 +0100)]
audiodecoder: add API for setting caps on the source pad
This patch adds API in the audio decoder base class for setting the arbitrary
caps on the source pad. Previously only caps converted from audio info were
possible. This is particularly useful when subclass wants to set caps features
for audio decoder producing metadata.
Xavier Claessens [Wed, 17 Oct 2018 19:58:40 +0000 (15:58 -0400)]
gl: Fix subclassing of GstGLContextEGL
Philippe Normand [Thu, 15 Nov 2018 09:28:11 +0000 (11:28 +0200)]
video-format: Move Y210 format declaration to avoid ABI break
The Y210 format was added in the middle of the formats enum and list,
introducing an ABI break.
This issue was detected thanks to the gstreamer-rs test harness.
Linus Svensson [Tue, 16 Oct 2018 10:31:57 +0000 (12:31 +0200)]
rtpbasepayload: Update current seqnum for buffer lists
The current sequence number will be the one from the first RTP buffer
when a buffer list is pushed, but should be the last one.
Fixes #495
Nirbheek Chauhan [Sun, 28 Oct 2018 13:47:04 +0000 (13:47 +0000)]
meson: Cleanup old FIXMEs that relied on meson bugfixes
Sebastian Dröge [Wed, 7 Nov 2018 14:45:21 +0000 (16:45 +0200)]
video-anc: Add test for VBI encoder
Sebastian Dröge [Wed, 7 Nov 2018 13:12:13 +0000 (15:12 +0200)]
video-anc: Implement a VBI encoder
This allows writing out data from caption meta and similar to VBI
Sebastian Dröge [Fri, 9 Nov 2018 08:54:57 +0000 (10:54 +0200)]
video-anc: Add comment about our assumption of the ADF user data format
We assume here the same data format for the user data as for the
DID/SDID: 10 bits with parity in the upper 2 bits. In theory some
standards could define this differently and even have full 10 bits of
user data but there does not seem to be a single such standard after
all these years.
Sebastian Dröge [Thu, 8 Nov 2018 16:15:58 +0000 (18:15 +0200)]
video-anc: Add support for parsing composite ADF and check the packets' checksum
And add the checksum to the data we test in the unit test.
Sebastian Dröge [Wed, 7 Nov 2018 12:20:19 +0000 (14:20 +0200)]
video-anc: Fix documentation about SDID_block_number field
It was giving type 2 for both variants.
Sebastian Dröge [Wed, 7 Nov 2018 11:58:17 +0000 (13:58 +0200)]
video-anc: Add invalid-argument guards to public GstVideoVBIParser API
Jordan Petridis [Mon, 12 Nov 2018 11:55:24 +0000 (13:55 +0200)]
Add Gitlab CI configuration
This commit adds a .gitlab-ci.yml file, which uses a feature
to fetch the config from a centralized repository. The intent is
to have all the gstreamer modules use the same configuration.
The configuration is currently hosted at the gst-ci repository
under the gitlab/ci_template.yml path.
Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
Sebastian Dröge [Sun, 11 Nov 2018 06:52:27 +0000 (08:52 +0200)]
gl: Make sure that GST_GLSL_PROFILE_ANY gets the correct value in introspection
Currently in Python it would become a signed 64 bit value but should
actually be an unsigned 32 bit value with all bits set.
This is the same problem as with GST_MESSAGE_TYPE_ANY.
See https://bugzilla.gnome.org/show_bug.cgi?id=732633
Sjoerd Simons [Fri, 9 Nov 2018 08:32:49 +0000 (09:32 +0100)]
glupload: dmabuf: be explicit about gl formats used
Rather then letting gst_gl_memory_setup_buffer guess the GL format used
for an eglimage after importing a dmabuf be explicit about it. This
fixes issues where dmabuf import may have used another format then
gst_gl_format_from_video_info would guess on the basis of the available
GL extensions.
In particular on etnaviv the gst_gl_format_from_video_info would
assuming a luminance + alpha GL format is used for YUY2, but the dmabuf
import will always use RG88. Which causes images to end up somewhat pink when
displayed on the screen.
Sjoerd Simons [Fri, 9 Nov 2018 09:30:06 +0000 (10:30 +0100)]
gl/egl: Determine correct format on dmabuf import
When importing an egl image from dmabuf gst_gl_format_from_video_info
was used to work what the result GL format will be. Unfortunately that
will only work if the conventional format and the choosen DRM fourcc for
the format match up.
On etnaviv platforms there is no support for GL_EXT_texture_rg, so the
GL format chosen for YUY2 ends up being GST_GL_LUMINANCE_ALPHA. However
DRM does not do luminance + alpha as it's a legacy GL thing, so the
dmabuf import ends up using DRM_FORMAT_GR88.
To fix this, tie the DRM_FORMAT and the GL format together so they
always match up.
Edward Hervey [Fri, 9 Nov 2018 11:22:31 +0000 (12:22 +0100)]
urisourcebin: Avoid potential unitialized/wrong bitrate value
Only calculate and set the bitrate if all conditions are met.
Edward Hervey [Wed, 7 Nov 2018 15:28:28 +0000 (16:28 +0100)]
urisourcebin: Fix previous commit
rebase wasn't correct :)
Matthew Waters [Mon, 30 Jul 2018 07:56:18 +0000 (17:56 +1000)]
tests/urisourcebin: add get/set watermark test
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Mon, 30 Jul 2018 04:57:23 +0000 (14:57 +1000)]
urisourcebin: add a statistics property for queueing
It contains the minimum/maximum/average byte and time levels of the
queues inside this urisourcebin
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Mon, 30 Jul 2018 04:56:40 +0000 (14:56 +1000)]
uisourcebin: update forwarded properties on change
Allows changing queueing properties at runtime
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Mon, 30 Jul 2018 04:48:35 +0000 (14:48 +1000)]
urisourcebin: add low/high-watermark properties
These are forwarded to the contained queues.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Mon, 23 Jul 2018 04:14:32 +0000 (14:14 +1000)]
urisourcebin: limit the byte size of the queue based on the buffer-size
Use the bitrate advertised by queue2 to determine the limits to
set across possibly multiple queue2/downloadbuffer elements. e.g.
with two queue2's and a max-bytes based on the ratio of the
bitrate/cumulative_bitrate multiplied by the buffer_size set on urisourcebin.
This allows finer grained control over the buffer used by all the queue
elements inside urisourcebin. Instead of a maximum of
n_streams*buffer_size being used, only buffer_size will be used however
we will fallback to n_streams*buffer_size if one of the queue2's does
not have bitrate information.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
Matthew Waters [Wed, 27 Jun 2018 10:17:08 +0000 (20:17 +1000)]
urisourcebin: remove unused instance variable streams
Edward Hervey [Mon, 5 Nov 2018 11:00:55 +0000 (12:00 +0100)]
examples: Fix libgstvideo linking
Use the local libgstvideo (and not the system wide one)
Sebastian Dröge [Sun, 4 Nov 2018 19:17:28 +0000 (21:17 +0200)]
audio: const gpointer is not the same as gconstpointer/const void *
See https://bugzilla.gnome.org/show_bug.cgi?id=664491
Matthew Waters [Mon, 5 Nov 2018 05:35:12 +0000 (05:35 +0000)]
Update common submodule location without /git/ directory
Haihao Xiang [Mon, 5 Nov 2018 04:06:15 +0000 (12:06 +0800)]
Clone the code from gitlab
This fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/503
Sebastian Dröge [Thu, 1 Nov 2018 17:19:51 +0000 (19:19 +0200)]
video-anc: Add unit tests for VBI parsing
https://bugzilla.gnome.org/show_bug.cgi?id=797363
Sebastian Dröge [Thu, 1 Nov 2018 17:19:03 +0000 (19:19 +0200)]
video-anc: Fix bounds checks when parsing VBI data
We were reading more bytes than we allocated.
https://bugzilla.gnome.org/show_bug.cgi?id=797363
Nicolas Dufresne [Wed, 31 Oct 2018 18:30:14 +0000 (18:30 +0000)]
glupload: Only renegotiate if the caps are incompatible
There is new code that ensures that we renegotiate after an
uploader transition if the negotiated caps have changed.
The problem is that the raw uploader will not really try and
fixate the input caps, but instead of return a subset with the
only the supported target texture.
This had two effect, raw uploads was always done renegotiated
once and the raw upload unit test was now failing as it didn't
expect a renegotiation.
As it's a valid check, simply relax the gst_caps_is_equal() check
and use a gst_caps_is_subset() instead.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Nicolas Dufresne [Wed, 31 Oct 2018 18:26:42 +0000 (18:26 +0000)]
glupload: Do prepend the preferred caps
The direct dmabuf upload does color conversion, so when it transforms
the caps, it replaces the format with all formats found through the
format query. When this uploader can't be used, it makes the upstream
source pick a unsupported format.
To fix this, we only append the caps with a list of format. So the
source will only pick one of these formats if the downstream preferred
format is not supported. A negotiation failure after this would be
normal.
This fixes pipelines without a glcolorconvert element.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Nicolas Dufresne [Wed, 31 Oct 2018 18:24:33 +0000 (18:24 +0000)]
glupload-test: Don't use gboolean to store enums
The unit test makes mixed usage of ret value. Sometimes its does
stores an enum and at other moment a boolean. Also fix test
using boolean instead of the correct enum value.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Philippe Normand [Sun, 28 Oct 2018 14:46:15 +0000 (14:46 +0000)]
examples/playback-test: New entry for text-offset updates
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Philippe Normand [Sun, 28 Oct 2018 14:45:26 +0000 (14:45 +0000)]
playbin3: New text-offset property
This new property controls the synchronisation offset between the text and video
streams. Positive values make the text ahead of the video and negative values
make the text go behind the video.
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Philippe Normand [Sun, 28 Oct 2018 14:43:01 +0000 (14:43 +0000)]
playbin: New text-offset property
This new property controls the synchronisation offset between the text and video
streams. Positive values make the text ahead of the video and negative values
make the text go behind the video.
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Philippe Normand [Sun, 28 Oct 2018 14:42:31 +0000 (14:42 +0000)]
playsink: Add text-offset property
When the playsink contains a text chain this property controls the
synchronisation of the subtitles and video by controlling the underlying
subtitleoverlay::subtitle-ts-offset property.
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Philippe Normand [Sun, 28 Oct 2018 14:35:17 +0000 (14:35 +0000)]
subtitleoverlay: Add a subtitle-ts-offset property
This property controls the synchronisation offset between text and video in
nanoseconds, by updating the parser src pad offset.
https://bugzilla.gnome.org/show_bug.cgi?id=797134
Wangfei [Tue, 9 Oct 2018 07:25:37 +0000 (15:25 +0800)]
video: add Y210 pixel format.
This pixel format is packed format with 4:2:2 sample and 10
available bits of each channel.
https://bugzilla.gnome.org/show_bug.cgi?id=797267
Philipp Zabel [Wed, 17 Oct 2018 15:22:10 +0000 (17:22 +0200)]
glupload: dmabuf-direct: report driver limitations to debug log
Report in the DEBUG log if the driver does not support importing a given
format with linear modifiers non-externally.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Philipp Zabel [Wed, 17 Oct 2018 15:11:20 +0000 (17:11 +0200)]
glupload: dmabuf-direct: query formats before modifiers
The EXT_image_dma_buf_import_modifiers extension [1] states regarding
eglQueryDmaBufModifiersEXT:
The format must be one of those returned by the
eglQueryDmaBufFormatsEXT command.
To comply with this requirement eglQueryDmaBufFormatsEXT must be called
before eglQueryDmaBufModifiersEXT.
[1] https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Philipp Zabel [Wed, 17 Oct 2018 15:09:26 +0000 (17:09 +0200)]
glupload: debug output from dmabuf and dmabuf_direct upload transform_caps
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Philipp Zabel [Wed, 17 Oct 2018 13:47:07 +0000 (15:47 +0200)]
glupload: calculate DRM fourcc once for direct dmabuf upload
Calculate DRM fourcc and report to the DEBUG log about it only once
instead of three times in gst_egl_image_from_dmabuf_direct().
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Thu, 5 Jul 2018 08:17:27 +0000 (10:17 +0200)]
glupload: Implement direct dmabuf uploader
The idea is that some GPUs (like the Vivante series) can actually
perform the YUV->RGB conversion internally, so no custom conversion
shaders are needed. To make use of this feature, we need an additional
uploader that can import DMABUF FDs and also directly pass the pixel
format, relying on the GPU to do the conversion.
Based on patches from Nicolas Dufresne <nicolas.dufresne@collabora.com> and
Carlos Rafael Giani <dv@pseudoterminal.org>.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Wed, 4 Jul 2018 07:29:57 +0000 (09:29 +0200)]
gluploadelement: try to avoid dropping buffers
Without this, a buffer is dropped if glupload indicates that it is
necessary to reconfigure.
Avoid this by explicitly reconfiguring immediately and uploading the buffer
again.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Wed, 4 Jul 2018 07:21:00 +0000 (09:21 +0200)]
glupload: handle upload methods with different caps
If a upload method is selected then use it exclusively in transform_caps().
Also, reconfigure if the current caps don't match the current upload
method.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Thu, 5 Jul 2018 13:17:30 +0000 (15:17 +0200)]
glupload: allow system memory for dmabuf in transform_caps
This should not be necessary, but currently not all plugins that provide
dmabuf memory announce this with caps features, e.g. v4l2.
The static caps already contain the system memory. It didn't break before
because other upload methods provide the necessary transformation.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Wed, 4 Jul 2018 07:17:11 +0000 (09:17 +0200)]
glupload: try to use the last method after reconfigure
Reconfigure will trigger a set_caps which clears the upload method.
Remember the method in this case and start with it.
Wrap around once to try all methods if necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Michael Olbrich [Tue, 30 Oct 2018 11:25:02 +0000 (12:25 +0100)]
gl/egl: Add gst_egl_image_from_dmabuf_direct() function
The colorspace conversion happens during the upload so the necessary hints
must be provided to ensure that the conversion works correctly.
At least the Mesa Intel driver will create a texture without error but
produces an incorrect result. Use eglQueryDmaBufModifiersEXT() to check if
non-external upload is supported for the given format.
Based on a patch from Carlos Rafael Giani <dv@pseudoterminal.org>.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Nicolas Dufresne [Wed, 7 Jun 2017 16:00:08 +0000 (18:00 +0200)]
glmemory: Fix n_wrapped_pointers usage
gst_gl_memory_setup_buffer() was not properly using the number
of pointers to wrapped. This also fixes the validation, as we
only support 1 wrapper per view, or num_planes * views wrapper.
https://bugzilla.gnome.org/show_bug.cgi?id=783521
Johan Bjäreholt [Mon, 29 Oct 2018 08:18:35 +0000 (09:18 +0100)]
overlaycomposition: Fix implicit use of memset
https://bugzilla.gnome.org/show_bug.cgi?id=797353
Sebastian Dröge [Sun, 28 Oct 2018 17:41:38 +0000 (17:41 +0000)]
overlaycomposition: Add plugin inspect file
Philippe Normand [Sun, 28 Oct 2018 17:21:08 +0000 (17:21 +0000)]
examples: overlaycomposition: Fix Meson build
Sebastian Dröge [Mon, 1 Oct 2018 15:10:34 +0000 (18:10 +0300)]
overlaycomposition: New element that allows applications to draw GstVideoOverlayComposition on a stream
https://bugzilla.gnome.org/show_bug.cgi?id=797234
Sebastian Dröge [Wed, 8 Aug 2018 15:35:08 +0000 (17:35 +0200)]
parsebin: Add missing locks/unlocks of the chain mutex
Before freeing pending pads it is required to hold the mutex, that's
what is protecting the list of pending pads in other places.
https://bugzilla.gnome.org/show_bug.cgi?id=796935
Edward Hervey [Sat, 27 Oct 2018 13:48:13 +0000 (15:48 +0200)]
tests: Solidify tcp connection check
The previous failure was a timeout which was due to the sending pipeline
pushing test buffer *before* the remote client was accepted. We would
therefore never get the buffer on the other side.
While the client socket would indeed appear as "connected", this doesn't
mean that the remote server side did "accept" it (which is where we then
add it to the list of remote parties to which data will be sent).
The problem isn't with the element implementation, but to the nature of
TCP 3-way handshake.
In order to make the test reliable, wait for the sink to have accepted
the remote client (by checking the number of handles) before sending out
test buffers.
Roland Jon [Tue, 24 Jul 2018 10:40:36 +0000 (18:40 +0800)]
decodebin3: fix eos event leak
https://bugzilla.gnome.org/show_bug.cgi?id=796860
Sebastian Dröge [Wed, 17 Oct 2018 16:43:51 +0000 (19:43 +0300)]
oggdemux: Answer POSITION query
Seungha Yang [Thu, 27 Sep 2018 12:21:14 +0000 (21:21 +0900)]
meson: Replace empty configuration_data() with copy keyword
Use 'copy' keyword to avoid meson warning message.
Note that 'copy' keyword in configure_file() is available
since meson 0.47.0
https://bugzilla.gnome.org/show_bug.cgi?id=797298
Nirbheek Chauhan [Mon, 15 Oct 2018 14:15:46 +0000 (19:45 +0530)]
videometa: Log map errors with GST_ERROR, not DEBUG
Otherwise it's very easy to miss them when gst_video_frame_map() fails
Mathieu Duponchelle [Wed, 10 Oct 2018 21:15:49 +0000 (23:15 +0200)]
rtspconnection: do not duplicate authentication headers
rtsp_connection_send takes care of adding those already,
and some reverse proxies such as nginx will reject the request
altogether if the Authorization header is present twice,
even with the same value.
https://bugzilla.gnome.org/show_bug.cgi?id=797272
Stian Selnes [Wed, 10 Oct 2018 18:16:12 +0000 (14:16 -0400)]
rtpbasepayload: rtpbasedepayload: Add source-info property
Add a source-info property that will read/write meta to the buffers
about RTP source information. The GstRTPSourceMeta can be used to
transport information about the origin of a buffer, e.g. the sources
that is included in a mixed audio buffer.
A new function gst_rtp_base_payload_allocate_output_buffer() is added
for payloaders to use to allocate the output RTP buffer with the correct
number of CSRCs according to the meta and fill it.
RTPSourceMeta does not make sense on RTP buffers since the information
is in the RTP header. So the payloader will strip the meta from the
output buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=761947