summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2 daysav1enc: Use 1/90000 as timebase and don't use the framerate at all1.22Sebastian Dröge1-9/+7
This mirrors the behaviour in vp8enc / vp9enc and is generally more useful than using any framerate from the caps as it provides some degree of accuracy if the stream doesn't have timestamps perfectly according to the framerate. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6922>
2 daysav1enc: Fix last timestamp tracking so it actually worksSebastian Dröge2-15/+22
This behaves exactly the same as in vp8enc / vp9enc now. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3546 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6922>
2 daysclock: Fix 32 bit assertions in GST_TIME_TO_TIMEVAL and GST_TIME_TO_TIMESPECSebastian Dröge1-18/+25
On various 32 bit systems, time_t is actually 64 bits while long is still only 32 bits. The macro would wrongly trigger its assertion in this case if a value with more than 68 years worth of seconds is converted. Examples are various newer 32 bit platforms and old ones that are compiled with -D_TIME_BITS=64. Also statically assert that time_t is either 32 or 64 bits. Other values might need adjustments in the macro. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6924>
3 daysdtlsconnection: Fix overflow in timeout calculation on systems with 32 bit ↵Sebastian Dröge1-1/+1
time_t If a timeout of more than 4295s was scheduled, the calculation would overflow and a too short timeout would be used instead. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6923>
5 daysgtk: Fail initialization of the sink if GTK4 is already initialized in the ↵Sebastian Dröge1-0/+10
same process Initializing GTK3 and GTK4 in the same process does not work and is not supported. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6906>
7 daystests/check: Avoid using "bool" for the variable nameJordan Petridis1-3/+3
Glib 2.82 will be aliasing [1] TRUE and FALSE to the C99 definitions, which means it will be including stdbool.h As such, having variables named "bool" causes issues since it conflicts with the symbol defined in stdbool.h [1] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4001 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6897>
7 daysvideotestsrc: add mutex around cache buffer to prevent race conditionJoshua Breeden2-2/+27
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6890>
2024-05-14avvidec: Fix dropping wrong "ghost" framesEdward Hervey1-1/+1
This fixes the code regarding dropping "ghost frames", that is to say input frames which ended up not producing any decoded frame. The iteration itself makes sense.. but it was stopping at the "input" frame and not the decoded frame we just got back. When dealing with I-frame codecs, ffmpeg will decode frames in separate frames, so there is no guarantee that they are decoding in order. Fixes playback issues with such codecs Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6846>
2024-05-07audiovisualizer: Add simple pipeline unit testPiotr Brzeziński2-0/+107
Creates pipelines with each of our visualizer elements and runs them with 20 buffers from audiotestsrc. Added after a completely broken (segfaulting) synaescope went unnoticed for a while. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6815>
2024-05-07pbutils: fix visualization pluginsBill Nottingham1-0/+1
inbuf is persistent, GST_BUFFER_COPY_MEMORY's append behavior is not what we want. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6815>
2024-04-30Back to development after 1.22.12Tim-Philipp Müller23-27/+27
2024-04-29Release 1.22.121.22.12Tim-Philipp Müller59-84/+1740
2024-04-29exiftag: Prevent integer overflows and out of bounds reads when handling ↵Sebastian Dröge1-2/+17
undefined tags Fixes ZDI-CAN-23896 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3483 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6767>
2024-04-29v4l2: silence valgrind warningTim Blechmann1-0/+1
Valgrind complains about uninitialized memory used in an ioctl Syscall param ioctl(VKI_V4L2_G_TUNER).reserved points to uninitialised byte(s) at 0x719294F: ioctl (ioctl.c:36) by 0x3126A817: gst_v4l2_fill_lists (v4l2_calls.c:185) by 0x3126A817: gst_v4l2_open (v4l2_calls.c:589) by 0x3123F1C2: gst_v4l2_device_provider_probe_device (gstv4l2deviceprovider.c:122) by 0x3123F648: gst_v4l2_device_provider_device_from_udev (gstv4l2deviceprovider.c:301) by 0x3123F998: provider_thread (gstv4l2deviceprovider.c:395) by 0x796FA50: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7200.4) by 0x710CAC2: start_thread (pthread_create.c:442) by 0x719DA03: clone (clone.S:100) Address 0x44008a34 is on thread 11's stack in frame #1, created by gst_v4l2_open (v4l2_calls.c:524) Uninitialised value was created by a stack allocation at 0x3126A024: gst_v4l2_open (v4l2_calls.c:524) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6760>
2024-04-26soup: fix thread nameTim Blechmann1-1/+1
thread names should be below 16char, otherwise they won't be shown on linux. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6738>
2024-04-25meson: Don't link to python for the gi overrides moduleNirbheek Chauhan2-2/+3
We only need to link to python directly for the plugin: https://github.com/mesonbuild/meson/issues/7712#issuecomment-689357908 https://github.com/Homebrew/homebrew-core/pull/165176#issuecomment-2051835257 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6642>
2024-04-17debug-viewer: Fix plugin loading machineryPhilippe Normand1-7/+3
The previous code was failing at least with Python 3.11 and Python 3.12. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6677>
2024-04-17dvbsubenc: fixed some memory leaks and a crashJan Schmidt1-6/+11
Fix leaks of internal GstBuffers, and a crash if subtitle segments end up empty. Based on a patch by Jurijs Satcs <jurijs.satcs@veset.tv> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6673>
2024-04-16ximagesink: initialize mask for XISelectEventsF. Duncanh1-1/+1
Fixes #3470 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6655>
2024-04-15basesrc: Clear submitted buffer lists consistently with buffersSebastian Dröge1-2/+4
And handle the case of a NULL buffer being returned cleanly, which is valid as long as a buffer list is returned instead. Previously this would cause an assertion because of calling gst_buffer_unref() with NULL. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6462>
2024-04-15glcaopengllayer: NULL some fields when freedMatthew Waters1-6/+4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6566>
2024-04-15glwindow/cocoa: keep a window reference across an async callbackMatthew Waters1-1/+2
Esnures that the window is alive when the callback is fired. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6566>
2024-04-15glimagesink: avoid a possible critical on shutdownMatthew Waters1-13/+18
It is possible that the close callback can be called after glimagesink is changing state to NULL. Protect against that by taking the glimagesink lock and some NULL checking. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6566>
2024-04-15glimagesink: unref the potential last ref outside of the glimagesink lockMatthew Waters1-2/+7
Avoids a deadlock between the state change removing the last ref and the destructer calling the window's on_close handler and trying to take the glimagesink lock. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6566>
2024-04-15gl/context/cocoa: ensure pixel format lives as long as the contextMatthew Waters1-1/+10
Under some circumstances, the CGLPixelFormatObj was being destroyed too early which could lead to potential use-after-frees. Fix by returning a reference when asked for the pixel format. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3154 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6566>
2024-04-15qtdemux: fix wrong full_range offset when parsing colr boxQian Hu (胡骞)1-1/+1
use colr_data[18] >> 7 to get full range information, instead of colr_data[17] >> 7 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6641>
2024-04-15pulsedeviceprovider: Add is_default_device_name function and missing lockJimmy Ohn1-6/+40
Add is_default_device_name function to simplify compare device type name and fix the missing lock when accessing default_sink_name and default_source_name. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6640>
2024-04-15rtpbin: Don't re-use a variable for a completely different purpose temporarilySebastian Dröge1-12/+11
During RTP-Info synchronization, clock_base was temporarily switched from the actual clock-base to the base RTP time and then back some lines later. Instead directly work with the base RTP time. The comment about using a signed variable for convenience doesn't make any sense because all calculations done with the value are unsigned. Similarly, rtp_clock_base was overridden with the rtp_delta when calculating it, which was fine because it is not used anymore afterwards. Instead, introduce a new variable `rtp_delta` to make this calculation clearer. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6639>
2024-04-15rtpbin: Convert clock-base to extended RTP timestamp correctlySebastian Dröge1-3/+2
It's not in the same period as the current RTP base time but always in the very first period. This avoids using it again at a much later time. The code in question is only triggered with rtcp-sync=rtp-info. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6639>
2024-04-15rtpjitterbuffer: Use an extended RTP timestamp for the clock-baseSebastian Dröge1-8/+9
It is compared to other extended RTP timestamps all over rtpjitterbuffer and since 4df3da3bab8 the initial extended RTP timestamp is not equal anymore to the plain RTP time. Continue passing a non-extended RTP timestamp via the `sync` signal for backwards compatibility. It will always be a timestamp inside the first extended timestamp period anyway. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6639>
2024-04-14gst-inspect: fix --atleast-version to be implicitly applied to --existsThomas Goodwin2-7/+53
The --atleast-version implies --exists, but the implementation in earlier commits had the version check applied any time the --exists was checked, and the default value of the major and minor versions were set to the GStreamer major and minor versions. The resulting behavior would have gst-inspect return '1' if the plugin's version didn't match gstreamer's even when --atleast-version was not specified in the command line args. The change in this patch removes that behavior and adds tests to verify that if --exists is specified WITHOUT --atleast-version the version check will NOT be applied. If both arguments are specified and the version does not match the arg-supplied version number, a new return code of '2' is used to uniquely identify the failure. Fixes #3246 Signed-off-by: Thomas Goodwin <thomas.goodwin@laerdal.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6415>
2024-04-08wavpackparse: Use an unsigned integer for the block size calculationsSebastian Dröge1-1/+1
It's never negative. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6564>
2024-04-08wavpackparse: Fix potential integer overflow on ID_ODD_SIZE blocksSebastian Dröge1-1/+4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6564>
2024-04-08wavpackparse: Explicitly handle ID_WVX_NEW_BITSTREAMSebastian Dröge2-0/+2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6564>
2024-04-08typefind: Handle WavPack block sizes > 131072Sebastian Dröge1-16/+24
These are valid nowadays. Also handle ID_ODD_SIZE and ID_WVX_NEW_BITSTREAM. The parser already handles the former but not the latter. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3440 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6564>
2024-04-08v4l2: fix error in calculating padding bottom for tile formatElliot Chen1-1/+3
This is a regression while porting to arbitrary tile dimensions introduced in !3424. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6565>
2024-04-07play: Update `video_snapshot` to support playbin3eri1-4/+15
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6563>
2024-03-31d3d11videosink: disconnect signals before releasing the windowAlexander Slobodeniuk1-5/+13
It might happen that the key event arrives when the d3d11videosink is stopping. In case of GstD3D11WindowWin32 it can raise a navigation event even when the sink is already freed, because the window object's refcount may reach 0 in the window thread. In other words sometimes the GstD3D11WindowWin32 lives few ms more then the GstD3D11VideoSink, because it's freed asynchronously. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6493>
2024-03-29tests: rtpred: fix out-of-bound writesTim-Philipp Müller1-2/+2
Don't write more data to the buffer than we allocated space for. Fixes #3312 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6479>
2024-03-28v4l2codecs: alphadecoder: Explicitly pass 64 bit integers as such through ↵Nicolas Dufresne1-4/+4
varargs Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6470>
2024-03-28alphadecodebin: Explicitly pass 64 bit integers as such through varargsSebastian Dröge1-4/+4
Maybe fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3422 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6470>
2024-03-28inputselector: fix possible clock leak on shutdownArnaud Vrac1-7/+7
Avoid leaking a GstClock object on shutdown, bail out before taking the ref when not playing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6458>
2024-03-27net/gstptpclock: fix double free of domain data during deinitTaruntej Kanakamalla1-1/+7
The attempt to free the domain data is happeing twice during the ptp deinit. Once while iterating through the list domain_data and second while iterating through the list domain_clocks, so this is crashing the application trying to gst_ptp_deinit Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6459>
2024-03-20Back to developmentTim-Philipp Müller23-34/+34
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6408>
2024-03-19Release 1.22.111.22.11Tim-Philipp Müller59-180/+2040
2024-03-18dvdspu: avoid null dereferenceMark Nauwelaerts1-0/+5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6390>
2024-03-18vulkan/wayland: use xdg_wm_base when availableMatthew Waters5-24/+198
wl_shell is deprecated and has been removed from some compositors. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6396>
2024-03-18vulkan/wayland: provide a dummy registry global_remove functionMatthew Waters1-1/+13
Even if we don't care about any global objects being removed, wayland will still error if globals are removed without a corresponding listener set up for them. e.g. wl_output hotplugging Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6396>
2024-03-18vulkan/wayland: rename debug category to mention wayland instead of XCBMatthew Waters1-2/+2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6396>
2024-03-18v4l2src: fix cannot reuse current caps when fixate caps in negotiationHaihua Hu1-8/+9
when regotiation happens, v4l2src will check if it can reuse current caps, but we need check if current caps is subset of all query caps from downstream instead of check it with query caps one by one. Assuming that the current caps is not the subset of first caps from query caps, it will go to try fmt. when try fmt success, v4l2src will make pending_set_fmt to TRUE and going to reset. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6393>