summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* rtspsrc: Skip PTs with caps incompatible to the global caps1.20Sebastian Dröge2023-05-061-0/+7
| | | | | | | Otherwise empty caps are created while all following code assumes that the caps will have exactly one structure, and then run into assertions. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4568>
* tsdemux: Set number of channels to 2 for dual mono OpusSebastian Dröge2023-05-061-0/+1
| | | | | | Instead of leaving it at 0, which will then cause caps creation to fail. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4565>
* rtsp-server: media: First set state to PLAYING again temporarily, then send EOSSebastian Dröge2023-05-061-3/+3
| | | | | | | Sending the EOS event while the pipeline is PAUSED can deadlock on the stream lock if a sink is currently blocked because of pre-rolling. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4569>
* rtspsrc: Fix handling of `*` control pathSebastian Dröge2023-05-061-1/+1
| | | | | | | Regression introduced by 7f9d689572843ff9e0b8a92128034a8fc4a14d96. Thanks to Tristan Matthews for reporting this. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4566>
* audiotestsrc: Initialize all samples in wave=ticks modeSebastian Dröge2023-05-061-0/+4
| | | | | | | | Previously samples were only initialized in 2 out of 3 cases. Probably fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/337 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4564>
* qtdemux: Fix av1C parsingEdward Hervey2023-04-171-3/+4
| | | | | | | | | | | | | This is a regression introduced by https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3882 The av1c codec configuration parsing would always fail due to an off-by-one error, the content of an atom starting at offset 8 (i.e. the 9th byte) and not 9 (the 10th byte). Also introduce a break in order to not get stray warnings Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4434>
* imagesequencesrc: Properly set default locationJan Alexander Steffens (heftig)2023-04-162-2/+2
| | | | | | | Noticed this because the generic_states test kept segfaulting at random. GLibC 2.37 can crash when NULL is supplied as a format string. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4431>
* glimagesink: Fix render rect assertionNicolas Dufresne2023-03-301-0/+4
| | | | | | | | | | | | | | Whenever the surface is resized before the stream is negotiated, we endup with an assertion in libgstvideo. gst_video_center_rect: assertion 'src->h != 0' failed This fixes it, by following the style aready in place, which is to ensure surfaces have a minimum size of 1x1. Fixes #1139 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4303>
* rtpjpegdepay: fix logic error when checking if an EOI is presentTim-Philipp Müller2023-03-251-1/+1
| | | | | | | | | We wouldn't add the missing EOI marker if the frame ended with either 0xFF NN or 0xNN D9. Fixes #2407 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4271>
* ksdeviceprovider: Fix leak in gst_dshow_device_provider_startAdrien De Coninck2023-03-251-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4270>
* dshowdeviceprovider: Fix leak in gst_dshow_device_provider_startAdrien De Coninck2023-03-251-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4270>
* cea708overlay: fix HCR interpretationMatthew Waters2023-03-151-5/+5
| | | | | | | An unsigned counter with a for (i = end; i >= 0; i--), can be optimized to infinite loop as an unsigned value will always be >= 0. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4174>
* rtspsrc: Consider "451: Parameter Not Understood" when handling broken ↵Matt Feury2023-03-141-0/+1
| | | | | | | | | | | | | control urls similar to https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3854 it seems that some implementations return this when the server does not implement URL handling correctly this fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2334 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4173>
* ffmpeg: avauddec/avviddec: Free packet side data after usageSebastian Dröge2023-02-282-3/+7
| | | | | | | | | As we don't use proper refcounting with AVPacket we have to manage this ourselves. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2006 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4079>
* gsturisourcebin: Don't try to plug a typefinder on dynamic sources.Enrique Ocaña González2023-02-271-4/+9
| | | | | | | | | | | | | | | | | | | | | setup_source() tries to plug a typefind element unconditionally to the source element on non-live streams, no matter if the element is dynamic or not. In the former case, the element might not have any src pad created, so the plugging will fail, triggering an unrecoverable error. This patch only tries the plugging when the element is not dynamic (no new-pad callback has been configured). In case the element is dynamic, the callback will take care of configuration when pads appear in the future. This solves many regressions on the YouTube MSE Conformance Tests[1] at least in downstream WPE 2.38[2] after migrating from GStreamer 1.16 to 1.18, a change that introduces Playbin 3. [1] https://ytlr-cert.appspot.com/latest/main.html [2] https://github.com/WebPlatformForEmbedded/WPEWebKit/tree/wpe-2.38 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4074>
* Back to developmentTim-Philipp Müller2023-02-2422-32/+32
|
* Release 1.20.61.20.6Tim-Philipp Müller2023-02-2370-190/+2676
|
* Update ChangeLogs for 1.20.6Tim-Philipp Müller2023-02-2312-0/+865
|
* gstglwindow_x11.c: Fix colormap leakTristan van Berkom2023-02-221-1/+4
| | | | | | | | 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/4049>
* qtmux: Fix assertion on caps updateSeungha Yang2023-02-221-3/+11
| | | | | | | GstQTMuxPad.configured_caps should be protected since it's updated from streaming thread and accessed in aggregate thread Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4048>
* buffer: fix copy meta reference debug log formattingJames Hilliard2023-02-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | Fixes the following valgrind error: ==616== Conditional jump or move depends on uninitialised value(s) ==616== at 0x4900E34: gst_debug_print_object (gstinfo.c:1143) ==616== by 0x49010B6: gst_info_printf_pointer_extension_func (gstinfo.c:1215) ==616== by 0x4959FDB: __gst_printf_pointer_extension_serialize (printf-extension.c:47) ==616== by 0x495A487: printf_postprocess_args (vasnprintf.c:258) ==616== by 0x495A52C: __gst_vasnprintf (vasnprintf.c:290) ==616== by 0x4959F8F: __gst_vasprintf (printf.c:154) ==616== by 0x4901C1F: gst_debug_message_get (gstinfo.c:791) ==616== by 0x4901C75: _gst_debug_log_preamble (gstinfo.c:1431) ==616== by 0x4903208: gst_debug_log_default (gstinfo.c:1575) ==616== by 0x49020BA: gst_debug_log_full_valist (gstinfo.c:624) ==616== by 0x490211D: gst_debug_log_valist (gstinfo.c:656) ==616== by 0x49021AD: gst_debug_log (gstinfo.c:533) ==616== by 0x48DDC11: gst_buffer_copy_into (gstbuffer.c:693) ==616== by 0x48DF5F1: gst_buffer_copy_with_flags (gstbuffer.c:727) ==616== by 0x48DF640: gst_buffer_copy_deep (gstbuffer.c:756) Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4037>
* qtmux: Implement writing of `av1C` version 1 boxSebastian Dröge2023-02-211-15/+78
| | | | | | | | Version 0 is ancient and not specified in any documents. Take it directly from the `codec_data` if presents or otherwise try to construct a reasonably looking `av1C` box. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4028>
* qtdemux: Drop av1C version 0 parsing and implement version 1 parsingSebastian Dröge2023-02-211-25/+52
| | | | | | | | | The av1C box is optional so dropping parsing does not break anything fundamentally, and there seems to be no historical record how version 0 even looks like while the comments and the parsing disagreed with each other. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4028>
* avviddec: Disable AV1 decoderSebastian Dröge2023-02-211-1/+5
| | | | | | | We have various elements for AV1 decoding, the ffmpeg one only works if hardware support is available and seems to require special signalling. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4019>
* h265parse: Add the missing timestamp when splitting a frame.He Junyan2023-02-211-0/+4
| | | | | | | | When splitting a frame, the gst_buffer_copy_region() does not copy the timestamp correctly for sub frames when the offset is not 0. We still need those timestamps for each output sub frame. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4025>
* h264parse: Add the missing timestamp when splitting a frame.He Junyan2023-02-211-0/+4
| | | | | | | | When splitting a frame, the gst_buffer_copy_region() does not copy the timestamp correctly for sub frames when the offset is not 0. We still need those timestamps for each output sub frame. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4025>
* wpe: Logging fixes for the WebExtensionPhilippe Normand2023-02-212-1/+8
| | | | | | | Using logging macros without a `GST_CAT_DEFAULT` in scope leads to critical warnings. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4021>
* qtdemux: Don't emit GstSegment correcting start time when in MSE modeEnrique Ocaña González2023-02-212-13/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using qtdemux in a pipeline that should only work as a pure demuxer (not for actual playback), qtdemux shouldn't emit new GstSegments to correct the start time (jump to the future) to ensure that the user experiences no playback delay. By doing so, it's generating the wrong segments when an append of data from the past happens. When that happens, downstream elements such as parsers (eg: aacparse) may clip those buffers laying before the GstSegment and create problems on the GStreamer client app (eg: WebKit). Getting buffers clipped out because of the wrong GstSegments started becoming a problen when this commit was introduced: ab6e49e9cc audioparsers: add back segment clipping to parsers that have lost it This clipping makes test DASH shaka 35 from MVT tests[1] to fail in WebKitGTK/WPE (at least) and can potentially cause a number of other problems in the WebKit Media Source Extensions (MSE) code. Note that this new behaviour of not emitting new GstSegments only makes sense when qtdemux is being used as a pure demuxer and not as part of a regular pipeline. This is why the variant field has been added. When equal to VARIANT_MSE_BYTESTREAM, it will make qtdemux behave differently in push mode, taking decisions that meet the expectations for an MSE-like processing mode. This kind of tweaks have been done in the past for MSS streams, for instance. That code has been refactored to use VARIANT_MSS_FRAGMENTED now, instead of its own dedicated boolean flag. Co-authored by: Alicia Boya García <ntrrgc@gmail.com> ...who suggested to use "variant: mse-bytestream" in the caps to identify that mode, as proposed in her unmerged patch: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/467 [1] https://github.com/rdkcentral/mvt Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3995>
* ccconverter: don't debug a potentially freed filter capsMatthew Waters2023-02-211-1/+2
| | | | | | Fixes a use-after-free Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4012>
* av1parser, h265parser: Fix some code defectsMengkejiergeli Ba2023-02-202-4/+7
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4002>
* avviddec: change AV_CODEC_CAP_AUTO_THREADS->AV_CODEC_CAP_OTHER_THREADSU. Artie Eoff2023-02-151-1/+5
| | | | | | | | | | | | | This fixes a compile error with recent upstream FFmpeg. The AV_CODEC_CAP_AUTO_THREADS was deprecated and renamed to AV_CODEC_CAP_OTHER_THREADS in FFmpeg upstream commit 7d09579190de (lavc 58.132.100). The AV_CODEC_CAP_AUTO_THREADS was finally removed in FFmpeg upstream commit 10c9a0874cb3 (lavc 59.63.100). Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3965>
* audio: channel-mix: Fix channel count limit to be able to equal 64Yang, Xuchen2023-02-141-4/+4
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3956>
* vtdec: Fix not waiting for async frames when flushingPiotr Brzeziński2023-02-111-1/+1
| | | | | | | | | This was causing incorrect output when seeking, especially when used with a multithreaded source like `videotestsrc n-threads=2`. It should now correctly wait for frames still being processed by VT while vtdec is flushing. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3939>
* nvcodec: Log readable errors when initializing CUDANirbheek Chauhan2023-02-101-4/+13
| | | | | | | | | It is really difficult for people to figure out why nvcodec has 0 features. Even the debug log is cryptic. Also make sure the errors go to the ERROR log level, which is more likely to be enabled by default. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3796>
* nvcodec: Fix reporting of CuDeviceGetCount errorNirbheek Chauhan2023-02-101-1/+2
| | | | | | cuda_ret is was always going to be CUDA_SUCCESS in the error log. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3796>
* webrtc examples: Use webrtc.gstreamer.netNirbheek Chauhan2023-02-1010-14/+14
| | | | | | | | Actually just a CNAME to webrtc.nirbheek.in for now, but it allows replacement / hosting without my involvement, so reduces the bus factor. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3908>
* pad: Don't leak user_data in gst_pad_start_taskJan Alexander Steffens (heftig)2023-02-091-0/+5
| | | | | | | | | | | When the task already exists, we forgot to free the passed `user_data`. This wasn't an issue for most C code, which doesn't pass a `GDestroyNotify`, but bindings such as gstreamer-rs do! That said, allocating a trampoline in gstreamer-rs just for it to get thrown away again is awkward. Maybe we need a `gst_pad_resume_task`? Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3923>
* jpegdec: Disable libjpeg-turbo SIMD acceleration support for nowMarek Vasut2023-02-081-0/+3
| | | | | | | | The libjpeg-turbo SIMD acceleration support suffers from multiple unresolved cornercases. Disable the libjpeg-turbo for now until those cornercases are resolved. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3704>
* aom: Include stream-format and alignment in the AV1 capsSebastian Dröge2023-02-083-4/+6
| | | | | | | | The decoder does not work with arbitrary alignment and annexb stream format and the encoder can give the information that it outputs obu-stream/tu to downstream. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3875>
* gstreamer: bin: Don't unlock unlocked mutex in gst_bin_remove_func()medithe2023-02-071-2/+3
| | | | | | | Calling `g_mutex_unlock(mutex)` leads to an undefined behavior if the mutex is not locked by the current thread. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3909>
* closedcaption: Don't leak caps eventEdward Hervey2023-02-071-6/+6
| | | | | | All events that we handle should be unreffed Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3907>
* va: Avoid the array index overflow when filling 8x8 scaling list.He Junyan2023-02-021-4/+10
| | | | | | | | | The VA API has not defined the scaling list entries for U/V planes for the 4:4:4 stream. In fact, we do not meet the 4:4:4 format output for H264 so far, and scaling list is not used frequently, so we just print out some warning and ignore these scaling list values. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3879>
* nvvp9dec: Fix return valueSeungha Yang2023-02-021-1/+1
| | | | | | It should return GstFlowReturn value, not boolean Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3876>
* rtspsrc: Also consider "Method Not Valid In This State" error in broken ↵Sebastian Dröge2023-02-011-0/+1
| | | | | | | | | control URL handling workaround Some servers send a 455 error instead of any reasonable error when using a correctly constructed control URL. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3861>
* qmlglsrc: Handle HiDPI scalingJan Schmidt2023-01-311-2/+6
| | | | | | | | | | When calculating the capture framebuffer size, include any device scaling applied to the rendered framebuffer Fixes only capturing part of the window when there is a global scale factor. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3622>
* qmlglsrc: Unmap buffer before adding sync metaJan Schmidt2023-01-311-4/+10
| | | | | | | | | Adding a sync meta to a GstBuffer requires that it be writable. Mapping the buffer with the video frame API holds an extra ref on the buffer, so unmap before trying to modify it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3622>
* qmlglsrc: Stop when basesrc calls unlock()Jan Schmidt2023-01-311-2/+11
| | | | | | | | | Instead of stopping capture when the state changes, handle other cases of basesrc stopping capture by - such as handling an EOS event - by implementing an unlock() method Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3622>
* mpegpsdemux: Ignore DTS if PTS < DTSSeungha Yang2023-01-281-0/+10
| | | | | | | It's possibly timestamp rollover case. But PTS < DTS is already invalid case anyway. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3834>
* wasapi2src: Fix loopback capture on Windows 10 Anniversary UpdateSeungha Yang2023-01-261-13/+23
| | | | | | | | ... or older. Work around an OS bug that loopback capture device doesn't notify event. Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1738 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3809>
* v4l2h264dec: Fix Raspberry Pi4 will not play video in applicationPawel Stawicki2023-01-261-1/+1
| | | | | | | | | Ensure object v4l2object->pool will be released by correctly releasing the temporary thread-safety lock Fixes issue #1729 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3795>