GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2023-07-31T07:56:46Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2871getting compilation error in macOS2023-07-31T07:56:46ZJaiv Shahgetting compilation error in macOSI am on Mac OS Ventura, I have tried to install with brew install gstreamer (along with gst-plugins-common,gst-plugins-good). I then try to compile the first example at https://gstreamer.freedesktop.org/documentation/tutorials/basic/hell...I am on Mac OS Ventura, I have tried to install with brew install gstreamer (along with gst-plugins-common,gst-plugins-good). I then try to compile the first example at https://gstreamer.freedesktop.org/documentation/tutorials/basic/hello-world.html?gi-language=c
and I am getting compilation error:
#include <gst/gst.h>
^~~~~~~~~~~
1 error generated.
I tiered uninstalling gstreamer and re-installed using the .pkg files but I am still getting same issueshttps://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/177Retrieve path string in mounts through GstRTSPClient2023-08-08T08:53:45ZTianyi LuRetrieve path string in mounts through GstRTSPClientHi, I am playing with `Gstreamer-rtsp-server`. Currently, I am using `gst_rtsp_mount_points_remove_factory()` to remove the factory with associated path in mount if the one of the client is closing (I know it sounds whacky, but ultimatel...Hi, I am playing with `Gstreamer-rtsp-server`. Currently, I am using `gst_rtsp_mount_points_remove_factory()` to remove the factory with associated path in mount if the one of the client is closing (I know it sounds whacky, but ultimately, I will detect if the current closing client is the last one). To achieve that, I connect the `GstRTSPClient::close` signal and implement a callback like this,
```
static void testClientClosed(GstRTSPClient* client, gpointer userdata)
{
GstRTSPMountPoints* mounts = gst_rtsp_client_get_mount_points(client);
gchar* matchedPath = NULL;
for (auto path : mountPaths)
{
GstRTSPMediaFactory* factory = gst_rtsp_mount_points_match(mounts, path, NULL);
if (factory)
{
matchedPath = path;
break;
}
}
....
gst_rtsp_mount_points_remove_factory(mounts, matchedPath);
....
}
```
My question is, is there any methods to retrieve the client mount path instead of doing the iteration? Thanks in advance.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/394Canceller implementation issue with webrtchttp2023-08-04T12:09:05ZSanchayan Maitysanchayan@sanchayanmaity.netCanceller implementation issue with webrtchttpCommit 08b6251 added the check to ensure only one canceller at a time for `net/webrtc`.
In `whipsink` and since `whipwebrtcsink` picked up the same implementation, there exists a bug around the use of canceller.
`whipsink` calls `wait_...Commit 08b6251 added the check to ensure only one canceller at a time for `net/webrtc`.
In `whipsink` and since `whipwebrtcsink` picked up the same implementation, there exists a bug around the use of canceller.
`whipsink` calls `wait_async` while passing the canceller as an argument. The path `send_offer -> do_post -> parse_endpoint_response` results in the canceller being replaced in each call to `wait_async`. Since the `wait_async` call in `whipsink` does not ensure one canceller, with the async call the use of canceller/abort is subtly broken.
Similarly, for `whepsrc`.
CC: @arun @tkanakamallahttps://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/124Adding Properties / cryptic PROP_02023-07-28T11:47:08ZVitaly IvanovAdding Properties / cryptic PROP_0I find Adding Properties (https://gstreamer.freedesktop.org/documentation/plugin-development/basics/args.html?gi-language=c) extremely rudimentary and unhelpful. I've spent more time trying to figure out (unsuccessfully) why there's unus...I find Adding Properties (https://gstreamer.freedesktop.org/documentation/plugin-development/basics/args.html?gi-language=c) extremely rudimentary and unhelpful. I've spent more time trying to figure out (unsuccessfully) why there's unused PROP_0 in the properties enum, which also presents in at least some Base GST elements (https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-base/gst/audiotestsrc/gstaudiotestsrc.c#L117).
Neither Google nor chatGPT know anything about that, there's nothing in the docs, nothing in comments in the source code. Is it really required? Is property_id = 0 a reserved value?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2865v4l2jpegdec : stream hangs2023-08-30T14:52:03ZCarl Karstenv4l2jpegdec : stream hangsgst-launch-1.0 videotestsrc ! jpegenc ! jpegparse ! v4l2jpegdec ! videoconvert ! video/x-raw,colorimetry=bt709 ! fakesink
#### Expected Behavior
run forever
#### Observed Behavior
counts to 00:00:00.2 and hangs.
sometimes loger, but n...gst-launch-1.0 videotestsrc ! jpegenc ! jpegparse ! v4l2jpegdec ! videoconvert ! video/x-raw,colorimetry=bt709 ! fakesink
#### Expected Behavior
run forever
#### Observed Behavior
counts to 00:00:00.2 and hangs.
sometimes loger, but not for more than 30 seconds.
Pi4 - raspios, bullseye and beta bookworm
- **GStreamer Version:**
- gst-inspect-1.0 v4l2jpegdec
- ...
Version 1.22.0
License LGPL
Source module gst-plugins-good
Documentation https://gstreamer.freedesktop.org/documentation/video4linux2/
Source release date 2023-01-23
Binary package GStreamer Good Plugins (Debian)
Origin URL https://tracker.debian.org/pkg/gst-plugins-good1.0
- **Command line:**
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
1. open terminal
2. type `command`
### How reproducible is the bug?
<!-- The reproducibility of the bug is Always/Intermittent/Only once after doing a very specific set of steps-->
### Related non-duplicate issues
similar https://gitlab.freedesktop.org/gstreamer/gst-omx/-/issues/41
### Additional Information
<!-- Any other information such as logs. Make use of <details> for long output -->https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/176RTSP Client does not disconnect when RTSPMediaFactory is removed (no EOS sent).2023-08-08T08:58:55ZPaulo GomesRTSP Client does not disconnect when RTSPMediaFactory is removed (no EOS sent).Hello,
First, let me try to describe what I am trying to achieve.
I have an GstRTSPServer running, that provides several streams, each one with its own mount point.
For that I create a RTSPMediaFactory with its own pipeline and add it w...Hello,
First, let me try to describe what I am trying to achieve.
I have an GstRTSPServer running, that provides several streams, each one with its own mount point.
For that I create a RTSPMediaFactory with its own pipeline and add it with the .add_factory method. So far so good.
Now, the problem is that sometimes, the characteristics of that stream change. To handle that I .remove_factory() and .add_factory() on the same mount point, this time with a slightly different pipeline (basically, I want to optionally add audio to the stream, and toggle between the two pipelines when settings change).
The problem is, since the both steps (remove and add factory) happen in sequence, the client never detects that the stream was stopped.
I sense this is because when the RTSPMediaFactory is removed, no BYE signal is sent to the client, so it just recovers after some brief moments.
I tried .set_eos_shutdown(True) but didn't notice any change.
I've looked into this old issue https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/8 and it seems to be related to my problem, but could not find a solution.
Is this by design? A bug? Or am I doing this the wrong way?
Thanks in advance.
FYI, the client I'm using is VLC.
The server was written in Python and Gstreamer version is 1.18.4https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2855Segfault playing video with gst-launch-1.0 playbin; crashes libreoffice impress2023-07-25T19:48:14ZJohannes BuchnerSegfault playing video with gst-launch-1.0 playbin; crashes libreoffice impressI am facing a segfault of gstreamer on any video. This occurs with libreoffice impress whenever I try to insert a video into a slide, which I reported at https://bugs.documentfoundation.org/show_bug.cgi?id=156445, and you can find my sys...I am facing a segfault of gstreamer on any video. This occurs with libreoffice impress whenever I try to insert a video into a slide, which I reported at https://bugs.documentfoundation.org/show_bug.cgi?id=156445, and you can find my system information there (up-to-date Ubuntu Linux).
I am able to reproduce with the following command:
$ gst-launch-1.0 playbin uri=file:////tmp/myvideo.mp4
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
(gst-launch-1.0:2132306): GStreamer-CRITICAL **: 15:27:08.872: gst_caps_from_string: assertion 'string' failed
(gst-launch-1.0:2132306): GStreamer-CRITICAL **: 15:27:08.872: gst_pad_template_new: assertion 'caps != NULL' failed
(gst-launch-1.0:2132306): GStreamer-CRITICAL **: 15:27:08.872: gst_mini_object_unref: assertion 'mini_object != NULL' failed
(gst-launch-1.0:2132306): GStreamer-CRITICAL **: 15:27:08.872: gst_element_class_add_pad_template: assertion 'GST_IS_PAD_TEMPLATE (templ)' failed
(gst-launch-1.0:2132306): GStreamer-Video-CRITICAL **: 15:27:08.872: gst_video_decoder_init: assertion 'pad_template != NULL' failed
(gst-launch-1.0:2132306): GStreamer-WARNING **: 15:27:08.872: Element vaapidecode0 has an ALWAYS template src, but no pad of the same name
Caught SIGSEGV
#0 0x00007fc533d42d7f in __GI___poll (fds=0x557662bc7dd0, nfds=2, timeout=100)
#1 0x00007fc533f5d1f6 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007fc533f072b3 in g_main_loop_run ()
#3 0x00005576612acadb in ()
#4 0x00007fc533c53d90 in __libc_start_call_main
#5 0x00007fc533c53e40 in __libc_start_main_impl
#6 0x00005576612acc05 in _start ()
Spinning. Please run 'gdb gst-launch-1.0 2132306' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
$ gdb gst-launch-1.0 2132306
...
Reading symbols from gst-launch-1.0...
(No debugging symbols found in gst-launch-1.0)
Attaching to program: /usr/bin/gst-launch-1.0, process 2132306
[New LWP 2132307]
[New LWP 2132308]
[New LWP 2132309]
[New LWP 2132310]
[New LWP 2132311]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007fc533d42d7f in __GI___poll (fds=0x557662bc7dd0, nfds=2, timeout=100) at ../sysdeps/unix/sysv/linux/poll.c:29
29 ../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
(gdb) info thread
Id Target Id Frame
* 1 Thread 0x7fc533971740 (LWP 2132306) "gst-launch-1.0" 0x00007fc533d42d7f in __GI___poll (fds=0x557662bc7dd0, nfds=2, timeout=100)
at ../sysdeps/unix/sysv/linux/poll.c:29
2 Thread 0x7fc5320e9640 (LWP 2132307) "typefind:sink" syscall ()
at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
3 Thread 0x7fc5318e8640 (LWP 2132308) "gmain" 0x00007fc533d42d7f in __GI___poll (fds=0x557662bc7b40, nfds=1, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
4 Thread 0x7fc530cd8640 (LWP 2132309) "qtdemux0:sink" 0x00007fc533d0f868 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0,
req=0x7fc530cd5c00, rem=0x7fc530cd5bf0)
at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
5 Thread 0x7fc523fff640 (LWP 2132310) "multiqueue0:src" syscall ()
at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
6 Thread 0x7fc5237fe640 (LWP 2132311) "qtdemux0:sink" 0x00007fc533d0f868 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0,
req=0x7fc5237fdcd0, rem=0x7fc5237fdcc0)
at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
(gdb)
I found this ancient thread from 2013: https://bbs.archlinux.org/viewtopic.php?id=165774
Based on that I have:
$ apt search gst-plugins
Sorting... Done
Full Text Search... Done
gir1.2-gst-plugins-bad-1.0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed,automatic]
GObject introspection data for the GStreamer libraries from the "bad" set
gir1.2-gst-plugins-base-1.0/jammy,now 1.20.1-1 amd64 [installed,automatic]
GObject introspection data for the GStreamer Plugins Base library
$ apt search gst-vaapi
Sorting... Done
Full Text Search... Done
Here is the gstreamer version I have installed:
$ apt search gstreamer|grep gstreamer|grep installed
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
gir1.2-gstreamer-1.0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed,automatic]
gstreamer1.0-alsa/jammy,now 1.20.1-1 amd64 [installed,automatic]
gstreamer1.0-clutter-3.0/jammy-updates,now 3.0.27-2ubuntu1 amd64 [installed,automatic]
gstreamer1.0-gl/jammy,now 1.20.1-1 amd64 [installed,automatic]
gstreamer1.0-gtk3/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed,automatic]
gstreamer1.0-libav/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed,automatic]
gstreamer1.0-nice/jammy,now 0.1.18-2 amd64 [installed,automatic]
gstreamer1.0-packagekit/jammy,now 1.2.5-2ubuntu2 amd64 [installed,automatic]
gstreamer1.0-pipewire/jammy-updates,now 0.3.48-1ubuntu3 amd64 [installed,automatic]
gstreamer1.0-plugins-bad/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed,automatic]
gstreamer1.0-plugins-base/jammy,now 1.20.1-1 amd64 [installed]
gstreamer1.0-plugins-good/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed]
gstreamer1.0-plugins-ugly/jammy,now 1.20.1-1 amd64 [installed,automatic]
gstreamer1.0-pulseaudio/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed]
gstreamer1.0-tools/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed]
gstreamer1.0-vaapi/jammy-updates,now 1.20.1-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-x/jammy,now 1.20.1-1 amd64 [installed]
libgstreamer-gl1.0-0/jammy,now 1.20.1-1 amd64 [installed,automatic]
libgstreamer-plugins-bad1.0-0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed,automatic]
libgstreamer-plugins-base1.0-0/jammy,now 1.20.1-1 amd64 [installed]
libgstreamer-plugins-good1.0-0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed]
libgstreamer1.0-0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed]
libreoffice-avmedia-backend-gstreamer/jammy-updates,jammy-security,now 1:7.3.7-0ubuntu0.22.04.3 amd64 [installed]
phonon-backend-gstreamer-common/jammy,now 4:4.10.0-1build1 amd64 [installed]
phonon4qt5-backend-gstreamer/jammy,now 4:4.10.0-1build1 amd64 [installed]https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2854v4l2sink: Playback does not work if V4L2 buffers are smaller than GStreamer b...2023-08-01T11:53:19ZBugzilla Migration Userv4l2sink: Playback does not work if V4L2 buffers are smaller than GStreamer buffers## Submitted by Tobias Modschiedler
**[Link to original bug (#749016)](https://bugzilla.gnome.org/show_bug.cgi?id=749016)**
## Description
This topic was started in the discussion of [bug 746834](https://bugzilla.gnome.org/show_bug....## Submitted by Tobias Modschiedler
**[Link to original bug (#749016)](https://bugzilla.gnome.org/show_bug.cgi?id=749016)**
## Description
This topic was started in the discussion of [bug 746834](https://bugzilla.gnome.org/show_bug.cgi?id=746834) at Comment 18 (https://bugzilla.gnome.org/show_bug.cgi?id=746834#c18).
If GStreamer source buffers are larger that V4L2 buffers (which makes sense for MPEG-TS data), copying them fails in gst_v4l2_buffer_pool_copy_buffer().
I'll copy the relevant part of Nicolas' comment here:
---
GstV4l2 also kind of lack some support. If the buffer is bigger then the v4l2 buffer size, it simply fails. It's fine for raw data, but for encoded data it should probably spread the data over multiple buffers and properly set the size for the last one. For mpegts, the buffer size will always be a multiple of 188 anyway.
I think we could have mpegts specific code to select a decent default size (N * 188), or change the driver to pick a better default. Then if a buffer is bigger and we have encoded data, we should loop (copy and queue), until all data has been consumed.
---
I'm having problems coming up with a patch. The "multi-buffer" handling will probably be in gst_v4l2_buffer_pool_process() at label "copying". But what happens if only a part of the source buffer can be copied, i.e. not enough destination buffers can be acquired?https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/439Cerbero build crashes on Win 11 x642023-07-26T09:03:29ZNitin HarishCerbero build crashes on Win 11 x64I do have:
1. Win 11 x64 Build 22631
1. Python 3.10.11
1. VS 2022 community v 17.6.5
1. Checked out Cerbero 1.22
1. MSYS2
Fails with the following error:
![image](/uploads/3c687a37c46a87082daf8e2881fd98c5/image.png)
My end goal is to...I do have:
1. Win 11 x64 Build 22631
1. Python 3.10.11
1. VS 2022 community v 17.6.5
1. Checked out Cerbero 1.22
1. MSYS2
Fails with the following error:
![image](/uploads/3c687a37c46a87082daf8e2881fd98c5/image.png)
My end goal is to get Gst 1.22.5 MSI installers built for WINDOWS platform (it is NOT uploaded yet on the site)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2843gstrtpjitterbuffer: Support RTCP sender reports that arrive before the first ...2023-08-03T20:58:25ZCharlie Blevinsgstrtpjitterbuffer: Support RTCP sender reports that arrive before the first RTP packetSteps to reproduce:
1. Launch rtspsrc pointed to a server that delivers rtp packets in the following order:
1. ...RTSP handshake packets ...
2. RTCP sender report
3. First rtp packet
4. ...all remaining rtp packets...
2. ...Steps to reproduce:
1. Launch rtspsrc pointed to a server that delivers rtp packets in the following order:
1. ...RTSP handshake packets ...
2. RTCP sender report
3. First rtp packet
4. ...all remaining rtp packets...
2. Add a probe to listen for and log reference-timestamp-meta (absolute timestamps)
Expected: The probe should find reference-timestamp-meta on all rtp buffers immediately after the RTCP SR is received.
Actual: The probe only finds the reference-timestamp-meta after the second RTCP SR is received and processed.
-------------------
Gstreamer version: 1.22
OS: MacOShttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2841Input-Selector briefly freezes on switching pads2023-08-15T21:56:36Zveed yoInput-Selector briefly freezes on switching pads### Describe your issue
Switching input-selector feeds causes the output to be glitchy right after the switch. The brief freezing corrects itself after about 500ms-1s and video plays back fine after that.
This issue was observed in 1.22....### Describe your issue
Switching input-selector feeds causes the output to be glitchy right after the switch. The brief freezing corrects itself after about 500ms-1s and video plays back fine after that.
This issue was observed in 1.22.2 version.
This problem was not present in 1.20.3.
#### Expected Behavior
Video switching should be without glitches/freeze.
#### Observed Behavior
<!-- What actually happened -->
#### Setup
- 22.04.1-Ubuntu
- 1.22.2
- Need to input switch on the input-selector; so command line doesn't work.
### Steps to reproduce the bug
Run this code and you can notice that the ball is glitchy after the switch. It shows one of the earlier frames followed by a pause followed by the new location where it should be and then it unfreezes and continues smoothly.
```
#include <unistd.h>
#include <gst/gst.h>
#define PIPELINE_STR \
"input-selector name=sel sync-mode=1 cache-buffers=true "\
"videotestsrc is-live=true pattern=18 ! video/x-raw,width=960,height=540,framerate=30/1 ! sel.sink_0 "\
"videotestsrc is-live=true pattern=0 ! video/x-raw,width=960,height=540,framerate=30/1 ! sel.sink_1 "\
"sel. ! timeoverlay ! autovideosink sync=true"
int main (int argc, char *argv[])
{
gst_init (&argc, &argv);
gchar* pipelineStr = PIPELINE_STR;
GMainLoop *loop = g_main_loop_new (NULL, FALSE);
GstPipeline *pipeline = GST_PIPELINE(gst_parse_launch(pipelineStr, NULL));
GstElement *selector = gst_bin_get_by_name (GST_BIN (pipeline), "sel");
gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);
while(1){
sleep(3);
GstPad *newPad = gst_element_get_static_pad (selector, "sink_1");
g_print("switching to sink_1 pad\n");
g_object_set (G_OBJECT (selector), "active-pad", newPad, NULL);
sleep(3);
newPad = gst_element_get_static_pad (selector, "sink_0");
g_print("switching to sink_0 pad\n");
g_object_set (G_OBJECT (selector), "active-pad", newPad, NULL);
}
g_main_loop_run (loop);
gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
gst_object_unref (GST_OBJECT (pipeline));
return 0;
}
```
### How reproducible is the bug?
Problem reproducible 100% of the time. Problem is more obvious if you save the output from the input-selector to a file (say after encoding it as h264/mp4). Playing back that file using ffmpeg would show all sorts of weirdness and complaints about DTS being incorrect. It feels like the input selector is buffering up the video even when the stream has been switched to a different one.
### Screenshots if relevant
-
The one on the left is gstreamer 1.20.3 and the one on the right is gstreamer 1.22.2. The stutter and jump backwards in time is observable in the newer one on the right.
![gst-1.20.3-vs-1.22.2](/uploads/3a27d303c070a97aa413d95a63dd4143/gst-1.20.3-vs-1.22.2.mp4)
### Solutions you have tried
This problem arose when I upgraded from 1.20.3 to 1.22.2. I tried going to `main` and it still happens. Also, it happens with 1.22.0 I believe. I haven't been able to nail down which commit caused the issue.
### Related non-duplicate issues
### Additional Information
<!-- Any other information such as logs. Make use of <details> for long output -->https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2840gst_registry_find_plugin does not detect libav plugins created from FFMpeg2023-07-21T01:34:20ZF. Duncanhgst_registry_find_plugin does not detect libav plugins created from FFMpeggst-libav plugins such as avdec_aac are not detected by a call to gst_registry_find_plugin(),
even when gst-inspect-1.0 sees them
This is an issue because some libav plugins can be absent if an incomplete version of ffmpeg has been shi...gst-libav plugins such as avdec_aac are not detected by a call to gst_registry_find_plugin(),
even when gst-inspect-1.0 sees them
This is an issue because some libav plugins can be absent if an incomplete version of ffmpeg has been shipped by the distribution (for patent reasons, with a full version available elsewhere (e.g. Red Hat, rpmfusion)). If it is absent, gstreamer segfaults when the missing plugin is invoked in a pipeline.
(I am looking for a test for whether avdec_aac is available or not, to have a more graceful termination with an informative message if it isn't. gst_registry_find works for this for standard gstreamer plugins)https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/1022gstrtpjitterbuffer: Support RTCP sender reports that arrive before the first ...2023-07-22T08:42:36ZCharlie Blevinsgstrtpjitterbuffer: Support RTCP sender reports that arrive before the first RTP packetSteps to reproduce:
1. Launch rtspsrc pointed to a server that delivers rtp packets in the following order:
1. ...RTSP handshake packets ...
2. RTCP sender report
3. First rtp packet
4. ...all remaining rtp packets...
2. ...Steps to reproduce:
1. Launch rtspsrc pointed to a server that delivers rtp packets in the following order:
1. ...RTSP handshake packets ...
2. RTCP sender report
3. First rtp packet
4. ...all remaining rtp packets...
2. Add a probe to listen for and log reference-timestamp-meta (absolute timestamps)
Expected: The probe should find reference-timestamp-meta on all rtp buffers immediately after the RTCP SR is received.
Actual: The probe only finds the reference-timestamp-meta after the second RTCP SR is received and processed.
-------------------
Gstreamer version: 1.22
OS: MacOShttps://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/475Bug with PARAM_FLAG_CONTROLLABLE?2023-07-20T12:43:09ZMichiel WesterbeekBug with PARAM_FLAG_CONTROLLABLE?Hey there,
I'm trying to use ParamSpec like this:
```
glib::ParamSpecUInt::builder("border-radius-px")
.nick("Border radius in pixels")
.blurb("Draw rounded corners with given border radius")
...Hey there,
I'm trying to use ParamSpec like this:
```
glib::ParamSpecUInt::builder("border-radius-px")
.nick("Border radius in pixels")
.blurb("Draw rounded corners with given border radius")
.default_value(DEFAULT_BORDER_RADIUS)
.readwrite()
.controllable()
.mutable_playing()
.build()
```
I'm trying to set "controllable". But it's not working properly.
It's adding the flag PARAM_FLAG_CONTROLLABLE, which is defined here:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/blob/main/gstreamer/src/lib.rs#L289
as USER_1, but USER_1 seems to be defined as 256, not 512 as I think it needs to be.
https://github.com/gtk-rs/gtk-rs-core/blob/master/glib/src/gobject/flags.rs#L21-L22
Here it's defined as 512:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/blob/2cb7fc8122c5564221b29ff8190bbf6b79134e11/gstreamer/sys/src/lib.rs#L518
Is it a bug that 512 is missing?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2836compositor: `test_new_pad_after_eos` frequently fails under Valgrind2023-07-20T19:57:40ZNirbheek Chauhannirbheek.chauhan@gmail.comcompositor: `test_new_pad_after_eos` frequently fails under ValgrindExample: https://gitlab.freedesktop.org/nirbheek/gstreamer/-/jobs/45806299
Reproduce locally with: `DEBUGINFOD_URLS= ./gst-env.py --builddir builddir/ gst-validate-launcher check.gst-plugins-base.elements_compositor.test_new_pad_after_e...Example: https://gitlab.freedesktop.org/nirbheek/gstreamer/-/jobs/45806299
Reproduce locally with: `DEBUGINFOD_URLS= ./gst-env.py --builddir builddir/ gst-validate-launcher check.gst-plugins-base.elements_compositor.test_new_pad_after_eos --meson-no-rebuild --dump-on-failure --valgrind --n-runs 100`
<p>
<details>
<summary>Output:</summary>
```
## elements_compositor output
(gst-plugin-scanner:18204): GStreamer-WARNING **: 17:37:14.028: Failed to load plugin '/builds/nirbheek/gstreamer/build/subprojects/gst-plugins-bad/sys/qsv/libgstqsv.so': /builds/nirbheek/gstreamer/build/subprojects/gst-plugins-bad/sys/qsv/../../gst-libs/gst/va/libgstva-1.0.so.0: undefined symbol: vaCopy
(gst-plugin-scanner:18204): GStreamer-WARNING **: 17:37:14.152: Failed to load plugin '/builds/nirbheek/gstreamer/build/subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so': /builds/nirbheek/gstreamer/build/subprojects/gst-plugins-bad/sys/msdk/../../gst-libs/gst/va/libgstva-1.0.so.0: undefined symbol: vaCopy
(gst-plugin-scanner:18204): GStreamer-WARNING **: 17:37:18.502: Failed to load plugin '/builds/nirbheek/gstreamer/build/subprojects/gst-plugins-bad/sys/va/libgstva.so': /builds/nirbheek/gstreamer/build/subprojects/gst-plugins-bad/sys/va/../../gst-libs/gst/va/libgstva-1.0.so.0: undefined symbol: vaCopy
Running suite(s): compositor
Unexpected critical/warning: write map requested on non-writable buffer
Stack trace:
gst_debug_get_stack_trace (gstinfo.c:3466)
gst_check_log_critical_func (gstcheck.c:281)
g_logv (gmessages.c:1350)
g_log (gmessages.c:1415)
gst_buffer_map_range (gstbuffer.c:1889)
gst_video_frame_map_id (video-frame.c:117)
gst_compositor_aggregate_frames (compositor.c:1647)
gst_video_aggregator_aggregate (gstvideoaggregator.c:2147)
gst_aggregator_aggregate_func (gstaggregator.c:1461)
gst_task_func (gsttask.c:399)
g_thread_pool_thread_proxy (gthreadpool.c:308)
g_thread_proxy (gthread.c:805)
start_thread (pthread_create.c:479)
__clone (clone.S:93)
0%: Checks: 1, Failures: 1, Errors: 0
../subprojects/gstreamer/libs/gst/check/gstcheck.c:286:F:general:test_new_pad_after_eos:0: Unexpected critical/warning: write map requested on non-writable buffer
Check suite compositor ran in 2.207s (tests failed: 1)
**Duration**: 28.234612941741943
## test_new_pad_after_eos.valgrind:
==18204== Memcheck, a memory error detector
==18204== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==18204== Using Valgrind-3.16.0 and LibVEX; rerun with -h for copyright info
==18204== Command: /builds/nirbheek/gstreamer/build/subprojects/gstreamer/libs/gst/helpers/gst-plugin-scanner -l /builds/nirbheek/gstreamer/build/subpro==18618== Thread 2 compositor0:src:
==18618== Invalid write of size 8
==18618== at 0x489CD92: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1300)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654b010 is 64 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr8
fun:gst_buffer_pool_acquire_buffer
fun:gst_video_aggregator_create_output_buffer
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid write of size 8
==18618== at 0x4A811CA: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2121)
==18618== by 0x4A811CA: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654b018 is 72 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr8
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid write of size 8
==18618== at 0x4A811D9: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2127)
==18618== by 0x4A811D9: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654b028 is 88 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr8
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid read of size 8
==18618== at 0x4A81222: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2138)
==18618== by 0x4A81222: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654b028 is 88 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr8
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid read of size 8
==18618== at 0x4A81226: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2138)
==18618== by 0x4A81226: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654b020 is 80 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr8
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid read of size 8
==18618== at 0x4A8122A: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2138)
==18618== by 0x4A8122A: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654b018 is 72 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr8
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid read of size 8
==18618== at 0x4AC81F6: gst_video_frame_map_id (video-frame.c:79)
==18618== by 0x74345D5: gst_compositor_aggregate_frames (compositor.c:1647)
==18618== by 0x4A81266: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2147)
==18618== by 0x4A81266: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654afd0 is 0 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr8
fun:gst_video_frame_map_id
fun:gst_compositor_aggregate_frames
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid read of size 8
==18618== at 0x48987E0: gst_buffer_iterate_meta (gstbuffer.c:2429)
==18618== by 0x4A9A9BA: gst_buffer_get_video_meta (gstvideometa.c:174)
==18618== by 0x4AC8300: gst_video_frame_map_id (video-frame.c:82)
==18618== by 0x74345D5: gst_compositor_aggregate_frames (compositor.c:1647)
==18618== by 0x4A81266: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2147)
==18618== by 0x4A81266: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654b0d0 is 256 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr8
fun:gst_buffer_iterate_meta
fun:gst_buffer_get_video_meta
fun:gst_video_frame_map_id
fun:gst_compositor_aggregate_frames
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid read of size 8
==18618== at 0x4897730: gst_buffer_map_range (gstbuffer.c:1841)
==18618== by 0x4AC83A2: gst_video_frame_map_id (video-frame.c:117)
==18618== by 0x74345D5: gst_compositor_aggregate_frames (compositor.c:1647)
==18618== by 0x4A81266: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2147)
==18618== by 0x4A81266: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654afd0 is 0 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr8
fun:gst_buffer_map_range
fun:gst_video_frame_map_id
fun:gst_compositor_aggregate_frames
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid read of size 4
==18618== at 0x4897774: gst_buffer_map_range (gstbuffer.c:1843)
==18618== by 0x4AC83A2: gst_video_frame_map_id (video-frame.c:117)
==18618== by 0x74345D5: gst_compositor_aggregate_frames (compositor.c:1647)
==18618== by 0x4A81266: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2147)
==18618== by 0x4A81266: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654b040 is 112 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:gst_buffer_map_range
fun:gst_video_frame_map_id
fun:gst_compositor_aggregate_frames
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid read of size 1
==18618== at 0x48CF422: gst_mini_object_is_writable (gstminiobject.c:368)
==18618== by 0x4897816: gst_buffer_map_range (gstbuffer.c:1852)
==18618== by 0x4AC83A2: gst_video_frame_map_id (video-frame.c:117)
==18618== by 0x74345D5: gst_compositor_aggregate_frames (compositor.c:1647)
==18618== by 0x4A81266: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2147)
==18618== by 0x4A81266: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654afe0 is 16 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr1
fun:gst_mini_object_is_writable
fun:gst_buffer_map_range
fun:gst_video_frame_map_id
fun:gst_compositor_aggregate_frames
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Invalid read of size 4
==18618== at 0x48CF428: gst_mini_object_is_writable (gstminiobject.c:371)
==18618== by 0x4897816: gst_buffer_map_range (gstbuffer.c:1852)
==18618== by 0x4AC83A2: gst_video_frame_map_id (video-frame.c:117)
==18618== by 0x74345D5: gst_compositor_aggregate_frames (compositor.c:1647)
==18618== by 0x4A81266: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2147)
==18618== by 0x4A81266: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618== Address 0x654afd8 is 8 bytes inside a block of size 272 free'd
==18618== at 0x483CA0C: free (vg_replace_malloc.c:538)
==18618== by 0x4B9449C: g_free (gmem.c:192)
==18618== by 0x48CF6CF: gst_mini_object_replace (gstminiobject.c:754)
==18618== by 0x403EA0: gst_buffer_replace (gstbuffer.h:579)
==18618== by 0x403EA0: after_eos_handoff_buffer_cb (compositor.c:2547)
==18618== by 0x51D5AA7: ffi_call_unix64 (unix64.S:76)
==18618== by 0x51D52A3: ffi_call (ffi64.c:525)
==18618== by 0x4C79745: g_cclosure_marshal_generic_va (gclosure.c:1614)
==18618== by 0x4C78995: _g_closure_invoke_va (gclosure.c:873)
==18618== by 0x4C95227: g_signal_emit_valist (gsignal.c:3306)
==18618== by 0x4C959D2: g_signal_emit (gsignal.c:3453)
==18618== by 0x7459CC3: gst_fake_sink_render (gstfakesink.c:502)
==18618== by 0x49DC501: gst_base_sink_chain_unlocked.isra.0 (gstbasesink.c:3955)
==18618== by 0x49DDB8F: gst_base_sink_chain_main (gstbasesink.c:4089)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== by 0x49E8862: gst_base_transform_chain (gstbasetransform.c:2391)
==18618== by 0x48D2B47: gst_pad_chain_data_unchecked (gstpad.c:4463)
==18618== by 0x48D4EF0: gst_pad_push_data (gstpad.c:4739)
==18618== by 0x48DBDD2: gst_pad_push (gstpad.c:4858)
==18618== Block was alloc'd at
==18618== at 0x483B80B: malloc (vg_replace_malloc.c:307)
==18618== by 0x4B943A8: g_malloc (gmem.c:99)
==18618== by 0x4895A9B: gst_buffer_new (gstbuffer.c:864)
==18618== by 0x4896D62: gst_buffer_new_allocate (gstbuffer.c:909)
==18618== by 0x4A9C3A6: video_buffer_pool_alloc (gstvideopool.c:251)
==18618== by 0x489B356: do_alloc_buffer (gstbufferpool.c:286)
==18618== by 0x489B69B: default_acquire_buffer (gstbufferpool.c:1140)
==18618== by 0x489CD7B: gst_buffer_pool_acquire_buffer (gstbufferpool.c:1293)
==18618== by 0x4A7BD32: gst_video_aggregator_create_output_buffer (gstvideoaggregator.c:2850)
==18618== by 0x4A81168: gst_video_aggregator_do_aggregate (gstvideoaggregator.c:2109)
==18618== by 0x4A81168: gst_video_aggregator_aggregate (gstvideoaggregator.c:2347)
==18618== by 0x49BBDEA: gst_aggregator_loop (gstaggregator.c:1461)
==18618== by 0x49BBDEA: gst_aggregator_aggregate_func (gstaggregator.c:1524)
==18618== by 0x4908D1E: gst_task_func (gsttask.c:399)
==18618== by 0x4BB8753: g_thread_pool_thread_proxy (gthreadpool.c:308)
==18618== by 0x4BB8011: g_thread_proxy (gthread.c:805)
==18618== by 0x50A14E1: start_thread (pthread_create.c:479)
==18618== by 0x4DC26C2: clone (clone.S:95)
==18618==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:gst_mini_object_is_writable
fun:gst_buffer_map_range
fun:gst_video_frame_map_id
fun:gst_compositor_aggregate_frames
fun:gst_video_aggregator_do_aggregate
fun:gst_video_aggregator_aggregate
fun:gst_aggregator_loop
fun:gst_aggregator_aggregate_func
fun:gst_task_func
fun:g_thread_pool_thread_proxy
fun:g_thread_proxy
fun:start_thread
fun:clone
}
==18618== Warning: invalid file descriptor -1 in syscall close()
==18618== Warning: invalid file descriptor -1 in syscall close()
==18618==
==18618== HEAP SUMMARY:
==18618== in use at exit: 7,884,425 bytes in 17,028 blocks
==18618== total heap usage: 64,309 allocs, 47,281 frees, 37,979,966 bytes allocated
==18618==
==18618== LEAK SUMMARY:
==18618== definitely lost: 0 bytes in 0 blocks
==18618== indirectly lost: 0 bytes in 0 blocks
==18618== possibly lost: 20,976 bytes in 873 blocks
==18618== still reachable: 6,942,804 bytes in 5,476 blocks
==18618== of which reachable via heuristic:
==18618== length64 : 320 bytes in 8 blocks
==18618== newarray : 1,568 bytes in 18 blocks
==18618== suppressed: 784,477 bytes in 10,255 blocks
==18618== Reachable blocks (those to which a pointer was found) are not shown.
==18618== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==18618==
==18618== For lists of detected and suppressed errors, rerun with: -s
==18618== ERROR SUMMARY: 12 errors from 12 contexts (suppressed: 0 from 0)
==18116==
==18116== HEAP SUMMARY:
==18116== in use at exit: 245,650 bytes in 1,499 blocks
==18116== total heap usage: 40,478 allocs, 38,979 frees, 28,868,709 bytes allocated
==18116==
==18116== LEAK SUMMARY:
==18116== definitely lost: 0 bytes in 0 blocks
==18116== indirectly lost: 0 bytes in 0 blocks
==18116== possibly lost: 0 bytes in 0 blocks
==18116== still reachable: 96 bytes in 2 blocks
==18116== of which reachable via heuristic:
==18116== length64 : 80 bytes in 2 blocks
==18116== newarray : 1,552 bytes in 17 blocks
==18116== suppressed: 241,714 bytes in 1,463 blocks
==18116== Reachable blocks (those to which a pointer was found) are not shown.
==18116== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==18116==
==18116== For lists of detected and suppressed errors, rerun with: -s
==18116== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==> check.gst-plugins-base.elements_compositor.test_new_pad_after_eos: Failed 'Application returned 1'
```
</details>
</p>Seungha Yangseungha@centricular.comSeungha Yangseungha@centricular.comhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2834test suit failing2023-07-20T09:23:03Zshengqi2022test suit failinghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2833libav: Switch to new channel layout API2024-01-29T10:17:53ZEdward Herveylibav: Switch to new channel layout APIA new channel layout API was added in 5.1, deprecating the one we are currently using : https://github.com/FFmpeg/FFmpeg/commit/086a8048061bf9fb4c63943f6962db48175f655c
If we switch to a minimum version of 5.1, we should unconditionally...A new channel layout API was added in 5.1, deprecating the one we are currently using : https://github.com/FFmpeg/FFmpeg/commit/086a8048061bf9fb4c63943f6962db48175f655c
If we switch to a minimum version of 5.1, we should unconditionally switch, else make it compile-time optional.
# Deprecated API being used
* `av_get_channel_layout_nb_channels()` , use `AVChannelLayout.nb_channels` instead
* `AVFrame->channel_layout`, use `AVFrame->ch_layout` instead
* `AVFrame->channels`, use `AVFrame->ch_layout insteadhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2831mem leak play with playbin22023-07-21T08:44:58ZCaptainmem leak play with playbin2### Describe your issue
mem leak with gstreamer 1.22.2 or newer
i have test 1.22.2, 1.22.3 and 1.22.4 all have the issue
no mem leak with version 1.22.0 and 1.22.1
#### Expected Behavior
memory requirement should not change much when pl...### Describe your issue
mem leak with gstreamer 1.22.2 or newer
i have test 1.22.2, 1.22.3 and 1.22.4 all have the issue
no mem leak with version 1.22.0 and 1.22.1
#### Expected Behavior
memory requirement should not change much when playing an mkv
#### Observed Behavior
after 30-40 min the settopbox stops because no more memory is available
#### Setup
Linux OS 3.13.4 or newer
SettopBox with openATV
1.22.2 or newer
### Steps to reproduce the bug
gst-launch-1.0 playbin uri=file:///myfile.mkv
you can use any mkv file Video: h265 or H264 Audio:AC3,DTS
### How reproducible is the bug?
after 30-40 min no more free memory and playback stops
### Solutions you have tried
rollback to Version 1.22.0 or 1.22.1 fix the problemhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2828rtmp2src: no way to know if stream was properly terminated or not on eos2023-08-04T12:24:33ZGuillaume Desmottesrtmp2src: no way to know if stream was properly terminated or not on eosIf the RTMP server closes the connection for any reason, `rtmp2src` will [log the disconnection as INFO](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/gst/rtmp2/gstrtmp2src.c#L927), stop its s...If the RTMP server closes the connection for any reason, `rtmp2src` will [log the disconnection as INFO](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/gst/rtmp2/gstrtmp2src.c#L927), stop its streaming task and [return `GST_FLOW_EOS`](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/gst/rtmp2/gstrtmp2src.c#L614) next time `gst_rtmp2_src_create()` is called.
`EOS` is also returned if the stream has been [properly terminated by the server](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/gst/rtmp2/gstrtmp2src.c#L941).
I need to have a way to distinguish between these two scenarios in my application. In the first case I want to retry connecting to the RTMP server while it the second I terminate the streaming pipeline. Unfortunately there is currently no way to know the actual reason why `EOS` is being returned.
Note that `EOS` is [also returned because of the idle timeout](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-bad/gst/rtmp2/gstrtmp2src.c#L617) but I don't actually use that.
The obvious solution would be to return `GST_FLOW_ERROR` instead of `EOS` on connection error. But I suppose there was a good reason to not do that in the first place? Like some server never properly terminating the stream when it's done?
So maybe this should be controlled using a new property?
@heftig @vivia : you seem to have done some work on this plugin so maybe you know more about why we handle connection error this way?https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/-/issues/36Update project description and default branch2023-07-24T18:01:58ZEdward HerveyUpdate project description and default branchRight now the description of the project has the following:
> Port of FFmpeg to the Meson build system
>
> Workflow: merge to meson-4.4 branch, then cherry-pick into meson-4.X.Y branches which track specific releases and will stay fast-...Right now the description of the project has the following:
> Port of FFmpeg to the Meson build system
>
> Workflow: merge to meson-4.4 branch, then cherry-pick into meson-4.X.Y branches which track specific releases and will stay fast-forward. Use merge commits on meson-4.4 for new upstream versions.
Is that still valid ?
The default branch is still `meson-4.4` whereas it should be set to the more recent `meson-6.0` branch2023-07-29