summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* gst: Fix gst_type_find_peek() return value annotationSebastian Dröge2023-01-261-1/+1
| | | | | | | | | It's not possible to annotate a in-parameter for a return value array as the array length. Both are assumed to have the same direction and the current annotation causes the size parameter to be considered an out parameter. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3794>
* sdp: Fix gst_mikey_payload_key_data_set_interval() array length annotationSebastian Dröge2023-01-261-1/+1
| | | | | | Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1744 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3794>
* redenc: fix setting of extension ID for twccMathieu Duponchelle2023-01-261-2/+2
| | | | | | | 1 was previously hardcoded in, and the bug went under the radar because webrtcsink hardcodes the number too. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3793>
* multiqueue: Handle use-interleave latency live pipelinesEdward Hervey2023-01-261-0/+28
| | | | | | | | | | | | | | Due to the dynamic nature of multiqueue, when `use-interleave` is used we can't report a maximum tolerated latency (when queried) since it is calculated dynamically. When in such live pipelines, we need to make sure multiqueue can handle the lowest global latency (provided by this event). Failure to do that would result in not providing enough buffering for a realtime pipeline. Fixes #1732 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3792>
* avvidenc: Don't take ffmpeg timestamps verbatim but only use them to ↵Sebastian Dröge2023-01-261-12/+18
| | | | | | | | | | | | | | calculate DTS The ffmpeg timestamps are inaccurate and only in framerate granularity. To avoid generating inaccurate output timestamps, especially with variable framerate streams, only use the ffmpeg timestamps for calculating the DTS. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1544 again. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3791>
* Revert "avvidenc: Set timebase in the ffmpeg context to nanoseconds and set ↵Sebastian Dröge2023-01-262-7/+10
| | | | | | | | | | | | | framerate" This reverts commit 50db59449e9cdb637c5f0c1b7c5dccd582fac4ee. This broke the MPEG-1 video encoder as it requires the framerate to be used for the timebase. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1734 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3791>
* plugins-base/tests/check/meson.build: add omitted Wayland dependenceF. Duncanh2023-01-221-1/+1
| | | | | | | | | | SUSE places Wayland include files in /usr/include/wayland, and needs a Cflag added to wayland_client_deps by pkg-config, which is added to gl_winsys_deps: add this as a dependency in gstgl_dep to fix issue. Fixes #1607 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3768>
* gst-plugins-ugly: update translationsTim-Philipp Müller2023-01-2113-262/+129
| | | | | | Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1575 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764>
* gst-plugins-bad: update translationsTim-Philipp Müller2023-01-2112-69/+349
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764>
* gst-plugins-good: update translationsTim-Philipp Müller2023-01-2145-523/+856
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764>
* gst-plugins-base: update translationsTim-Philipp Müller2023-01-2141-854/+2050
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764>
* gstreamer: update translationsTim-Philipp Müller2023-01-2144-678/+2336
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3764>
* matroska: Add `stream-format = (string) obu-stream` to AV1 capsSebastian Dröge2023-01-194-5/+10
| | | | | | Anything else is not allowed in Matroska/WebM. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3741>
* isomp4: Add `stream-format = (string) obu-stream` to AV1 capsSebastian Dröge2023-01-193-5/+9
| | | | | | Anything else is not allowed in MP4. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3741>
* input-selector: Take the object lock while iterating sinkpadsJan Alexander Steffens (heftig)2023-01-181-3/+14
| | | | | | | Otherwise we can race with pad removal and crash from use-after-free. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1717 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3747>
* avvidenc: Offset PTS to zero to fix bitrate controlSebastian Dröge2023-01-132-8/+30
| | | | | | | | | Otherwise ffmpeg's rate control algorithm will not work correctly as it is based on the absolute PTS values. Fixes https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/91 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3727>
* d3d11memory: Fix potential crash in GstD3D11PoolAllocatorSeungha Yang2023-01-131-1/+2
| | | | | | | | Allocator object can be the final refcount holder, when a GstD3D11Memory is being released. Do unref allocator once there's no more remaining operation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3726>
* d3d11memory: Remove GstD3D11PoolAllocator::disposeSeungha Yang2023-01-131-12/+2
| | | | | | Clear GstD3D11Device object in finalize method as well Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3726>
* dvbbasebin: don't rely on g_key_file_get_(integer|uint64) returnRodrigo Bernardes2023-01-101-6/+12
| | | | | | instead check if an error was returned, and fail if any Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3701>
* webrtc examples: Force regular non-MULTIOPUSOlivier Crête2023-01-054-6/+7
| | | | | | Using MULTIOPUS breaks with most browsers Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3685>
* webrtc-unidirectional: Avoid criticalOlivier Crête2023-01-041-4/+2
| | | | | | | Don't unref the parameter passed to a signal, it's always owned by the caller. Fixes a GLib critical. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3685>
* ges: gst_bin_add() is `transfer floating` so wrappers around it are tooSebastian Dröge2023-01-042-2/+4
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3684>
* qtmux: For video with N/1001 framerates use N as timescale instead of ↵Mathieu Duponchelle2023-01-041-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | centiframes This is recommended by various specifications for such framerates, while for integer framerates we continue using centiframes to allow for some more accuracy. Using N means that no rounding error accumulates, eventually leading to outputting a packet with a different duration. Some tools such as MediaInfo determine that a stream is variable framerate if any packet has a different duration than the others, and there is no reason I can see for not using the full 4 bytes of resolution that the mp4 timescale offers. Example problematic pipeline: ``` videotestsrc num-buffers=5001 ! video/x-raw,framerate=60000/1001,width=320,height=240 ! \ videoconvert ! x264enc bitrate=80000 speed-preset=1 tune=zerolatency ! h264parse ! \ video/x-h264,profile=high-10 ! mp4mux ! filesink location="result2.mp4" ``` This results in a media file that MediaInfo detects as variable framerate because the 5000th packet has duration 99 instead of 100. With this patch, the timescale is 60000 and all packets have duration 1001. Related issue for context: https://bugzilla.gnome.org/show_bug.cgi?id=769041 Co-authored-by: Sebastian Dröge <sebastian@centricular.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3683>
* avvidenc: Set timebase in the ffmpeg context to nanoseconds and set framerateSebastian Dröge2023-01-042-10/+7
| | | | | | | | | As we now actually use the timestamps from ffmpeg for timestamping the output we would lose a lot of accuracy if the framerate is used. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1544 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3679>
* srt: Avoid crash on unknown optionOlivier Crête2023-01-041-1/+1
| | | | | | | Use the correct field that is null instead of the struct value which never is. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3682>
* subprojects: libffi: pin to meson-3.2.9999.4 tagTim-Philipp Müller2023-01-021-1/+1
| | | | | | | | In case we want to change the 'meson' branch over to the re-done meson port based on upstream libffi in future. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3669>
* gl: Mark `gst_gl_context_new_wrapped()` return value as `nullable`Sebastian Dröge2023-01-021-8/+1
| | | | | | | | | | If a GL context is requested for which no API support is compiled in then `NULL` is returned. Also remove a useless `NULL` check: `g_object_new()` can't possibly return `NULL`, ever. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3668>
* meson: Add gstreamer-gl-1.0 pkgconfig vars to internal dependencyNirbheek Chauhan2023-01-011-1/+2
| | | | | | | | So we can fetch gl_winsys, gl_platforms, etc directly using gst_gl_dep.get_variable() when building gstreamer as a subproject, or when building gst-plugins-rs's gtk4 plugin. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3667>
* tests: gstelement: Fix test_add_pad_while_paused flakinessPhilippe Normand2022-12-281-0/+1
| | | | | | | | `gst_element_remove_pad()` doesn't automatically deactivate the pad, it has to be done explicitly beforehand, otherwise the pad task might be left dangling, exposed to undefined behaviour. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3651>
* gstelement: fix deadlock in gst_element_add_pad() when >=PAUSEDAlicia Boya García2022-12-282-4/+56
| | | | | | | | | | | | | | | | | | gst_element_add_pad() is supposed to activate the pad if the element state is >= PAUSED and the pad is not already active. Unfortunately, before this patch, the activation was performed while the element lock was still taken, which ended causing a deadlock in gst_pad_start_task() as it attempted to post `stream-status` message in the element, which also requires the element lock. Elements could work around this bug by activating the pad manually before adding it to the element. This patch fixes the problem by performing pad activation only after the element lock has been released. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3651>
* gtkbasesink: Fix widget leakSeungha Yang2022-12-281-2/+8
| | | | | | | | | | gst_gtk_base_sink_get_widget() will increase refcount and it should be released after use Fixing regression introduced by the commit 941c0e81ddf5c0ad6a9fac59b1d6bf7723025434 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3650>
* aom: av1enc: Ensure that input pts is strictly increasingYatin Maan2022-12-272-5/+58
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3649>
* aom: av1enc: Fix pts unitYatin Maan2022-12-271-4/+16
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3649>
* rtspsrc: Fix string leakSeungha Yang2022-12-271-2/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3648>
* rtptimerqueue: Fix memory leakSeungha Yang2022-12-271-0/+2
| | | | | | Should chain up to parent's finalize Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3648>
* ci: validate: don't --check-bugs in 1.20 branchTim-Philipp Müller2022-12-271-1/+0
| | | | | | Any issues fixed may only have been fixed in the main branch. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3647>
* bin: Fix race conditions in testsSebastian Dröge2022-12-271-40/+92
| | | | | | | | | | | | The latency messages are non-deterministic and can arrive before/after async-done or during state-changes as they are posted by e.g. sinks from their streaming thread but bins are finishing asynchronous state changes from a secondary helper thread. To solve this, expect latency messages at any time and assert that we receive one at some point during the test. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3647>
* va: Delay the VAProcPipelineCaps query after context created.He Junyan2022-12-221-3/+5
| | | | | | | | | | The VAAPI vaQueryVideoProcPipelineCaps() requires the context as the parameter. So far, we always pass VA_INVALID_ID and it can succeed. But the API does not say that and in theory, a valid context is required. Now the new platform really needs a valid context and so we have to delay that query until the context is created. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3620>
* qmlglsrc: Fix deadlock when stoppingMatthias Fuchs2022-12-223-0/+15
| | | | | | | This fix makes sure that streaming thread stops waiting when the qmlglsrc element transitions from playing to paused. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3619>
* Back to developmentTim-Philipp Müller2022-12-2022-32/+32
|
* Release 1.20.51.20.5Tim-Philipp Müller2022-12-1970-94/+3444
|
* Update ChangeLogs for 1.20.5Tim-Philipp Müller2022-12-1912-0/+1193
|
* videoscale: fix valid_tags NULL-terminated array of stringsPhilipp Zabel2022-12-191-1/+2
| | | | | | | The valid_tags array of strings must be NULL-terminated, as it is passed to the g_strv_contains() function. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3604>
* mpegts: Always clear packetizer on DISCONT push modeEdward Hervey2022-12-191-7/+11
| | | | | | | | | | | | | | | | If a discontinuity is detected in push mode, we need to clear the cached section observations since they might have potentially changed. This was only done properly when operating with TIME segments (dvb, udp, adaptive demuxers, ...) but not with BYTE segments (such as with custom app/fd sources). We still don't want to flush out the PCR observations, since this might be needed for seeking in push-based BYTE sources. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1650 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3600>
* decodebin2: Minor debug fix for decodepadEdward Hervey2022-12-181-3/+3
| | | | | | | | decodedad might have their name changed when exposing, causing a race when trying to get their name without taking a lock. Just use GST_PTR_POINTER in debug statements instead Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3597>
* imagesequencesrc: Don't leak capsEdward Hervey2022-12-181-0/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3597>
* ges-launcher: Don't leak stringEdward Hervey2022-12-181-0/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3597>
* ges-demux: Don't leak stringEdward Hervey2022-12-181-0/+9
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3597>
* ges-xml-formatter: Plug some leaksEdward Hervey2022-12-181-2/+8
| | | | | | | | * Don't leak the mainloop * Don't leak temporary strings * Don't leak id when searching in hash table Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3597>
* ges-project: Don't leak stringEdward Hervey2022-12-181-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3597>