gst-plugins-base merge requestshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests2021-09-24T13:19:39Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1244video: Add support for linear 16x16 NV12 tiles2021-09-24T13:19:39ZEzequiel Garciavideo: Add support for linear 16x16 NV12 tilesThis adds linear 16x16 NV12 tiled format. This format is exposed
by Conexant Video Capture cards and also Allwinner V3s CSI device.
Note that V4L2 exported the format as V4L2_PIX_FMT_HM12,
prior to being converted to NV12_16L16 nomenclat...This adds linear 16x16 NV12 tiled format. This format is exposed
by Conexant Video Capture cards and also Allwinner V3s CSI device.
Note that V4L2 exported the format as V4L2_PIX_FMT_HM12,
prior to being converted to NV12_16L16 nomenclature.
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1237videodecoder: Fix unexpected SEGMENT event drop before sending GAP event2021-09-24T13:19:36ZSeungha Yangseungha@centricular.comvideodecoder: Fix unexpected SEGMENT event drop before sending GAP eventIn case that decoder received multiple frames without output,
priv->current_frame_events would not hold any event object
but it's been moved to GstVideoCodecFrame object so that it can be sent
when corresponding frame is decoded. So if n...In case that decoder received multiple frames without output,
priv->current_frame_events would not hold any event object
but it's been moved to GstVideoCodecFrame object so that it can be sent
when corresponding frame is decoded. So if no frame was outputted
before the GAP event, the oldest frame is likely holding SEGMENT event.
To ensure SEGMENT -> GAP event ordering, baseclass should check/push pending
events on the oldest pending frame.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1236glupload: Filter formats by GL context support2021-09-24T13:19:36ZRafał Dzięgielglupload: Filter formats by GL context supportCheck which formats are supported by used GL context and filter them. This makes `videoconvert` always choose one of the supported by user hardware formats.
This MR moves supported GL formats init from `glcolorconvert` into private head...Check which formats are supported by used GL context and filter them. This makes `videoconvert` always choose one of the supported by user hardware formats.
This MR moves supported GL formats init from `glcolorconvert` into private header, so it can be reused in `glupload` without duplicating code.
This change makes below pipeline work:
```sh
MESA_GLES_VERSION_OVERRIDE=2.0 GST_GL_API=gles2 gst-launch-1.0 videotestsrc ! video/x-raw,format=I420_10LE ! videoconvert ! glupload ! glcolorconvert ! glimagesinkelement
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1225gst-device-monitor: Do not serialize string properties in the output & quote ...2021-09-24T13:19:34ZNirbheek Chauhannirbheek.chauhan@gmail.comgst-device-monitor: Do not serialize string properties in the output & quote launch string for the current shell```
gst-device-monitor: Do not serialize string properties in the output
These properties are supposed to be readable by humans, and extraneous
quoting makes it harder to figure out what the raw string is.
```
See: https://gitlab.freede...```
gst-device-monitor: Do not serialize string properties in the output
These properties are supposed to be readable by humans, and extraneous
quoting makes it harder to figure out what the raw string is.
```
See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/922
```
gst-device-monitor: Detect the shell and quote launch string
GstValue serialization is not the same as shell quoting, and raw
strings will also not yield a usable launch string. We need to detect
the string and quote the launch string.
```
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/922https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1147Draft: tests: add support for install the tests2023-05-25T15:17:53ZJose QuaresmaDraft: tests: add support for install the testsfollow-up https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789follow-up https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1139allocators: support mmap offset in fd_allocator to fix issues with pipewiresrc2022-05-25T08:06:32ZWim Taymansallocators: support mmap offset in fd_allocator to fix issues with pipewiresrcMake a new gst_fd_allocator_alloc_full() that allows an offset
argument that is then used as the offset for mmap().Make a new gst_fd_allocator_alloc_full() that allows an offset
argument that is then used as the offset for mmap().https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1109eglimage: Do not set modifier obviously when importing EGL image for DMA.2021-09-24T13:19:21ZHe Junyaneglimage: Do not set modifier obviously when importing EGL image for DMA.The gst_egl_image_from_dmabuf_direct_target always has the assumption
that the input surface/buffer is a linear one. It always set the modifier
to the DRM_FORMAT_MOD_LINEAR. But in fact, the input surface/buffer may
be a non-linear one. ...The gst_egl_image_from_dmabuf_direct_target always has the assumption
that the input surface/buffer is a linear one. It always set the modifier
to the DRM_FORMAT_MOD_LINEAR. But in fact, the input surface/buffer may
be a non-linear one. For example:
gst-launch-1.0 -vf filesrc location=xxx.bits ! h264parse ! vah264dec \
! vapostproc ! video/x-raw\(memory:DMABuf\) ! glimagesink
generates garbage images in the EGL mode because of the tiling issue. The
output of vapostproc is a tiling one on Intel's platform, whose modifier is
I915_FORMAT_MOD_Y_TILED, but here we still force to set the modifier to the
DRM_FORMAT_MOD_LINEAR. It is not correct.
On current platforms, the 3D driver has the ability to detect and set the
correct modifier if we do not obviously specify the modifier in the attributes.
The furture platforms may fail to do the detect and we need to specify it
in the caps. We should enable the modifier setting when that is ready.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1055WIP: video-color: Define color matrix for BT2020 constant luminance system an...2021-09-24T13:19:19ZSeungha Yangseungha@centricular.comWIP: video-color: Define color matrix for BT2020 constant luminance system and ICtCp color spaceSpecifications differentiate const and non-const variant of BT2020
matrix coefficients.
| GstVideoColorMatrix | ISO/IEC 23001-8 (used by HEVC/AVC) | MS MediaFoundation | V4L2 | FFMPEG |
|-------------------------------|--...Specifications differentiate const and non-const variant of BT2020
matrix coefficients.
| GstVideoColorMatrix | ISO/IEC 23001-8 (used by HEVC/AVC) | MS MediaFoundation | V4L2 | FFMPEG |
|-------------------------------|------------------------------------|-------------------------|-------|--------|
|`GST_VIDEO_COLOR_MATRIX_BT2020`| 9 | `MFVideoTransFunc_2020` | `V4L2_YCBCR_ENC_BT2020` | `AVCOL_SPC_BT2020_NCL` |
|`GST_VIDEO_COLOR_MATRIX_BT2020_CONST` (newly added)| 10 | `MFVideoTransFunc_2020_const` | `V4L2_YCBCR_ENC_BT2020_CONST_LUM` | `AVCOL_SPC_BT2020_CL` |
Note that the way of `MS MediaFoundation` looks a bit awkward because `const` vs. `non-const` is distinguished via transfer function category, not color-matrix.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1028Draft: video-hdr: update doc and follow CTA-861G2021-09-24T13:19:18ZStéphane Cerveauscerveau@igalia.comDraft: video-hdr: update doc and follow CTA-861GUpdate the defines to follow CTA-861G instead
of ATSC A/341:2019–2094-40Update the defines to follow CTA-861G instead
of ATSC A/341:2019–2094-40https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1023video: Add support for GRAY12_P and GRAY12_U2023-11-25T01:28:01ZDetlev Casanovavideo: Add support for GRAY12_P and GRAY12_UThis adds support for packed and unpacked 12 bits grayscale video
formats. These formats are used by some Raptor SWIR cameras and other
Cameralink cameras.
Signed-off-by: Detlev Casanova <dec@xiphos.com>This adds support for packed and unpacked 12 bits grayscale video
formats. These formats are used by some Raptor SWIR cameras and other
Cameralink cameras.
Signed-off-by: Detlev Casanova <dec@xiphos.com>https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/997rawbayerparse: added plugin based on rawvideoparse2021-11-15T10:08:20ZDaniel Knoberawbayerparse: added plugin based on rawvideoparseCreated merge request based on https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/423 with small changes for meson build system.
See also:
http://gstreamer-devel.966125.n4.nabble.com/Error-in-bayer2rgb-pipeline-td4678094...Created merge request based on https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/423 with small changes for meson build system.
See also:
http://gstreamer-devel.966125.n4.nabble.com/Error-in-bayer2rgb-pipeline-td4678094.htmlhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/984videofilter: Need consider basetransform class virtual function.2021-09-24T13:19:10ZKevin Songvideofilter: Need consider basetransform class virtual function.Subclass maybe override video filter transform founction.
Signed-off-by: Bing Song <bing.song@nxp.com>Subclass maybe override video filter transform founction.
Signed-off-by: Bing Song <bing.song@nxp.com>https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/980GL: Import DMA buffer from downstream into OpenGL2023-02-02T11:26:02ZMarian CichyGL: Import DMA buffer from downstream into OpenGLWhen using OpenGL in a pipeline, e.g. glupload ! glcolorconvert ! gldownload, we usually create a texture target which we use as our outbuffer after applying GL transformations on the input data. When downloading this output buffer back ...When using OpenGL in a pipeline, e.g. glupload ! glcolorconvert ! gldownload, we usually create a texture target which we use as our outbuffer after applying GL transformations on the input data. When downloading this output buffer back to the non-GL-context, gstreamer uses glReadPixels to copy-resolve the texture data into a regular buffer.
Calling glReadPixels at this point does lead to blocking, as OpenGL is single-threaded by nature and this thread will wait for glReadPixels to finish, even though we should be able to continue the pipeline while resolving the output-data in parallel, substantially increasing the throughput.
This patchstack achieves this by importing a DMA buffer from the downstream-bufferpool into the GL-part of the pipeline. From this buffer, we generate EGLImages and from the EGLImages, we create another buffer acting as our texture render target. Due to the definition of EGLImages, the render target and the downstream-buffer act as EGLImage siblings, and resolving the texture data into the downstream-buffer is done by the underlying graphics driver, e.g. Mesa.
To achieve the import from downstream, a parent-pool for a GstGLBufferPool is introduced. The gstgldownloadelement looks for a downstream-pool when deciding the allocation and creates its own pool when proposing an allocation. Both pools can now be linked to achieve the EGLImage sibling connection. The patchstack also introduces a sanity-check in gstglframebuffer.c to validate whether the outbuffer can be used as a render target.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/965socketsrc: Connect to unix socket with socket-path parameter2021-09-24T13:18:59ZPiotr Gasiorowskisocketsrc: Connect to unix socket with socket-path parameterThis adds additional "socket-path" parameter to socketsrc element.
The parameter is supposed to be a path to existing unix socket,
and if provided, it will connect to specified socket from
gst_socketsrc_start() to receive data.
Previousl...This adds additional "socket-path" parameter to socketsrc element.
The parameter is supposed to be a path to existing unix socket,
and if provided, it will connect to specified socket from
gst_socketsrc_start() to receive data.
Previously only used internally by tcpclientsrc this makes socketsrc
a first-class citizen source element for the pipeline.
The implementation of gst_socketsrc_start() and gst_socketsrc_stop()
is largely based on tcpclientsrc itself with the main difference being
usage of AF_UNIX sockets instead of AF_INET/AF_INET6.
Example usage where raw frames are pushed to unix socket
`gst-launch-1.0 socketsrc socket-path=/tmp/video.socket ! autovideosink`
or more specifically:
`gst-launch-1.0 socketsrc socket-path=/tmp/video.socket ! rawvideoparse use-sink-caps=false width=360 height=288 format=y42b frame-size=207360 framerate=25/1 ! autovideosink`https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/958dmabufheaps: memory allocator based on dma-buf heaps.2021-11-26T08:24:48ZKevin Songdmabufheaps: memory allocator based on dma-buf heaps.dma-buf heaps can allocate CMA memory. it can be used for HW.dma-buf heaps can allocate CMA memory. it can be used for HW.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/957audioconvert: check if mix-matrix is set rather than checking its dimensions.2021-09-24T13:18:56ZJacek Tomaszewskiaudioconvert: check if mix-matrix is set rather than checking its dimensions.Since !481 mix-matrix can have proper dimensions but still be considered not set.Since !481 mix-matrix can have proper dimensions but still be considered not set.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/948ext/alsa/gstalsa*: Use recommended API to recover from xruns: snd_pcm_recover()2021-09-24T13:18:55ZJavier Jardónjjardon@gnome.orgext/alsa/gstalsa*: Use recommended API to recover from xruns: snd_pcm_recover()Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/482
Check snd_pcm_recover() here: https://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm.c;h=24030b318dffc5d40a99be0d4491e94dad8d5dd6;hb=e5c350d7bc6f3d4...Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/482
Check snd_pcm_recover() here: https://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm.c;h=24030b318dffc5d40a99be0d4491e94dad8d5dd6;hb=e5c350d7bc6f3d45702059c0ae8d32b3603273c1#l8532https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/885videorate: Don't copy closed captioning when duplicate buffer2021-11-02T19:21:47ZGabriel Blanchardvideorate: Don't copy closed captioning when duplicate bufferClosed captioning is incorrectly duplicated when frames/fields are duplicated. Results illegible captions.
This patch seems to fix the issue.Closed captioning is incorrectly duplicated when frames/fields are duplicated. Results illegible captions.
This patch seems to fix the issue.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/883videoencoder: Avoid force-keyframe if previously encoded keyframe can cover2021-09-24T13:18:51ZSeungha Yangseungha@centricular.comvideoencoder: Avoid force-keyframe if previously encoded keyframe can coverFor instance, if the running time of previously encoded keyframe
(pts + duration if duration was valid) is larger than requested
running time of force key unit event, avoid force-keyframe encoding
for the force key unit event.For instance, if the running time of previously encoded keyframe
(pts + duration if duration was valid) is larger than requested
running time of force key unit event, avoid force-keyframe encoding
for the force key unit event.Seungha Yangseungha@centricular.comSeungha Yangseungha@centricular.comhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/838gstalsasrc: Add enum for pcm access type2021-09-24T13:18:47ZSimon Christenssongstalsasrc: Add enum for pcm access typeExpose the access type for the pcm source as an enum.
Add options SND_PCM_ACCESS_RW_INTERLEAVED and
SND_PCM_ACCESS_MMAP_INTERLEAVED.Expose the access type for the pcm source as an enum.
Add options SND_PCM_ACCESS_RW_INTERLEAVED and
SND_PCM_ACCESS_MMAP_INTERLEAVED.