Edward Hervey
75d6621c2a
videodecoder: Only use subframes internal values in subframe mode
...
This clarifies the usage of it, and fixes issues with reverse playback.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4694 >
2023-05-24 18:50:56 +00:00
Edward Hervey
7a4916b251
videodecoder: Remove unused internal fields
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2552
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4694 >
2023-05-24 18:50:56 +00:00
Edward Hervey
386a8dbae5
videodecoder: refactor and document finish_frame some more
...
* Move the in-flight iteration and handling code into the main block
* Document the intent a bit more
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4694 >
2023-05-24 18:50:56 +00:00
Edward Hervey
bce9f3327d
videodecoder: Refactor post-decode PTS/DTS recovery code
...
The code was a bit hard to follow. Use clear/explicity variable names and
comment a bit more on what is going on.
Also fold the double list iteration into a single one
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4694 >
2023-05-24 18:50:56 +00:00
He Junyan
1e9e976268
videometa: Only validate the alignment only when it contains some info
...
When the alignment contains nothing, all its fields are 0 and always
can be satisfied. So there is no need to validate it in this case.
And there are a lot of places just setting this alignment to default
all zero value, this validation generates lots of warnings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4674 >
2023-05-24 16:22:21 +00:00
Seungha Yang
a8bf19deda
video: convertframe: Add D3D11 specific conversion path
...
Add d3d11 conversion path to make gst_video_convert_sample() work
for GstD3D11Memory.
Note that just adding "d3d11download" to the exisitng code is
suboptimal from GstD3D11 point of view because:
* d3d11convert element can support crop/colorspace-conversion/scale
all at once while existing software pipeline needs intermediate steps
for the conversion
* "Process everything on GPU then download it to CPU memory" would be likely
faster than "download GPU memory to CPU then processing it on CPU"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2715 >
2023-05-20 14:24:27 +00:00
Seungha Yang
9554a5c7fa
video: convertframe: Remove pointless const qualifier
...
const keyword for refcounted object does not very make sense
and unnecessary in this case
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2715 >
2023-05-20 14:24:27 +00:00
Philippe Normand
b2e121054d
sdp: Add API to remove media from a SDP message
...
Based on initial patch by Stefano Buora.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/579
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4670 >
2023-05-20 09:23:17 +01:00
Matthew Waters
8003acf5bb
gl: update docs for mixer move
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608 >
2023-05-18 19:34:15 +00:00
Matthew Waters
e9bf1c79cc
glmixer: don't add rgba templates by default
...
Subclasses may want to override the pad template with different formats
or with a different pad subclass.
The original beahviour is still available by calling
gst_gl_mixer_class_add_rgba_pad_templates() in _class_init() of the
subclass.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608 >
2023-05-18 19:34:15 +00:00
Matthew Waters
fc85b63c2b
glmixer: remove set_caps() vfunc
...
All of its implementors can be moved to gl_start/stop() from
GstGLBaseMixer instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608 >
2023-05-18 19:34:14 +00:00
Matthew Waters
331b1af468
glmixer: remove reset vfunc
...
This functionality is covered by GstGLBaseMixer's gl_stop() vfunc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608 >
2023-05-18 19:34:14 +00:00
Matthew Waters
14e7e991d3
gl/mixer: make fbo instance field private and provide accessor function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608 >
2023-05-18 19:34:14 +00:00
Matthew Waters
007a602726
gl: move gl(base)mixer to library
...
For use by applications/libraries outside of the opengl plugin.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4608 >
2023-05-18 19:34:14 +00:00
Nirbheek Chauhan
681f042f27
meson: Install viv-fb GL headers, needed by i.MX
...
Needed by qmlglsink at build time to allocate a viv-fb display.
Without this, the GL fastpath doesn't work, and performance is really
bad.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4613 >
2023-05-12 15:05:56 +05:30
Yinhang Liu
f04a1eee71
video: video-info-dma: Fix return value
...
The return value of gst_video_info_dma_drm_new_from_caps is a pointer type,
and should not return a boolean type. Fix this issue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4612 >
2023-05-12 15:38:08 +08:00
Piotr Brzeziński
5e45a1b1bd
macos: Set activation policy in osxvideosink and glimagesink
...
Upon creating a window, glimagesink and osxvideosink now set the policy to
NSApplicationActivationPolicyRegular, which lets us show an icon in the Dock
for convenience and appear in the top menu bar like other apps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4573 >
2023-05-12 01:14:44 +02:00
Piotr Brzeziński
f60c87769f
macos: Remove old NSApp workaround related code
...
This is no longer needed since the introduction of `gst_macos_main()` in 1.22.
Before that existed, we had a patch for GLib in Cerbero, which did work but made it
impossible to update GLib at all. The code being removed was a fail-safe in case of
running without said patch being applied. It's no longer needed, since for macOS
we just wrap our GStreamer with an NSApplication using `gst_macos_main()`.
Warnings will be displayed if no NSApp/NSRunLoop is found wherever needed,
pointing the user towards using the new API.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4366 >
2023-05-11 20:30:19 +02:00
Sebastian Dröge
4cbd8d6fc6
pbutils: discoverer: Mark gst_discoverer_stream_info_get_stream_id() as nullable
...
It can return NULL in certain situations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4572 >
2023-05-08 15:26:58 +03:00
Thibault Saunier
40a6f2dc91
discover: Avoid double freee when creating info from cache file
...
Passing ownership to the function as the created info is made owner.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:54:10 -04:00
Thibault Saunier
0f229aa62a
discoverer: Add serializing unknown stream type support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:54:10 -04:00
Thibault Saunier
9e994ea616
discoverer: Add a signal to retrieve serialized GstDiscovererInfo
...
This allows user to serialize the GstDiscovererInfo in other places
than the default folder, like a database when running web services for
examples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:47:55 -04:00
Stéphane Cerveau
61416bc532
pbutils: add video/x-ivf to descriptions
...
Add missing description for video/x-ivf spotted
with gst-discoverer-1.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4248 >
2023-04-27 06:45:27 +00:00
Jordan Petridis
791a068c58
build: appease clang warning
...
Clang complains about these variables being (possibly) unitialized, even
when they are assigned to NULL or proper value inside the macro.
Might as well initialize them to avoid the warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4281 >
2023-04-24 12:37:07 +00:00
Thibault Saunier
b14e675a27
gir: Checkout all .gir files and check that they are updated on the CI
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3010 >
2023-04-22 09:32:32 -04:00
Nicolas Dufresne
e709e2d97c
meson: Add a wrap file for libgudev
...
And allow fallback to it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4447 >
2023-04-19 22:47:19 +00:00
Sebastian Dröge
83106de7e7
video: timecode: Add support for framerates lower than 1fps
...
These are not explicitly defined but the existing calculations can be
extended to also cover that case by inverting them to avoid floating
point calculations.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2465
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4374 >
2023-04-17 10:26:11 +00:00
Seungha Yang
5765eb8dce
sdpmessage: Don't set "source-filter" to caps
...
Multiple "source-filter" can exist, and it requires special handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3485 >
2023-04-12 16:32:07 +00:00
Matthias Fuchs
769cc48e49
glcontext_wgl: fix missing unref
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4392 >
2023-04-11 20:05:17 +00:00
Philippe Normand
4e4cb3bcf5
glbasesrc: Reverse order of error/debug messages
...
Addressing follow-up review from Tim in !4222 , the first string is meant to be
shown to the user and should be translatable. The second one is more suited for
debugging purposes and should not be translated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4389 >
2023-04-11 12:28:27 +01:00
Sebastian Dröge
8ed0b03c78
appsink: Use a class handler callback instead of vfunc for propose-allocation
...
There would otherwise be no padding left in the class struct anymore and
we might need it for something else in the future.
A class handler callback can be overridden by subclasses via
`g_signal_override_class_handler()` and chained up via
`g_signal_chain_from_overridden_handler()`.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2422
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4356 >
2023-04-06 15:21:35 +00:00
Sebastian Dröge
51a2adb837
allocators: drm-dumb: Annotate allocator instance parameters with the correct type
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4360 >
2023-04-06 17:04:45 +03:00
Sebastian Dröge
edcb8e8f35
allocators: drm-dumb: Annotate device-path as a filename
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4358 >
2023-04-06 15:41:27 +03:00
Rouven Czerwinski
7ad84674ab
gst-plugins-base: gl: wayland: cleanup on close
...
The proxy and queue are created in the gst_gl_window_wayland_egl_open()
function and will be recreated on open. This leaks both objects, the
wayland client documentation mentions that they should be destroyed
using the appropriate destroy functions.
Found during valgrind memory leak testing, these blocks were marked as
definitely lost.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4354 >
2023-04-06 08:09:36 +02:00
Guillaume Desmottes
84dea99132
appsrc: properly handle events received before sending the segment
...
The first serialized events that can be send on a src pad are a CAPS and then a
SEGMENT event.
When handling events from user in appsrc, we used to send a segment
automatically if the SEGMENT has not been sent yet.
This breaks if the CAPS event was not send either as we were now sending
a SEGMENT before the CAPS.
Fix this by delaying such events until the CAPS has been configured.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4297 >
2023-04-05 11:11:46 +00:00
Guillaume Desmottes
4bffa7b537
appsrc: log when popping caps and buffer (list) from queue
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4297 >
2023-04-05 11:11:46 +00:00
Sebastian Dröge
a17209220f
sdp: Skip source-specific caps fields when creating an SDP media from caps
...
Regression from https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2132
We parse the source-specific fields from the SDP and put it into the
caps, but when converting caps into an SDP again this would need special
handling. By default it would end up as part of the fmtp field, which is
simply wrong.
Automatically putting it into the caps and SDP will need some more work.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4338 >
2023-04-05 05:20:33 +00:00
Bart Van Severen
65f953cd23
rtsp: gstrtspurl: gst_rtsp_url_get_request_uri: use rtsps scheme for tls transport methods
...
gst_rtsp_url_get_request_uri returns rtsp://... url when requested url is rtsps://, this is not
in accordance with https://www.rfc-editor.org/rfc/rfc7826.html#section-19.2 .
This also impedes setting up a rtsps session with a live555 rtsp server.
Don't expose other than rtsp and rtsps internal gstreamer rtsp url schemes
to avoid regression:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2412
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4294 >
2023-03-29 11:38:47 +00:00
Bart Van Severen
c2b3afd3dd
Revert "rtsp: gstrtspurl: gst_rtsp_url_get_request_uri: fix incorrect scheme for tls transport methods"
...
This reverts commit 024ef7659d
because it causes a regression:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2412
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4294 >
2023-03-29 11:38:47 +00:00
Shengqi Yu
96a46e31c7
appsink: add propose_allocation support
...
Adding propose_allocation is to meet the requirement of Application to
request buffers. Application sometimes need to create buffer pool
and request buffers to maintain buffer management itself, and Gstreamer plugin
import Application's buffers to use. So, add propose_allocation in
appsink like waylandsink and kmssink etc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4185 >
2023-03-27 12:34:16 +03:00
Tobias Rapp
c467ac0869
gst-plugins-base: Add FourCC and type description for FFVHuff video
...
The FFVHuff video codec is a FFmpeg-specific variant of the lossless
HuffYUV codec with increased coverage of supported pixel formats and bit
depths.
Fixes #2389 .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4250 >
2023-03-23 14:30:59 +00:00
Stéphane Cerveau
23661f0446
vulkan: gl: change symbols to static
...
Change window_proc and subclass_proc to static to avoid symbols
duplication.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4246 >
2023-03-23 00:56:04 +00:00
Philippe Normand
47b8618b2d
glbasesrc: Reword error message
...
The initial glbasesrc implementation was based on a refactoring of gltestsrc,
but one error message wasn't updated accordingly and remained specific to the
gltestsrc implementation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4222 >
2023-03-19 16:39:18 +00:00
Víctor Manuel Jáquez Leal
d6dd81dbdd
video: remove spurious gst_caps_make_writable()
...
In gst_video_info_dma_drm_to_caps() the caps are newly created, so there's no
need for make it writable. In gst_video_info_dma_drm_from_caps() a copy of the
caps is done, which implies a gst_caps_make_writable().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4195 >
2023-03-17 13:01:02 +00:00
Tim-Philipp Müller
8759b77a50
gst-plugins-base: re-indent with GNU indent 2.2.12
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4182 >
2023-03-17 03:18:53 +00:00
Nicolas Dufresne
7c7f2bb6df
allocators: Add a DRM Dumb Allocator
...
This allow allocating memory from any DRM driver that supports this
method. It additionally allow exporting DMABuf. This allocator depends
on libdrm and will be stubbed if the dependency is missing. This is derived
from kmssink dumb allocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3801 >
2023-03-14 21:50:57 +00:00
He Junyan
67d0a911a5
video: add dma format and info helper functions
...
From the dmabuf.md[1], "drm-format" field in caps will replace the
traditional "format" field, so it needs to import some new helper
functions to support this.
1. https://gstreamer.freedesktop.org/documentation/additional/design/dmabuf.html
Co-authored-by: Yinhang Liu <yinhang.liu@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4043 >
2023-03-12 03:09:01 +00:00
Carlos Falgueras García
dafc024ed0
gldisplay: Remove unused code
...
The code related with environment variable `GST_GL_PLATFORM` is unused
since commit 33c60bdbf9
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4090 >
2023-03-01 08:23:37 +00:00
Patricia Muscalu
35f1738875
rtspconnection: Annotate RTSP message parameters correctly
...
These parameters are not actually `out` parameters but must
be allocated and zero-initialized by the calling function.
Marking them as `out caller-allocates` will cause memory
corruptions when calling these APIs from e.g., Python code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4051 >
2023-02-23 12:04:37 +00:00
Tristan van Berkom
0472c306d0
gstglwindow_x11.c: Fix colormap leak
...
This fixes an X server side memory leak, this is normally not severe
but in some circumstances where the glwindow is recreated frequently
it can result in a very bad memory leak.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4047 >
2023-02-22 16:29:06 +00:00