GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2022-06-21T08:59:01Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1295qtdemux: Unexpected segment end detected (EOS) in push mode (live stream, fmp4)2022-06-21T08:59:01ZAndrzej Surdejqtdemux: Unexpected segment end detected (EOS) in push mode (live stream, fmp4)### Describe your issue
The original issue comes from Vevo application live video playback that is interrupted by unexpected EOS (end of segment) detected from qtdemux. The issue exists with push mode only (pull mode doesn't detect EOS i...### Describe your issue
The original issue comes from Vevo application live video playback that is interrupted by unexpected EOS (end of segment) detected from qtdemux. The issue exists with push mode only (pull mode doesn't detect EOS in my case).
The init segment contains duration of 1min(60sec) and with each moof it is extended with "timestamp" (from qtdemux_parse_trun() func) that is fragment decode time (tfdt) or sample dts and the sum of all samples duration. With such calculations the segment stop time is expressed in dts timeline.
Then processing the data (gst_qtdemux_process_adapter() -> QTDEMUX_STATE_MOVIE) tries to detect the end of segment based on PTS value for each frame that is higher value than dts and passes segment stop time:
` /* check for segment end */
if (G_UNLIKELY (demux->segment.stop != -1
&& demux->segment.stop <= pts && stream->on_keyframe)
&& !(demux->upstream_format_is_time && demux->segment.rate < 0)) {
GST_DEBUG_OBJECT (demux, "we reached the end of our segment.");
stream->time_position = GST_CLOCK_TIME_NONE; /* this means EOS */
`
The issue is barely visible because of additional "on_keyframe" check that suppose to cut segment on keyframes only (so the decoder has all data needed).
The difference why I hit this issue is that my stream has more keyframes (couple in single fragment/moof/mdat) and the EOS is thrown before reaching the end acutually (like 3 samples earlier, depending on dts<->pts shift)
#### Expected Behavior
Video playback should continue without EOS detected
#### Observed Behavior
EOS is thrown from qtdemux and the playback is stopped.
#### Setup
- **Operating System:** Ubuntu 20.04
- **Device:** Computer
- **GStreamer Version:** GStreamer 1.16.2 and GStreamer 1.21.0 (GIT)
- **Command line:** GST_DEBUG="qtdemux:5,2" gst-launch-1.0 pushfilesrc location=<path>/video_8 ! qtdemux ! appsink
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
0. Fetch attached video sample (dump from VEVO live channel): [video_8](/uploads/7a80e18f1686084f21cafb6578ef3bf8/video_8)
1. open terminal
3. type `GST_DEBUG="qtdemux:5,2" gst-launch-1.0 pushfilesrc location=<path>/video_8 ! qtdemux ! appsink`
4. Parsing ends with EOS thrown from qtdemux -> segment end detected
### How reproducible is the bug?
Always
### Screenshots if relevant
### Solutions you have tried
The solution for this case would be to replace PTS with DTS when checking for the segment stop. It would make EOS detection more reliable and based on the same timestamp values. This however may interrupt seeking with stop time set (as it's PTS based I believe).
### Related non-duplicate issues
### Additional Information
I have more dumps from the same content if neededhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1294rtsp-client/rtsp-media: Adjust error code before sending request response2022-10-11T09:17:42Zspluyyytrtsp-client/rtsp-media: Adjust error code before sending request responseIssue: There is no way for an application to control what response is sent to a request when rtsp-client encounters an error while setting up the pipeline.
Solution: Store the errors reported from the medias pipeline in rtsp-media. Also...Issue: There is no way for an application to control what response is sent to a request when rtsp-client encounters an error while setting up the pipeline.
Solution: Store the errors reported from the medias pipeline in rtsp-media. Also add a virtual function in rtsp-client which, if overriden by the application will be called before sending the error response. There should be no change in todays behaviour unless this method is overriden.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1293nvcodec has 0 features in gstreamer docker image 1.202022-08-03T14:47:07ZElliott Velasconvcodec has 0 features in gstreamer docker image 1.20Hello,
I'm relatively new in trying to get the nvcodec plugin working in a docker image. When I perform a a gst-inspect-1.0 on the nvcodec plugin I get this output:
Plugin Details:
Name nvcodec
Description ...Hello,
I'm relatively new in trying to get the nvcodec plugin working in a docker image. When I perform a a gst-inspect-1.0 on the nvcodec plugin I get this output:
Plugin Details:
Name nvcodec
Description GStreamer NVCODEC plugin
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnvcodec.so
Version 1.20.2.1
License LGPL
Source module gst-plugins-bad
Binary package GStreamer Bad Plug-ins git
Origin URL Unknown package origin
0 features:
I was wondering how I can get the nvcodec elements loaded in? And I followed this old thread with a similar issue https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1067 but I couldn't get it working following this solution.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1292HDR10 CLL metadata is allowed to change2022-06-20T13:30:23ZValZapodHDR10 CLL metadata is allowed to changeContrary to popular belief HDR10 static metadata can change per segment on seamless branching Blu-rays (ripping of which was also very broken due to wrong TrueHD duplicated frames deletion on segment border) and it is also allowed to cha...Contrary to popular belief HDR10 static metadata can change per segment on seamless branching Blu-rays (ripping of which was also very broken due to wrong TrueHD duplicated frames deletion on segment border) and it is also allowed to change in mp4. As ffmpeg mail says (right now [last HDR metadata patches](https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=3373) are being accepted):
https://www.mail-archive.com/ffmpeg-devel@ffmpeg.org/msg108319.html
> in that some formats allow use to set it on frame,
> some on the stream, some on the container
> I notice that color data can be set per frame and per stream already
> and I don’t fully understand how these interact if converting between data in
> frame (e.g HEVC SEI in stream in hev1) or data in header (e.g. MOV mdcv tag or
> HEVC SEI in hvc1 format).
And this is correct. Free CTA-861-G (and now -H) standard mandate that and I quote:
> If the Source supports the transmission of the Dynamic Range and Mastering InfoFrame and if it
> determines that the Sink is capable of receiving that information, the Source shall send the Dynamic
> Range and Mastering InfoFrame **once per Video Field**
What that means is that it is allowed to change and display should be fast enough to change it on the fly.
In fact there is a sample from "In the Heart of the Sea" movie https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/uploads/16c628c535865d7282a48317064345a2/out.mp4 that utilizes that.
It can cause all kind of issues for you. mpv does support it and so does MadVR.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1291tsdemux: tsdemux produces buffers with no PTS/DST when ignoring PCR.2022-10-20T06:20:12Zazerowalltsdemux: tsdemux produces buffers with no PTS/DST when ignoring PCR.GStreaemer version: 1.20.2
File: [euronews.ts](/uploads/226e3c7b9622e4d43eacc0fa11f3e04c/euronews.ts)
Pipeline:
```
filesrc location=euronews.ts ! tsdemux ignore-pcr=true name=dem \
mpegtsmux name=mux \
dem. ! queue ! video/mpeg ! mpeg...GStreaemer version: 1.20.2
File: [euronews.ts](/uploads/226e3c7b9622e4d43eacc0fa11f3e04c/euronews.ts)
Pipeline:
```
filesrc location=euronews.ts ! tsdemux ignore-pcr=true name=dem \
mpegtsmux name=mux \
dem. ! queue ! video/mpeg ! mpegvideoparse ! mux. \
mux. ! filesink location=out.ts sync=false
```
But if I stream the same file via UDP, then timestamps exist:
```
udpsrc uri=udp://239.1.1.1:1234 do-timestamp=false ! tsdemux ignore-pcr=true name=dem \
mpegtsmux name=mux \
dem. ! queue ! video/mpeg ! mpegvideoparse ! mux. \
mux. ! filesink location=out.ts sync=false
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1290gstreamer-sharp: Gst.Application requires WebRTC (gst-plugins-bad) by default2022-06-17T23:28:41ZPedro Castrogstreamer-sharp: Gst.Application requires WebRTC (gst-plugins-bad) by defaultThe static constructor in Gst.Application registers WebRTC by default:
```csharp
GLib.GType.Register(Gst.WebRTC.WebRTCSessionDescription.GType, typeof(Gst.WebRTC.WebRTCSessionDescription));
```
This implies that `gst-plugins-bad`, whic...The static constructor in Gst.Application registers WebRTC by default:
```csharp
GLib.GType.Register(Gst.WebRTC.WebRTCSessionDescription.GType, typeof(Gst.WebRTC.WebRTCSessionDescription));
```
This implies that `gst-plugins-bad`, which contains WebRTC, will be required to run gstreamer-sharp.
Wondering if this was a design decision. I've switched to gstreamer-sharp in Gnome Subtitles and WebRTC isn't used, so would rather prefer not to force users to install plugins-bad unnecessarily.https://gitlab.freedesktop.org/gstreamer/gstreamer-sharp/-/issues/63gstreamer-sharp: An unhandled exception of type 'System.Exception' occurred i...2022-06-20T15:13:19ZConnor Hawesgstreamer-sharp: An unhandled exception of type 'System.Exception' occurred in GLibSharp.dll Unknown type GstRTSPMessageCurrently trying to handle the before-send rtspsrc signal in order to add headers to RTSP messages.
Upon the handler being triggered the titular message is thrown.
Here is my current handler:
`
private void BeforeSendCb(object s...Currently trying to handle the before-send rtspsrc signal in order to add headers to RTSP messages.
Upon the handler being triggered the titular message is thrown.
Here is my current handler:
`
private void BeforeSendCb(object sender, SignalArgs args)
{
Gst.Rtsp.RTSPMessage message = (Gst.Rtsp.RTSPMessage)args.Args[0];
message.AddHeader(Gst.Rtsp.RTSPHeaderField.CompanyId, "CONNOR HAWES");
Trace.WriteLine("BREAK HERE");
}
`
And the subscription:
`
_rtspsrc.Connect("before-send", BeforeSendCb);
`
I was wondering if I was doing anything wrong or if there is a workaround?
Thanks in advancehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1289iOS GstPlay - Can't receive any signal2022-06-17T14:17:41ZbudainiOS GstPlay - Can't receive any signal### Describe your issue
I would like to receive some signal from `GstPlay`: [see documentation](https://gstreamer.freedesktop.org/documentation/play/gst-libs/gst/play/gstplay-types.html?gi-language=c#GstPlaySignalAdapter::state-changed)
...### Describe your issue
I would like to receive some signal from `GstPlay`: [see documentation](https://gstreamer.freedesktop.org/documentation/play/gst-libs/gst/play/gstplay-types.html?gi-language=c#GstPlaySignalAdapter::state-changed)
#### Expected Behavior
My function should be call and print my logs
#### Setup
- **Operating System:** iOS
- **Device:** Mobile
- **GStreamer Version:** 1.20.2
- **Command line:** `g_signal_connect (adapter, "state-changed", G_CALLBACK(stateChangedCb), NULL);`
### Steps to reproduce the bug
```
static GstPlay *player;
static GstPlaySignalAdapter *adapter;
-(instancetype)init {
self = [super init];
if (!player) {
[self configurePlayer];
}
return self;
}
-(void)configurePlayer {
GstreamerConfiguration(); // Like gst_ios_init
player = gst_play_new(NULL);
adapter = gst_play_signal_adapter_new(player);
gst_play_config_set_seek_accurate(gst_play_get_config(player), true);
[self configureCallBacks];
}
-(void)configureCallBacks {
NSLog(@"---- callllled");
g_signal_connect (adapter, "state-changed", G_CALLBACK(stateChangedCb), NULL);
}
void stateChangedCb (GstPlaySignalAdapter *adapter, GstPlayState *state, void *data) {
NSLog(@"---- NEW STATE");
}
```
The log `---- NEW STATE` should be print .
Do you have any idea ?https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/104iOS GstPlay - Can't receive any signal2022-06-17T09:42:18ZbudainiOS GstPlay - Can't receive any signalI would like to use `GstPlay` to play some audio file from a remote URL. I can `play`, `pause`, `seek`..
I want to listen some event: `state_changed` ([see doc](https://gstreamer.freedesktop.org/documentation/play/gst-libs/gst/play/gstpl...I would like to use `GstPlay` to play some audio file from a remote URL. I can `play`, `pause`, `seek`..
I want to listen some event: `state_changed` ([see doc](https://gstreamer.freedesktop.org/documentation/play/gst-libs/gst/play/gstplay-types.html?gi-language=c#GstPlaySignalAdapter::state-changed))
I don't understand why don't receive any signal:
My code:
```
static GstPlaySignalAdapter *adapter;
-(instancetype)init {
self = [super init];
if (!monoPlayer) {
[self configurePlayer];
}
return self;
}
-(void)configurePlayer {
GstreamerConfiguration(); // Like gst_ios_init
player = gst_play_new(NULL);
adapter = gst_play_signal_adapter_new(player);
gst_play_config_set_seek_accurate(gst_play_get_config(player), true);
[self configureCallBacks];
}
-(void)configureCallBacks {
NSLog(@"---- callllled");
g_signal_connect (adapter, "state-changed", G_CALLBACK(stateChangedCb), NULL);
}
void stateChangedCb (GstPlaySignalAdapter *adapter, GstPlayState *state, void *data) {
NSLog(@"---- NEW STATE");
// gst_print ("State changed: %s\n", gst_play_state_get_name (state));
}
```
I use GStreamer `1.20.2`https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1288Unsafe eglimage cache usage in gstglupload.c in combination with tee2022-06-17T06:57:29ZErik De RijckeUnsafe eglimage cache usage in gstglupload.c in combination with tee`gstglupload.c` with tee calls `_set_cached_eglimage` and potentially frees the previously stored eglimage pointer, and later triggers critical warnings when the eglimage is unreffed again & potentially causes segfaults.
From gstreamer ...`gstglupload.c` with tee calls `_set_cached_eglimage` and potentially frees the previously stored eglimage pointer, and later triggers critical warnings when the eglimage is unreffed again & potentially causes segfaults.
From gstreamer irc:
```
00:55 < ndufresne> zubzub: ah, the cache is still not tee safe?
00:56 < ndufresne> We've fixed many cache over the time, so I can't remember if that one is still broken... But you can't cache on the buffer itself, that's not safe
```
Tested on gstreamer 1.20.1https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/971SIGSEGV in subprojects/gst-plugins-base/gst/playback/gstparsebin.c during HLS...2022-06-16T22:41:38ZBill HofmannSIGSEGV in subprojects/gst-plugins-base/gst/playback/gstparsebin.c during HLS stream using souphttpsrcUprev'd from 1.20.1 with two local changes in kms to 1.20.3, now 100% reproducible SIGSEGV while playing graph that works extremely reliably in 1.20.1. First sign was my python impl getting buffering messages (which it never had before)...Uprev'd from 1.20.1 with two local changes in kms to 1.20.3, now 100% reproducible SIGSEGV while playing graph that works extremely reliably in 1.20.1. First sign was my python impl getting buffering messages (which it never had before), but followed by crash. Repro'd outside my program, with reduced M3U8 file.
Build/Env:
- Ubuntu 21.10
- `meson -Dvaapi=enabled -Dbad=enabled -Dugly=enabled builddir`
Command (after ninja -C builddir devenv)
```
GST_DEBUG_FILE=./crash.txt GST_DEBUG=6 gdb --args gst-launch-1.0 \
souphttpsrc location="http://127.0.0.1/1D2E355A-BD2C-4807-91EA-4C2236D2DBED/0/short.m3u8" ! parsebin name=pb ! queue ! vaapih265dec ! \
video/x-raw,format=P010_10LE ! queue max-size-bytes=100663300 ! kmssink connector-id=78 plane-id=55
```
I set a `catch signal SIGSEGV` and here is the tail of the GDB output:
```
[New Thread 0x7fffbd7fa640 (LWP 1624)]
Pipeline is PREROLLING ...
[New Thread 0x7fffbcff9640 (LWP 1625)]
Got context from element 'vaapidecode_h265-0': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayDRM\)\ vaapidisplaydrm1", gst.vaapi.Display.GObject=(GstObject)"\(GstVaapiDisplayDRM\)\ vaapidisplaydrm1";
Got context from element 'souphttpsrc0': gst.soup.session=context, session=(GstSoupSession)NULL;
[New Thread 0x7fff9ffff640 (LWP 1626)]
[New Thread 0x7fff9f7fe640 (LWP 1627)]
[New Thread 0x7fff9effd640 (LWP 1628)]
[New Thread 0x7fff9e7fc640 (LWP 1629)]
[New Thread 0x7fff9dffb640 (LWP 1630)]
[New Thread 0x7fff9d7fa640 (LWP 1631)]
[Switching to Thread 0x7fff9d7fa640 (LWP 1631)]
Thread 60 "task3" hit Catchpoint 1 (signal SIGSEGV), gst_parse_chain_expose (chain=chain@entry=0x7fff88047ae0, endpads=endpads@entry=0x7fff9d7f9340, missing_plugin=missing_plugin@entry=0x7fff9d7f932c, missing_plugin_details=missing_plugin_details@entry=0x7fff80002c00, last_group=last_group@entry=0x7fff9d7f9330, uncollected_streams=uncollected_streams@entry=0x7fff9d7f9334) at ../subprojects/gst-plugins-base/gst/playback/gstparsebin.c:3777
3777 if (p->active_stream && p->active_collection == NULL
(gdb) frame
#0 gst_parse_chain_expose (chain=chain@entry=0x7fff88047ae0, endpads=endpads@entry=0x7fff9d7f9340, missing_plugin=missing_plugin@entry=0x7fff9d7f932c,
missing_plugin_details=missing_plugin_details@entry=0x7fff80002c00, last_group=last_group@entry=0x7fff9d7f9330, uncollected_streams=uncollected_streams@entry=0x7fff9d7f9334)
at ../subprojects/gst-plugins-base/gst/playback/gstparsebin.c:3777
3777 if (p->active_stream && p->active_collection == NULL
(gdb) up
#1 0x00007ffff4c3a8e6 in gst_parse_chain_expose (chain=<optimized out>, endpads=endpads@entry=0x7fff9d7f9340, missing_plugin=missing_plugin@entry=0x7fff9d7f932c,
missing_plugin_details=missing_plugin_details@entry=0x7fff80002c00, last_group=last_group@entry=0x7fff9d7f9330, uncollected_streams=uncollected_streams@entry=0x7fff9d7f9334)
at ../subprojects/gst-plugins-base/gst/playback/gstparsebin.c:3788
3788 ret |= gst_parse_chain_expose (childchain, endpads, missing_plugin,
(gdb)
```
Output of GST is attached: [ourcrash.txt](/uploads/b880eb7237fd738f6b0ebea8155d6749/ourcrash.txt).
Note this version runs just fine using filesrc of a different MP4 instead of the souphttpsrc.
Just for jollies, here's the M3U8: [short.m3u8](/uploads/12aaaa568f4294cd313cea4ee0857f10/short.m3u8)
I can provide the TS files, but they're kinda big. Happy to attach if desired.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1286videorate: gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed2024-01-31T18:19:04ZJames Hilliardvideorate: gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failedI'm hitting this failure locally on main, not sure why it's not showing up in CI.
```c
1..1
**-> Checking expectations file: '/home/buildroot/gstreamer/subprojects/gst-plugins-base/tests/validate/videorate/change_rate_reverse_playback/fl...I'm hitting this failure locally on main, not sure why it's not showing up in CI.
```c
1..1
**-> Checking expectations file: '/home/buildroot/gstreamer/subprojects/gst-plugins-base/tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-sink-expected'**
**-> Checking expectations file: '/home/buildroot/gstreamer/subprojects/gst-plugins-base/tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-src-expected'**
**-> Pipeline: 'videotestsrc ! video/x-raw,format=I420,framerate=10/1,width=320,height=240 ! videorate name=videorate ! fakesink sync=true qos=true'**
**-> Running scenario /home/buildroot/gstreamer/subprojects/gst-plugins-base/tests/validate/videorate/change_rate_reverse_playback.validatetest on pipeline pipeline0**
**-> Starting pipeline**
Prerolling...
**-> Pipeline started**
Executing `seek` at change_rate_reverse_playback.validatetest:14 (
- start=0
- stop=5
- flags=accurate+flush
- rate=-1
)
? Action `seek` at change_rate_reverse_playback.validatetest:14 done 'ASYNC' (duration: 0:00:00.018481721)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:17 (
- expected-time=0
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:17 done 'OK' (duration: 0:00:00.000120623)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:18 [repeat=0/4] (
- expected-elapsed-time=0.10000000000000001
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:18 done 'OK' [0/4] (duration: 0:00:00.001369976)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:18 [repeat=1/4] (
- expected-elapsed-time=0.10000000000000001
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:18 done 'OK' [1/4] (duration: 0:00:00.002062006)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:18 [repeat=2/4] (
- expected-elapsed-time=0.10000000000000001
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:18 done 'OK' [2/4] (duration: 0:00:00.001979757)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:18 [repeat=3/4] (
- expected-elapsed-time=0.10000000000000001
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:18 done 'OK' [3/4] (duration: 0:00:00.002117339)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:19 (
- expected-time=0.5
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:19 done 'OK' (duration: 0:00:00.002002966)
Executing `wait` at change_rate_reverse_playback.validatetest:22 (
- on-clock=true
)
? Action `wait` at change_rate_reverse_playback.validatetest:22 done 'OK' (duration: 0:00:00.001861676)
Executing `checkpoint` at change_rate_reverse_playback.validatetest:25 (
- text="Setting\ videorate.rate\=0.5"
)
? Action `checkpoint` at change_rate_reverse_playback.validatetest:25 done 'OK' (duration: 0:00:00.000022958)
Executing `set-property` at change_rate_reverse_playback.validatetest:26 (
- playback-time=99
- target-element-name=videorate
- property-name=rate
- property-value=0.5
)
? Action `set-property` at change_rate_reverse_playback.validatetest:26 done 'OK' (duration: 0:00:00.000215330)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:29 [repeat=0/5] (
- expected-elapsed-time=0.10000000000000001
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:29 done 'OK' [0/5] (duration: 0:00:00.000138289)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:29 [repeat=1/5] (
- expected-elapsed-time=0.10000000000000001
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:29 done 'OK' [1/5] (duration: 0:00:00.001905134)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:29 [repeat=2/5] (
- expected-elapsed-time=0.10000000000000001
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:29 done 'OK' [2/5] (duration: 0:00:00.002039256)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:29 [repeat=3/5] (
- expected-elapsed-time=0.10000000000000001
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:29 done 'OK' [3/5] (duration: 0:00:00.000112581)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:29 [repeat=4/5] (
- expected-elapsed-time=0.10000000000000001
)
? Action `crank-clock` at change_rate_reverse_playback.validatetest:29 done 'OK' [4/5] (duration: 0:00:00.000130706)
Executing `wait` at change_rate_reverse_playback.validatetest:30 (
- on-clock=true
)
? Action `wait` at change_rate_reverse_playback.validatetest:30 done 'OK' (duration: 0:00:00.002011840)
Executing `check-position` at change_rate_reverse_playback.validatetest:31 (
- expected-position=4
)
? Action `check-position` at change_rate_reverse_playback.validatetest:31 done 'OK' (duration: 0:00:00.000578406)
Executing `set-vars` at change_rate_reverse_playback.validatetest:33 (
- rate=0.1
)
? Action `set-vars` at change_rate_reverse_playback.validatetest:33 done 'OK' (duration: 0:00:00.000022166)
Executing `checkpoint` at change_rate_reverse_playback.validatetest:34 (
- text="Setting\ videorate.rate\=0.1"
)
? Action `checkpoint` at change_rate_reverse_playback.validatetest:34 done 'OK' (duration: 0:00:00.000021125)
Executing `set-property` at change_rate_reverse_playback.validatetest:35 (
- playback-time=99
- target-element-name=videorate
- property-name=rate
- property-value=0.10000000000000001
)
? Action `set-property` at change_rate_reverse_playback.validatetest:35 done 'OK' (duration: 0:00:00.000198079)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=0/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [0/20] (duration: 0:00:00.000066373)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=1/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [1/20] (duration: 0:00:00.005746609)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=2/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [2/20] (duration: 0:00:00.000084790)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=3/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [3/20] (duration: 0:00:00.000069874)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=4/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [4/20] (duration: 0:00:00.000064666)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=5/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [5/20] (duration: 0:00:00.000061832)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=6/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [6/20] (duration: 0:00:00.000067416)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=7/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [7/20] (duration: 0:00:00.002028132)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=8/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [8/20] (duration: 0:00:00.000062790)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=9/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [9/20] (duration: 0:00:00.000063249)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=10/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [10/20] (duration: 0:00:00.000069082)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=11/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [11/20] (duration: 0:00:00.000064582)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=12/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [12/20] (duration: 0:00:00.000063957)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=13/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [13/20] (duration: 0:00:00.000062999)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=14/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [14/20] (duration: 0:00:00.000081790)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=15/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [15/20] (duration: 0:00:00.000063624)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=16/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [16/20] (duration: 0:00:00.000063165)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=17/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [17/20] (duration: 0:00:00.002091464)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=18/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [18/20] (duration: 0:00:00.000066790)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:36 [repeat=19/20] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:36 done 'OK' [19/20] (duration: 0:00:00.000064624)
Executing `wait` at change_rate_reverse_playback.validatetest:37 (
- on-clock=true
)
? Action `wait` at change_rate_reverse_playback.validatetest:37 done 'OK' (duration: 0:00:00.000021791)
Executing `check-position` at change_rate_reverse_playback.validatetest:38 (
- expected-position=2
)
? Action `check-position` at change_rate_reverse_playback.validatetest:38 done 'OK' (duration: 0:00:00.000578365)
Executing `checkpoint` at change_rate_reverse_playback.validatetest:41 (
- text="Setting\ videorate.rate\=2.0"
)
? Action `checkpoint` at change_rate_reverse_playback.validatetest:41 done 'OK' (duration: 0:00:00.000022958)
Executing `set-property` at change_rate_reverse_playback.validatetest:42 (
- playback-time=-1
- target-element-name=videorate
- property-name=rate
- property-value=2
)
? Action `set-property` at change_rate_reverse_playback.validatetest:42 done 'OK' (duration: 0:00:00.000194496)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=0/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [0/10] (duration: 0:00:00.000058749)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=1/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [1/10] (duration: 0:00:00.027939974)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=2/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [2/10] (duration: 0:00:00.035776879)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=3/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [3/10] (duration: 0:00:00.007801448)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=4/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [4/10] (duration: 0:00:00.007349206)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=5/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [5/10] (duration: 0:00:00.006430972)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=6/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [6/10] (duration: 0:00:00.003889225)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=7/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [7/10] (duration: 0:00:00.003849100)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=8/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [8/10] (duration: 0:00:00.003219236)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:43 [repeat=9/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:43 done 'OK' [9/10] (duration: 0:00:00.003205403)
Executing `wait` at change_rate_reverse_playback.validatetest:44 (
- on-clock=true
)
? Action `wait` at change_rate_reverse_playback.validatetest:44 done 'OK' (duration: 0:00:00.001707720)
Executing `checkpoint` at change_rate_reverse_playback.validatetest:47 (
- text="Filling\ up\ segment\ with\ last\ buffer"
)
? Action `checkpoint` at change_rate_reverse_playback.validatetest:47 done 'OK' (duration: 0:00:00.000100665)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=0/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [0/10] (duration: 0:00:00.000188997)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=1/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [1/10] (duration: 0:00:00.005131411)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=2/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [2/10] (duration: 0:00:00.002966824)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=3/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [3/10] (duration: 0:00:00.002859200)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=4/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [4/10] (duration: 0:00:00.002367584)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=5/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [5/10] (duration: 0:00:00.002356959)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=6/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [6/10] (duration: 0:00:00.002005590)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=7/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [7/10] (duration: 0:00:00.001805386)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=8/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [8/10] (duration: 0:00:00.001839926)
Executing `crank-clock` at change_rate_reverse_playback.validatetest:48 [repeat=9/10] ( )
? Action `crank-clock` at change_rate_reverse_playback.validatetest:48 done 'OK' [9/10] (duration: 0:00:00.001235687)
<position: 0:00:00.000000000 duration: 99:99:99.999999999 speed: -1.000000 />
<position: 0:00:00.000000000 duration: 99:99:99.999999999 speed: -1.000000 />
Executing `stop` at change_rate_reverse_playback.validatetest:50 (
- on-message=eos
)
? Action `stop` at change_rate_reverse_playback.validatetest:50 done 'OK' (duration: 0:00:00.000257954)
change_rate_reverse_playback.validatetest --> State change request NULL, quitting mainloop
validateflowoverride0 --> Checking that flow /home/buildroot/gstreamer/subprojects/gst-plugins-base/tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-sink-expected matches expected flow /home/buildroot/gstreamer/build/subprojects/gst-plugins-base/tests/validate/validate.videorate.change_rate_reverse_playback/change_rate_reverse_playback/log-videorate-sink-actual
validateflowoverride0 --> OK
validateflowoverride1 --> Checking that flow /home/buildroot/gstreamer/subprojects/gst-plugins-base/tests/validate/videorate/change_rate_reverse_playback/flow-expectations/log-videorate-src-expected matches expected flow /home/buildroot/gstreamer/build/subprojects/gst-plugins-base/tests/validate/validate.videorate.change_rate_reverse_playback/change_rate_reverse_playback/log-videorate-src-actual
validateflowoverride1 --> OK
warning : a serialized event received should be pushed in the same 'time' as it was received
Detected on <videorate:src>
Description : serialized events should be pushed in the same order they are received and serialized with buffers. If an event is received after a buffer with timestamp end 'X', it should be pushed right after buffers with timestamp end 'X'
critical : We got a g_log critical issue
Detected on <pipeline0>
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
Details : gst_event_new_qos: assertion 'diff >= 0 || -diff <= timestamp' failed
Details : gst_pad_push_event: assertion 'GST_IS_EVENT (event)' failed
dotfile : no dotfile produced as GST_DEBUG_DUMP_DOT_DIR is not set.
backtrace :
gst_debug_get_stack_trace (gstinfo.c:3234)
gst_validate_report_new (gst-validate-report.c:921)
gst_validate_report_valist (gst-validate-reporter.c:189)
gst_validate_report (gst-validate-reporter.c:323)
g_logv (/usr/lib/libglib-2.0.so.0.7200.2:0xffff5027b16c)
g_log (/usr/lib/libglib-2.0.so.0.7200.2:0xffff5027b414)
gst_event_new_qos (gstevent.c:1219)
gst_video_rate_src_event (gstvideorate.c:1025)
gst_validate_pad_monitor_src_event_func (gst-validate-pad-monitor.c:2192)
gst_pad_send_event_unchecked (gstpad.c:5897)
gst_pad_push_event_unchecked (gstpad.c:5541)
gst_pad_push_event (gstpad.c:5678)
gst_base_sink_chain_unlocked.constprop.0 (gstbasesink.c:2927)
gst_base_sink_chain_main (gstbasesink.c:4078)
gst_validate_pad_monitor_chain_func (gst-validate-pad-monitor.c:2348)
gst_pad_chain_data_unchecked (gstpad.c:4444)
gst_pad_push_data (gstpad.c:4708)
gst_pad_push (gstpad.c:4827)
gst_video_rate_transform_ip (gstvideorate.c:1718)
default_generate_output (gstbasetransform.c:2187)
gst_base_transform_chain (gstbasetransform.c:2345)
gst_validate_pad_monitor_chain_func (gst-validate-pad-monitor.c:2348)
gst_pad_chain_data_unchecked (gstpad.c:4444)
gst_pad_push_data (gstpad.c:4708)
gst_pad_push (gstpad.c:4827)
gst_base_transform_chain (gstbasetransform.c:2381)
gst_validate_pad_monitor_chain_func (gst-validate-pad-monitor.c:2348)
gst_pad_chain_data_unchecked (gstpad.c:4444)
gst_pad_push_data (gstpad.c:4708)
gst_pad_push (gstpad.c:4827)
gst_base_src_loop (gstbasesrc.c:3030)
gst_task_func (gsttask.c:384)
?? (/usr/lib/libglib-2.0.so.0.7200.2:0xffff502a4650)
?? (/usr/lib/libglib-2.0.so.0.7200.2:0xffff502a37a8)
?? (/usr/lib/libc.so.6:0xffff4fdf0ae8)
?? (/usr/lib/libc.so.6:0xffff4fe5a5d8)
Issues found: 37
Returning 18 as errors were found
=======> Test FAILED (Return value: 18)
not ok 1 /home/buildroot/gstreamer/subprojects/gst-plugins-base/tests/validate/videorate/change_rate_reverse_playback.validatetest Got a critical report
```
[change_rate_reverse_playback-stderr.log](/uploads/9411b8c63cb5c72e2a3d3735eb3bb551/change_rate_reverse_playback-stderr.log)https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/970Uridecodebin does not work with certain RTSP video streams2023-07-27T10:15:33ZMatteo FoglioUridecodebin does not work with certain RTSP video streamsHello, I am dealing with two RTSP video streams that cannot be decoded using `uridecodebin`.
**Disclaimer**:I am working with Nvidia Deepstream which is based on Gstreamer. However the issue seems to be related to `uridecodebin`.
The ...Hello, I am dealing with two RTSP video streams that cannot be decoded using `uridecodebin`.
**Disclaimer**:I am working with Nvidia Deepstream which is based on Gstreamer. However the issue seems to be related to `uridecodebin`.
The following pipelines kinda work on only one of the streams (it saved a video that cannot be played... while the `fakesink` pipeline does not seem to print anything):
```
gst-launch-1.0 uridecodebin uri=$RTSP_STREAM ! filesink location='test.mp4'
gst-launch-1.0 uridecodebin uri=$RTSP_STREAM ! nvvideoconvert ! fakesink
```
The RTSP video streams can be played correctly using VLC and ffplay.
One of the two streams (not both) can be decoded using the following pipeline, which uses Nvidia hardware acceleration to decode the video:
```
gst-launch-1.0 --gst-debug=v4l2videodec:5 rtspsrc location=$RTSP_STREAM protocols=tcp latency=1000 drop-on-latency=1 timeout=5000000 ! rtph264depay ! h264parse ! nvv4l2decoder cudadec-memtype=2 num-extra-surfaces=1 ! queue leaky=2 max-size-buffers=1 ! nvvideoconvert nvbuf-memory-type=3 output-buffers=1 ! capsfilter caps=video/x-raw,format=RGBA ! fakesink
```
Both the video can be decoded with the same pipeline using the software decoder (however I need to use the hardware decoder)
```
gst-launch-1.0 --gst-debug=v4l2videodec:5 rtspsrc location=$RTSP_STREAM protocols=tcp latency=1000 drop-on-latency=1 timeout=5000000 ! rtph264depay ! h264parse ! avdec_h264 ! queue leaky=2 max-size-buffers=1 ! nvvideoconvert nvbuf-memory-type=3 output-buffers=1 ! capsfilter caps=video/x-raw,format=RGBA ! filesink location='test-nvv4l2decoder.mp4'
```
The RTSP video streams are private but I am happy to privately share them with anyone who can help me debug the issue.
I am also trying to get more help from Nvidia on their forum, but the issue seems to be caused by Gstreamer components.
More here: https://forums.developer.nvidia.com/t/uridecodebin-cannot-decode-an-rtsp-video-stream/217422
Thank you!https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1285iOS: Cannot retrieve width & height via "check_media_size" method2022-06-15T16:35:04ZSiegbaertiOS: Cannot retrieve width & height via "check_media_size" methodHello GStreamer community,
I am developing a native iOS application, which should be capable of displaying a live videostream.
My code is based on the official [GStreamer iOS tutorials](https://gstreamer.freedesktop.org/documentation/tu...Hello GStreamer community,
I am developing a native iOS application, which should be capable of displaying a live videostream.
My code is based on the official [GStreamer iOS tutorials](https://gstreamer.freedesktop.org/documentation/tutorials/ios/index.html?gi-language=c).
The stream itself works. It is displayed and I am quite satisfied with resolution, FPS and latency of the stream.
But I am not able to get the following method - which was taken from the [tutorials](https://gstreamer.freedesktop.org/documentation/tutorials/ios/a-basic-media-player.html?gi-language=c) - to return the expected result:
```objc
static void check_media_size (GStreamerBackend *self) {
GstElement *video_sink;
GstPad *video_sink_pad;
GstCaps *caps;
GstVideoInfo info;
/* Retrieve the Caps at the entrance of the video sink */
g_object_get (self->pipeline, "video-sink", &video_sink, NULL);
video_sink_pad = gst_element_get_static_pad (video_sink, "sink");
caps = gst_pad_get_current_caps (video_sink_pad);
if (gst_video_info_from_caps (&info, caps)) {
NSLog(@"check_media_size - Media size is %dx%d, notifying application", info.width, info.height);
info.width = info.width * info.par_n / info.par_d;
GST_DEBUG ("Media size is %dx%d, notifying application", info.width, info.height);
if (self->ui_delegate && [self->ui_delegate respondsToSelector:@selector(mediaSizeChanged:height:)])
{
[self->ui_delegate mediaSizeChanged:info.width height:info.height];
}
}
gst_caps_unref(caps);
gst_object_unref (video_sink_pad);
gst_object_unref(video_sink);
}
```
The function call:
`g_object_get (self->pipeline, "video-sink", &video_sink, NULL);`
triggers the following warning:
> (:22803): GLib-GObject-�[1;33mWARNING�[0m **: �[34m08:43:06.226�[0m: g_object_get_is_valid_property: object class 'GstPipeline' has no property named 'video-sink'
As a result, the next 2 lines of code also fail:
```
video_sink_pad = gst_element_get_static_pad (video_sink, "sink");
caps = gst_pad_get_current_caps (video_sink_pad);
```
> (:22803): GStreamer-�[1;35mCRITICAL�[0m **: �[34m08:43:06.226�[0m: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed.
> (:22803): GStreamer-�[1;35mCRITICAL�[0m **: �[34m08:43:06.226�[0m: gst_pad_get_current_caps: assertion 'GST_IS_PAD (pad)' failed
and finally, the instruction in the if(...) block always returns false
`if (gst_video_info_from_caps (&info, caps))`
therefore, the code inside the if-block is never executed and there's no way to receive the media info (e.g. width & height) of the video being played.
I do not understand why the pipeline does not seem to have a "video-sink" property, but the stream itself works and is displayed.
Any help/hint would be appreciated.
----
### Additional information
**GStreamer version:** I tested the behaviour with GStreamer 1.19.3 as well as 1.20.2.
On the server side (MacOs), I am running the following pipeline:
`gst-launch-1.0 -v autovideosrc ! "video/x-raw,framerate=30/1" ! queue ! jpegenc ! queue ! rtpjpegpay ! udpsink host=<IP_ADDRESS> port=8003`
On client side (iOS), this is the pipeline used to display the stream:
`udpsrc port=8003 ! application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, a-framerate=(string)30.000000, payload=(int)26, ssrc=(uint)2661516146, timestamp-offset=(uint)3924289949, seqnum-offset=(uint)1975 ! rtpbin ! rtpjpegdepay ! queue ! jpegdec ! queue ! videoconvert ! autovideosink sync=false`https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1284Gstreamer Android does not compile with Gradle plugin 7.22024-02-28T07:35:56ZMiguel SesmaGstreamer Android does not compile with Gradle plugin 7.2### Describe your issue
Starting with Android Gradle plugin 7.2.0, GStreamer does not compile and fails with an error:
[CXX1415] .../video/build/.cxx/Debug/1s5v2mh6/arm64-v8a/android_gradle_build.json debug|arm64-v8a : gstreamer_android...### Describe your issue
Starting with Android Gradle plugin 7.2.0, GStreamer does not compile and fails with an error:
[CXX1415] .../video/build/.cxx/Debug/1s5v2mh6/arm64-v8a/android_gradle_build.json debug|arm64-v8a : gstreamer_android-debug-gst-build-arm64-v8a.abi 'gst-build-arm64-v8a' is invalid. Valid values are 'armeabi-v7a, arm64-v8a, x86, x86_64'
#### Expected Behavior
Normal compilation as it happened until AGP 7.1.2
#### Observed Behavior
The compiled folder names under AGP 7.0 don't accept the prefix "gst-build-"
#### Setup
- MacOS
- Macbook M1
- Tested with 1.18.4 and 1.20.2
- ./gradlew assembleDebug
### Solutions you have tried
There is a easy workaround that is editing Gstreamer files "gstreamer-1.0.mk" (Under for example arm64/share/gst-android/ndk-build) and edit line
`GSTREAMER_BUILD_DIR := gst-build-$(TARGET_ARCH_ABI)` removing the prefix so it looks like
`GSTREAMER_BUILD_DIR := $(TARGET_ARCH_ABI)`
And of course do this for each architecture supported.https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/97iOS: Cannot retrieve width & height via "check_media_size" method2022-06-15T16:32:06ZSiegbaertiOS: Cannot retrieve width & height via "check_media_size" methodHello GStreamer community,
I am developing a native iOS application, which should be capable of displaying a live videostream.
My code is based on the official [GStreamer iOS tutorials](https://gstreamer.freedesktop.org/documentation/tu...Hello GStreamer community,
I am developing a native iOS application, which should be capable of displaying a live videostream.
My code is based on the official [GStreamer iOS tutorials](https://gstreamer.freedesktop.org/documentation/tutorials/ios/index.html?gi-language=c).
The stream itself works. It is displayed and I am quite satisfied with resolution, FPS and latency of the stream.
But I am not able to get the following method - which was taken from the [tutorials](https://gstreamer.freedesktop.org/documentation/tutorials/ios/a-basic-media-player.html?gi-language=c) - to return the expected result:
```objc
static void check_media_size (GStreamerBackend *self) {
GstElement *video_sink;
GstPad *video_sink_pad;
GstCaps *caps;
GstVideoInfo info;
/* Retrieve the Caps at the entrance of the video sink */
g_object_get (self->pipeline, "video-sink", &video_sink, NULL);
video_sink_pad = gst_element_get_static_pad (video_sink, "sink");
caps = gst_pad_get_current_caps (video_sink_pad);
if (gst_video_info_from_caps (&info, caps)) {
NSLog(@"check_media_size - Media size is %dx%d, notifying application", info.width, info.height);
info.width = info.width * info.par_n / info.par_d;
GST_DEBUG ("Media size is %dx%d, notifying application", info.width, info.height);
if (self->ui_delegate && [self->ui_delegate respondsToSelector:@selector(mediaSizeChanged:height:)])
{
[self->ui_delegate mediaSizeChanged:info.width height:info.height];
}
}
gst_caps_unref(caps);
gst_object_unref (video_sink_pad);
gst_object_unref(video_sink);
}
```
The function call:
`g_object_get (self->pipeline, "video-sink", &video_sink, NULL);`
triggers the following warning:
> (:22803): GLib-GObject-�[1;33mWARNING�[0m **: �[34m08:43:06.226�[0m: g_object_get_is_valid_property: object class 'GstPipeline' has no property named 'video-sink'
As a result, the next 2 lines of code also fail:
```
video_sink_pad = gst_element_get_static_pad (video_sink, "sink");
caps = gst_pad_get_current_caps (video_sink_pad);
```
> (:22803): GStreamer-�[1;35mCRITICAL�[0m **: �[34m08:43:06.226�[0m: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed.
> (:22803): GStreamer-�[1;35mCRITICAL�[0m **: �[34m08:43:06.226�[0m: gst_pad_get_current_caps: assertion 'GST_IS_PAD (pad)' failed
and finally, the instruction in the if(...) block always returns false
`if (gst_video_info_from_caps (&info, caps))`
therefore, the code inside the if-block is never executed and there's no way to receive the media info (e.g. width & height) of the video being played.
I do not understand why the pipeline does not seem to have a "video-sink" property, but the stream itself works and is displayed.
Any help/hint would be appreciated.
----
### Additional information
**GStreamer version:** I tested the behaviour with GStreamer 1.19.3 as well as 1.20.2.
On the server side (MacOs), I am running the following pipeline:
`gst-launch-1.0 -v autovideosrc ! "video/x-raw,framerate=30/1" ! queue ! jpegenc ! queue ! rtpjpegpay ! udpsink host=<IP_ADDRESS> port=8003`
On client side (iOS), this is the pipeline used to display the stream:
`udpsrc port=8003 ! application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, a-framerate=(string)30.000000, payload=(int)26, ssrc=(uint)2661516146, timestamp-offset=(uint)3924289949, seqnum-offset=(uint)1975 ! rtpbin ! rtpjpegdepay ! queue ! jpegdec ! queue ! videoconvert ! autovideosink sync=false`https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1283multiqueue/decodebin3: deadlock in gst_multi_queue_loop at gst_data_queue_pop...2023-03-20T08:54:30ZJames Hilliardmultiqueue/decodebin3: deadlock in gst_multi_queue_loop at gst_data_queue_pop on EOS### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstream...### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstreamer.freedesktop.org/lists/ -->
When sending an EOS signal to a pipeline generated by decodebin3 the multiqueue thread deadlocks at [`gst_data_queue_pop`](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/f34ee92999f102f63b7c93b7554fa62a83706724/subprojects/gstreamer/plugins/elements/gstmultiqueue.c#L2142) inside `gst_multi_queue_loop`
#### Expected Behavior
<!-- What did you expect to happen -->
No deadlock.
#### Observed Behavior
<!-- What actually happened -->
Deadlock.
#### Setup
- **Operating System:** Buildroot 2022.08-git
- **Device:** Computer
- **GStreamer Version:** 1.21.0 from git main
- **Command line:**
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
1. start [gstd](https://github.com/RidgeRun/gstd-1.x) in gdb
2. create a pipeline `pipeline_create pwtest pipewiresrc path=40 target-object=41 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! decodebin3 ! videoconvert ! fakevideosink`
3. start the pipeline `pipeline_play pwtest`
4. send EOS signal to the pipeline `event_eos pwtest`
### How reproducible is the bug?
<!-- The reproducibility of the bug is Always/Intermittent/Only once after doing a very specific set of steps-->
Always
### Additional Information
<!-- Any other information such as logs. Make use of <details> for long output -->
```c
(gdb) thread apply all bt
Thread 13 (Thread 0x7fcef5c86640 (LWP 605) "pool-<unknown>"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x7fcef5c85920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x7fcef5c85920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
#2 0x00007fcf096e9b14 in g_socket_condition_timed_wait (socket=socket@entry=0x564a33646520, condition=condition@entry=G_IO_IN, timeout_us=<optimized out>, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:4459
#3 0x00007fcf096e9c80 in block_on_timeout (socket=socket@entry=0x564a33646520, condition=condition@entry=G_IO_IN, timeout_us=timeout_us@entry=-1, start_time=start_time@entry=274489417, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3197
#4 0x00007fcf096eaa47 in g_socket_receive_with_timeout (socket=0x564a33646520, buffer=0x7fcee400a200 "event_eos pwtest", size=1048576, timeout_us=-1, cancellable=0x0, error=0x0) at ../gio/gsocket.c:3245
#5 0x00007fcf096eab6a in g_socket_receive_with_blocking (socket=<optimized out>, buffer=buffer@entry=0x7fcee400a200 "event_eos pwtest", size=size@entry=1048576, blocking=blocking@entry=1, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3344
#6 0x00007fcf096f2c91 in g_socket_input_stream_read (stream=0x7fcee00022d0, buffer=0x7fcee400a200, count=1048576, cancellable=0x0, error=0x0) at ../gio/gsocketinputstream.c:126
#7 0x00007fcf096c5c13 in g_input_stream_read (stream=stream@entry=0x7fcee00022d0, buffer=buffer@entry=0x7fcee400a200, count=count@entry=1048576, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/ginputstream.c:198
#8 0x00007fcf09d30baa in gstd_socket_callback (service=<optimized out>, connection=connection@entry=0x564a33642f10, source_object=source_object@entry=0x0, user_data=user_data@entry=0x564a3353d820) at ../libgstd/gstd_socket.c:110
#9 0x00007fcf096ca6ea in _g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv (closure=0x564a33647ca0, return_value=0x7fcef5c85c40, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x564a33642640) at ../gio/gmarshal-internal.c:333
#10 0x00007fcf09b5f8fa in _g_closure_invoke_va (closure=closure@entry=0x564a33647ca0, return_value=return_value@entry=0x7fcef5c85c40, instance=instance@entry=0x564a33565460, args=args@entry=0x7fcef5c85d10, n_params=2, param_types=0x564a33642640) at ../gobject/gclosure.c:893
#11 0x00007fcf09b76edb in g_signal_emit_valist (instance=0x564a33565460, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fcef5c85d10) at ../gobject/gsignal.c:3406
#12 0x00007fcf09b77988 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553
#13 0x00007fcf096fd03b in g_threaded_socket_service_func (job_data=0x564a3363f600, user_data=<optimized out>) at ../gio/gthreadedsocketservice.c:96
#14 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
#15 0x00007fcf09a92225 in g_thread_proxy (data=0x7fceec01ac00) at ../glib/gthread.c:827
#16 0x00007fcf09abb228 in linux_pthread_proxy (data=0x7fceec01ac00) at ../glib/gthread-posix.c:1268
#17 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
#18 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 11 (Thread 0x7fcef5485640 (LWP 603) "gldisplay-event"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x7fcee00033d0, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x7fcee00033d0, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
#2 0x00007fcf09a66592 in g_main_context_poll (context=context@entry=0x7fcee0001ef0, timeout=-1, priority=<optimized out>, fds=fds@entry=0x7fcee00033d0, n_fds=n_fds@entry=1) at ../glib/gmain.c:4478
#3 0x00007fcf09a698e7 in g_main_context_iterate (context=0x7fcee0001ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=self@entry=0x7fcee802ed80) at ../glib/gmain.c:4170
#4 0x00007fcf09a69cd1 in g_main_loop_run (loop=0x7fcee0001fe0) at ../glib/gmain.c:4373
#5 0x00007fcf040ed1a7 in _event_thread_main (display=0x7fceec02d0f0) at ../gst-libs/gst/gl/gstgldisplay.c:144
#6 0x00007fcf09a92225 in g_thread_proxy (data=0x7fcee802ed80) at ../glib/gthread.c:827
#7 0x00007fcf09abb228 in linux_pthread_proxy (data=0x7fcee802ed80) at ../glib/gthread-posix.c:1268
#8 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
#9 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 8 (Thread 0x7fcef6ffd640 (LWP 600) "multiqueue0:src"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007fcf09abbe17 in g_cond_wait (cond=cond@entry=0x7fcefc003cd8, mutex=mutex@entry=0x7fcefc003cc8) at ../glib/gthread-posix.c:1574
#2 0x00007fcf05a9679b in _gst_data_queue_wait_non_empty (queue=queue@entry=0x7fcefc003d20) at ../libs/gst/base/gstdataqueue.c:554
#3 0x00007fcf05a983ba in gst_data_queue_pop (queue=0x7fcefc003d20, item=item@entry=0x7fcef6ffcd50) at ../libs/gst/base/gstdataqueue.c:596
#4 0x00007fcf05545154 in gst_multi_queue_loop (pad=<optimized out>) at ../plugins/elements/gstmultiqueue.c:2142
#5 0x00007fcf09c76c50 in gst_task_func (task=task@entry=0x7fcef000d3b0) at ../gst/gsttask.c:384
#6 0x00007fcf09c77dd1 in default_func (tdata=<optimized out>, pool=<optimized out>) at ../gst/gsttaskpool.c:70
#7 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
#8 0x00007fcf09a92225 in g_thread_proxy (data=0x7fcefc001de0) at ../glib/gthread.c:827
#9 0x00007fcf09abb228 in linux_pthread_proxy (data=0x7fcefc001de0) at ../glib/gthread-posix.c:1268
#10 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
#11 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 7 (Thread 0x7fcef77fe640 (LWP 599) "pipewiresrc0:sr"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007fcf09abbe17 in g_cond_wait (cond=cond@entry=0x7fcef8051650, mutex=mutex@entry=0x7fcef8051608) at ../glib/gthread-posix.c:1574
#2 0x00007fcf09c76b6f in gst_task_func (task=task@entry=0x7fcef80515f0) at ../gst/gsttask.c:369
#3 0x00007fcf09c77dd1 in default_func (tdata=<optimized out>, pool=<optimized out>) at ../gst/gsttaskpool.c:70
#4 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
#5 0x00007fcf09a92225 in g_thread_proxy (data=0x7fcefc001700) at ../glib/gthread.c:827
#6 0x00007fcf09abb228 in linux_pthread_proxy (data=0x7fcefc001700) at ../glib/gthread-posix.c:1268
#7 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
#8 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 6 (Thread 0x7fcef7fff640 (LWP 598) "pipewire-main-l"):
#0 0x00007fcf09921ff3 in epoll_wait (epfd=14, events=events@entry=0x7fcef7ffe9c0, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1 0x00007fcf0596534a in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7fcef7ffec10, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:157
#2 0x00007fcf05958449 in loop_iterate (object=0x7fcefc0070a8, timeout=-1) at ../spa/plugins/support/loop.c:400
#3 0x00007fcf05c0bf16 in do_loop (user_data=0x7fcefc006de0) at ../src/pipewire/thread-loop.c:253
#4 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
#5 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 5 (Thread 0x7fcf04a41640 (LWP 597) "pool-<unknown>"):
#0 0x00007fcf09921ff3 in epoll_wait (epfd=18, events=events@entry=0x7fcf04a40940, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1 0x00007fcf0596534a in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7fcf04a40b90, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:157
#2 0x00007fcf05958449 in loop_iterate (object=0x7fcefc011548, timeout=-1) at ../spa/plugins/support/loop.c:400
#3 0x00007fcf05bb9932 in do_loop (user_data=0x7fcefc0113f0) at ../src/pipewire/data-loop.c:81
#4 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
#5 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 4 (Thread 0x7fcf054c4640 (LWP 596) "pool-<unknown>"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x7fcf054c3920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x7fcf054c3920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
#2 0x00007fcf096e9b14 in g_socket_condition_timed_wait (socket=socket@entry=0x564a336463d0, condition=condition@entry=G_IO_IN, timeout_us=<optimized out>, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:4459
#3 0x00007fcf096e9c80 in block_on_timeout (socket=socket@entry=0x564a336463d0, condition=condition@entry=G_IO_IN, timeout_us=timeout_us@entry=-1, start_time=start_time@entry=258522352, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3197
#4 0x00007fcf096eaa47 in g_socket_receive_with_timeout (socket=0x564a336463d0, buffer=0x7fcf04bc3010 "pipeline_play pwtest", size=1048576, timeout_us=-1, cancellable=0x0, error=0x0) at ../gio/gsocket.c:3245
#5 0x00007fcf096eab6a in g_socket_receive_with_blocking (socket=<optimized out>, buffer=buffer@entry=0x7fcf04bc3010 "pipeline_play pwtest", size=size@entry=1048576, blocking=blocking@entry=1, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3344
#6 0x00007fcf096f2c91 in g_socket_input_stream_read (stream=0x7fcef8070730, buffer=0x7fcf04bc3010, count=1048576, cancellable=0x0, error=0x0) at ../gio/gsocketinputstream.c:126
#7 0x00007fcf096c5c13 in g_input_stream_read (stream=stream@entry=0x7fcef8070730, buffer=buffer@entry=0x7fcf04bc3010, count=count@entry=1048576, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/ginputstream.c:198
#8 0x00007fcf09d30baa in gstd_socket_callback (service=<optimized out>, connection=connection@entry=0x564a33642e90, source_object=source_object@entry=0x0, user_data=user_data@entry=0x564a3353d820) at ../libgstd/gstd_socket.c:110
#9 0x00007fcf096ca6ea in _g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv (closure=0x564a33647ca0, return_value=0x7fcf054c3c40, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x564a33642640) at ../gio/gmarshal-internal.c:333
#10 0x00007fcf09b5f8fa in _g_closure_invoke_va (closure=closure@entry=0x564a33647ca0, return_value=return_value@entry=0x7fcf054c3c40, instance=instance@entry=0x564a33565460, args=args@entry=0x7fcf054c3d10, n_params=2, param_types=0x564a33642640) at ../gobject/gclosure.c:893
#11 0x00007fcf09b76edb in g_signal_emit_valist (instance=0x564a33565460, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fcf054c3d10) at ../gobject/gsignal.c:3406
#12 0x00007fcf09b77988 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553
#13 0x00007fcf096fd03b in g_threaded_socket_service_func (job_data=0x564a3363f740, user_data=<optimized out>) at ../gio/gthreadedsocketservice.c:96
#14 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
#15 0x00007fcf09a92225 in g_thread_proxy (data=0x564a336470c0) at ../glib/gthread.c:827
#16 0x00007fcf09abb228 in linux_pthread_proxy (data=0x564a336470c0) at ../glib/gthread-posix.c:1268
#17 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
#18 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 3 (Thread 0x7fcf0657c640 (LWP 595) "pool-<unknown>"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x7fcf0657b920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x7fcf0657b920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
#2 0x00007fcf096e9b14 in g_socket_condition_timed_wait (socket=socket@entry=0x564a33646280, condition=condition@entry=G_IO_IN, timeout_us=<optimized out>, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:4459
#3 0x00007fcf096e9c80 in block_on_timeout (socket=socket@entry=0x564a33646280, condition=condition@entry=G_IO_IN, timeout_us=timeout_us@entry=-1, start_time=start_time@entry=251520192, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3197
#4 0x00007fcf096eaa47 in g_socket_receive_with_timeout (socket=0x564a33646280, buffer=0x7fcf05c7b010 "pipeline_create pwtest pipewiresrc path=40 target-object=41 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! decodebin3 ! videoconvert ! fakevideosink", size=1048576, timeout_us=-1, cancellable=0x0, error=0x0) at ../gio/gsocket.c:3245
#5 0x00007fcf096eab6a in g_socket_receive_with_blocking (socket=<optimized out>, buffer=buffer@entry=0x7fcf05c7b010 "pipeline_create pwtest pipewiresrc path=40 target-object=41 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! decodebin3 ! videoconvert ! fakevideosink", size=size@entry=1048576, blocking=blocking@entry=1, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3344
#6 0x00007fcf096f2c91 in g_socket_input_stream_read (stream=0x564a336475b0, buffer=0x7fcf05c7b010, count=1048576, cancellable=0x0, error=0x0) at ../gio/gsocketinputstream.c:126
#7 0x00007fcf096c5c13 in g_input_stream_read (stream=stream@entry=0x564a336475b0, buffer=buffer@entry=0x7fcf05c7b010, count=count@entry=1048576, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/ginputstream.c:198
#8 0x00007fcf09d30baa in gstd_socket_callback (service=<optimized out>, connection=connection@entry=0x564a33642e10, source_object=source_object@entry=0x0, user_data=user_data@entry=0x564a3353d820) at ../libgstd/gstd_socket.c:110
#9 0x00007fcf096ca6ea in _g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv (closure=0x564a33647ca0, return_value=0x7fcf0657bc40, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x564a33642640) at ../gio/gmarshal-internal.c:333
#10 0x00007fcf09b5f8fa in _g_closure_invoke_va (closure=closure@entry=0x564a33647ca0, return_value=return_value@entry=0x7fcf0657bc40, instance=instance@entry=0x564a33565460, args=args@entry=0x7fcf0657bd10, n_params=2, param_types=0x564a33642640) at ../gobject/gclosure.c:893
#11 0x00007fcf09b76edb in g_signal_emit_valist (instance=0x564a33565460, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fcf0657bd10) at ../gobject/gsignal.c:3406
#12 0x00007fcf09b77988 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553
#13 0x00007fcf096fd03b in g_threaded_socket_service_func (job_data=0x564a3363f7a0, user_data=<optimized out>) at ../gio/gthreadedsocketservice.c:96
#14 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
#15 0x00007fcf09a92225 in g_thread_proxy (data=0x564a33647060) at ../glib/gthread.c:827
#16 0x00007fcf09abb228 in linux_pthread_proxy (data=0x564a33647060) at ../glib/gthread-posix.c:1268
#17 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
#18 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 2 (Thread 0x7fcf06d7d640 (LWP 594) "gmain"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x564a33642140, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x564a33642140, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
#2 0x00007fcf09a66592 in g_main_context_poll (context=context@entry=0x564a33645c20, timeout=-1, priority=<optimized out>, fds=fds@entry=0x564a33642140, n_fds=n_fds@entry=1) at ../glib/gmain.c:4478
#3 0x00007fcf09a698e7 in g_main_context_iterate (context=context@entry=0x564a33645c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4170
#4 0x00007fcf09a699ba in g_main_context_iteration (context=0x564a33645c20, may_block=may_block@entry=1) at ../glib/gmain.c:4240
#5 0x00007fcf09a699ec in glib_worker_main (data=<optimized out>) at ../glib/gmain.c:6140
#6 0x00007fcf09a92225 in g_thread_proxy (data=0x564a3352cb00) at ../glib/gthread.c:827
#7 0x00007fcf09abb228 in linux_pthread_proxy (data=0x564a3352cb00) at ../glib/gthread-posix.c:1268
#8 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
#9 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 1 (Thread 0x7fcf06d80b80 (LWP 589) "gstd"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x564a33647e30, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x564a33647e30, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
#2 0x00007fcf09a66592 in g_main_context_poll (context=context@entry=0x564a33647800, timeout=-1, priority=<optimized out>, fds=fds@entry=0x564a33647e30, n_fds=n_fds@entry=2) at ../glib/gmain.c:4478
#3 0x00007fcf09a698e7 in g_main_context_iterate (context=0x564a33647800, block=block@entry=1, dispatch=dispatch@entry=1, self=self@entry=0x564a3353e800) at ../glib/gmain.c:4170
#4 0x00007fcf09a69cd1 in g_main_loop_run (loop=loop@entry=0x564a33647cd0) at ../glib/gmain.c:4373
#5 0x0000564a31e9b095 in main (argc=<optimized out>, argv=<optimized out>) at ../gstd/gstd.c:184
```
```c
(gdb) thread apply all bt full
Thread 13 (Thread 0x7fcef5c86640 (LWP 605) "pool-<unknown>"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x7fcef5c85920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
__arg2 = 1
_a3 = -1
_a1 = 140526863538464
resultvar = 18446744073709551100
__arg3 = -1
__arg1 = 140526863538464
_a2 = 1
sc_ret = <optimized out>
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x7fcef5c85920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
No locals.
#2 0x00007fcf096e9b14 in g_socket_condition_timed_wait (socket=socket@entry=0x564a33646520, condition=condition@entry=G_IO_IN, timeout_us=<optimized out>, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:4459
errsv = <optimized out>
poll_fd = {{fd = 45, events = 1, revents = 0}, {fd = -171419248, events = 32718, revents = 0}}
result = <optimized out>
num = 1
start_time = 274489423
timeout_ms = -1
__func__ = "g_socket_condition_timed_wait"
#3 0x00007fcf096e9c80 in block_on_timeout (socket=socket@entry=0x564a33646520, condition=condition@entry=G_IO_IN, timeout_us=timeout_us@entry=-1, start_time=start_time@entry=274489417, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3197
wait_timeout = <optimized out>
__func__ = "block_on_timeout"
#4 0x00007fcf096eaa47 in g_socket_receive_with_timeout (socket=0x564a33646520, buffer=0x7fcee400a200 "event_eos pwtest", size=1048576, timeout_us=-1, cancellable=0x0, error=0x0) at ../gio/gsocket.c:3245
errsv = 11
ret = <optimized out>
start_time = 274489417
__func__ = "g_socket_receive_with_timeout"
#5 0x00007fcf096eab6a in g_socket_receive_with_blocking (socket=<optimized out>, buffer=buffer@entry=0x7fcee400a200 "event_eos pwtest", size=size@entry=1048576, blocking=blocking@entry=1, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3344
No locals.
#6 0x00007fcf096f2c91 in g_socket_input_stream_read (stream=0x7fcee00022d0, buffer=0x7fcee400a200, count=1048576, cancellable=0x0, error=0x0) at ../gio/gsocketinputstream.c:126
input_stream = <optimized out>
#7 0x00007fcf096c5c13 in g_input_stream_read (stream=stream@entry=0x7fcee00022d0, buffer=buffer@entry=0x7fcee400a200, count=count@entry=1048576, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/ginputstream.c:198
class = 0x7fcef8003e30
res = <optimized out>
__func__ = "g_input_stream_read"
#8 0x00007fcf09d30baa in gstd_socket_callback (service=<optimized out>, connection=connection@entry=0x564a33642f10, source_object=source_object@entry=0x0, user_data=user_data@entry=0x564a3353d820) at ../libgstd/gstd_socket.c:110
session = 0x564a3353d820
istream = 0x7fcee00022d0
ostream = 0x7fcee0002330
read = <optimized out>
size = 1048576
output = 0x0
response = <optimized out>
message = 0x7fcee400a200 "event_eos pwtest"
ret = <optimized out>
description = <optimized out>
__func__ = "gstd_socket_callback"
#9 0x00007fcf096ca6ea in _g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv (closure=0x564a33647ca0, return_value=0x7fcef5c85c40, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x564a33642640) at ../gio/gmarshal-internal.c:333
cc = 0x564a33647ca0
data1 = <optimized out>
data2 = 0x564a3353d820
callback = 0x7fcf09d309ae <gstd_socket_callback>
v_return = <optimized out>
arg0 = 0x564a33642f10
arg1 = 0x0
args_copy = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fcef5c85df0, reg_save_area = 0x7fcef5c85d30}}
__func__ = "_g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv"
#10 0x00007fcf09b5f8fa in _g_closure_invoke_va (closure=closure@entry=0x564a33647ca0, return_value=return_value@entry=0x7fcef5c85c40, instance=instance@entry=0x564a33565460, args=args@entry=0x7fcef5c85d10, n_params=2, param_types=0x564a33642640) at ../gobject/gclosure.c:893
marshal = 0x7fcf096ca623 <_g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv>
marshal_data = 0x0
in_marshal = 1
real_closure = 0x564a33647c80
__func__ = "_g_closure_invoke_va"
#11 0x00007fcf09b76edb in g_signal_emit_valist (instance=0x564a33565460, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fcef5c85d10) at ../gobject/gsignal.c:3406
return_accu = 0x7fcef5c85c40
accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
accumulator = 0x564a33642660
emission = {next = 0x7fcf054c3c10, instance = 0x564a33565460, ihint = {signal_id = 22, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 94876689764400}
signal_id = 22
instance_type = <optimized out>
emission_return = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
rtype = 20
static_scope = 0
fastpath_handler = 0x564a33639740
closure = 0x564a33647ca0
run_type = G_SIGNAL_RUN_FIRST
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = 0x564a33640ba0
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#12 0x00007fcf09b77988 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fcef5c85df0, reg_save_area = 0x7fcef5c85d30}}
#13 0x00007fcf096fd03b in g_threaded_socket_service_func (job_data=0x564a3363f600, user_data=<optimized out>) at ../gio/gthreadedsocketservice.c:96
data = 0x564a3363f600
result = 0
#14 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
task = 0x564a3363f600
pool = 0x564a335415d0
#15 0x00007fcf09a92225 in g_thread_proxy (data=0x7fceec01ac00) at ../glib/gthread.c:827
thread = 0x7fceec01ac00
__func__ = "g_thread_proxy"
#16 0x00007fcf09abb228 in linux_pthread_proxy (data=0x7fceec01ac00) at ../glib/gthread-posix.c:1268
thread = 0x7fceec01ac00
printed_scheduler_warning = 1
#17 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140526863541824, -9140004241326318415, 140526863541824, 0, 8388352, 140526855151616, 9130420430919589041, 9130552933405318321}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#18 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 11 (Thread 0x7fcef5485640 (LWP 603) "gldisplay-event"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x7fcee00033d0, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
__arg2 = 1
_a3 = -1
_a1 = 140526498100176
resultvar = 18446744073709551100
__arg3 = -1
__arg1 = 140526498100176
_a2 = 1
sc_ret = <optimized out>
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x7fcee00033d0, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
No locals.
#2 0x00007fcf09a66592 in g_main_context_poll (context=context@entry=0x7fcee0001ef0, timeout=-1, priority=<optimized out>, fds=fds@entry=0x7fcee00033d0, n_fds=n_fds@entry=1) at ../glib/gmain.c:4478
ret = <optimized out>
errsv = <optimized out>
poll_func = 0x7fcf09a783a6 <g_poll>
#3 0x00007fcf09a698e7 in g_main_context_iterate (context=0x7fcee0001ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=self@entry=0x7fcee802ed80) at ../glib/gmain.c:4170
max_priority = 2147483647
timeout = -1
some_ready = <optimized out>
nfds = 1
allocated_nfds = 1
fds = 0x7fcee00033d0
begin_time_nsec = 0
#4 0x00007fcf09a69cd1 in g_main_loop_run (loop=0x7fcee0001fe0) at ../glib/gmain.c:4373
self = 0x7fcee802ed80
__func__ = "g_main_loop_run"
#5 0x00007fcf040ed1a7 in _event_thread_main (display=0x7fceec02d0f0) at ../gst-libs/gst/gl/gstgldisplay.c:144
No locals.
#6 0x00007fcf09a92225 in g_thread_proxy (data=0x7fcee802ed80) at ../glib/gthread.c:827
thread = 0x7fcee802ed80
__func__ = "g_thread_proxy"
#7 0x00007fcf09abb228 in linux_pthread_proxy (data=0x7fcee802ed80) at ../glib/gthread-posix.c:1268
thread = 0x7fcee802ed80
printed_scheduler_warning = 1
#8 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140526855149120, -9140004241326318415, 140526855149120, 2, 8388352, 140526846758912, 9130419331944832177, 9130552933405318321}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#9 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 8 (Thread 0x7fcef6ffd640 (LWP 600) "multiqueue0:src"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007fcf09abbe17 in g_cond_wait (cond=cond@entry=0x7fcefc003cd8, mutex=mutex@entry=0x7fcefc003cc8) at ../glib/gthread-posix.c:1574
sampled = 215
#2 0x00007fcf05a9679b in _gst_data_queue_wait_non_empty (queue=queue@entry=0x7fcefc003d20) at ../libs/gst/base/gstdataqueue.c:554
priv = 0x7fcefc003ca0
#3 0x00007fcf05a983ba in gst_data_queue_pop (queue=0x7fcefc003d20, item=item@entry=0x7fcef6ffcd50) at ../libs/gst/base/gstdataqueue.c:596
priv = 0x7fcefc003ca0
__func__ = "gst_data_queue_pop"
#4 0x00007fcf05545154 in gst_multi_queue_loop (pad=<optimized out>) at ../plugins/elements/gstmultiqueue.c:2142
sq = 0x7fcee802bc30
item = <optimized out>
sitem = 0x7fcee802fc90
mq = 0x7fcef802d090
object = 0x0
newid = <optimized out>
result = <optimized out>
next_time = <optimized out>
is_buffer = <optimized out>
is_query = 0
do_update_buffering = 0
dropping = 1
srcpad = 0x7fcef801b660
__func__ = "gst_multi_queue_loop"
#5 0x00007fcf09c76c50 in gst_task_func (task=task@entry=0x7fcef000d3b0) at ../gst/gsttask.c:384
lock = 0x7fcef801b6d0
tself = 0x7fcefc001de0
priv = 0x7fcef000d360
__func__ = "gst_task_func"
#6 0x00007fcf09c77dd1 in default_func (tdata=<optimized out>, pool=<optimized out>) at ../gst/gsttaskpool.c:70
func = 0x7fcf09c76a16 <gst_task_func>
user_data = 0x7fcef000d3b0
#7 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
task = 0x7fcee800d090
pool = 0x7fcefc043ac0
#8 0x00007fcf09a92225 in g_thread_proxy (data=0x7fcefc001de0) at ../glib/gthread.c:827
thread = 0x7fcefc001de0
__func__ = "g_thread_proxy"
#9 0x00007fcf09abb228 in linux_pthread_proxy (data=0x7fcefc001de0) at ../glib/gthread-posix.c:1268
thread = 0x7fcefc001de0
printed_scheduler_warning = 1
#10 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140526883952192, -9140004241326318415, 140526883952192, 32, 8388352, 140526875561984, 9130418700584639665, 9130552933405318321}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#11 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 7 (Thread 0x7fcef77fe640 (LWP 599) "pipewiresrc0:sr"):
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
No locals.
#1 0x00007fcf09abbe17 in g_cond_wait (cond=cond@entry=0x7fcef8051650, mutex=mutex@entry=0x7fcef8051608) at ../glib/gthread-posix.c:1574
sampled = 1
#2 0x00007fcf09c76b6f in gst_task_func (task=task@entry=0x7fcef80515f0) at ../gst/gsttask.c:369
lock = 0x7fcef801a200
tself = 0x7fcefc001700
priv = 0x7fcef80515a0
__func__ = "gst_task_func"
#3 0x00007fcf09c77dd1 in default_func (tdata=<optimized out>, pool=<optimized out>) at ../gst/gsttaskpool.c:70
func = 0x7fcf09c76a16 <gst_task_func>
user_data = 0x7fcef80515f0
#4 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
task = 0x7fcefc002610
pool = 0x7fcefc043ac0
#5 0x00007fcf09a92225 in g_thread_proxy (data=0x7fcefc001700) at ../glib/gthread.c:827
thread = 0x7fcefc001700
__func__ = "g_thread_proxy"
#6 0x00007fcf09abb228 in linux_pthread_proxy (data=0x7fcefc001700) at ../glib/gthread-posix.c:1268
thread = 0x7fcefc001700
printed_scheduler_warning = 1
#7 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140526892344896, -9140004241326318415, 140526892344896, 112, 8388352, 140526883954688, 9130415401512885425, 9130552933405318321}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#8 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 6 (Thread 0x7fcef7fff640 (LWP 598) "pipewire-main-l"):
#0 0x00007fcf09921ff3 in epoll_wait (epfd=14, events=events@entry=0x7fcef7ffe9c0, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
__arg4 = -1
__arg2 = 140526900734400
_a3 = 32
_a1 = 14
resultvar = 18446744073709551612
__arg3 = 32
__arg1 = 14
_a4 = -1
_a2 = 140526900734400
sc_ret = <optimized out>
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007fcf0596534a in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7fcef7ffec10, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:157
ep = 0x7fcef7ffe9c0
i = <optimized out>
nfds = <optimized out>
#2 0x00007fcf05958449 in loop_iterate (object=0x7fcefc0070a8, timeout=-1) at ../spa/plugins/support/loop.c:400
_f = <optimized out>
_res = -95
_o = <optimized out>
impl = 0x7fcefc0070a8
ep = {{events = 1, data = 0x7fcefc0067b0}, {events = 1, data = 0x7fcefc019760}, {events = 0, data = 0x0} <repeats 30 times>}
e = <optimized out>
i = <optimized out>
nfds = <optimized out>
cdata = {ep = 0x7fcef7ffec10, ep_count = 1}
__func__ = "loop_iterate"
#3 0x00007fcf05c0bf16 in do_loop (user_data=0x7fcefc006de0) at ../src/pipewire/thread-loop.c:253
_f = <optimized out>
_res = -95
_o = <optimized out>
this = 0x7fcefc006de0
res = <optimized out>
__func__ = "do_loop"
#4 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140526900737600, -9140004241326318415, 140526900737600, 0, 8388352, 140526892347392, 9130416500487642289, 9130552933405318321}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#5 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 5 (Thread 0x7fcf04a41640 (LWP 597) "pool-<unknown>"):
#0 0x00007fcf09921ff3 in epoll_wait (epfd=18, events=events@entry=0x7fcf04a40940, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
__arg4 = -1
__arg2 = 140527112816960
_a3 = 32
_a1 = 18
resultvar = 18446744073709551612
__arg3 = 32
__arg1 = 18
_a4 = -1
_a2 = 140527112816960
sc_ret = <optimized out>
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007fcf0596534a in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7fcf04a40b90, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:157
ep = 0x7fcf04a40940
i = <optimized out>
nfds = <optimized out>
#2 0x00007fcf05958449 in loop_iterate (object=0x7fcefc011548, timeout=-1) at ../spa/plugins/support/loop.c:400
_f = <optimized out>
_res = -95
_o = <optimized out>
impl = 0x7fcefc011548
ep = {{events = 1, data = 0x7fcee8008470}, {events = 0, data = 0x0} <repeats 31 times>}
e = <optimized out>
i = <optimized out>
nfds = <optimized out>
cdata = {ep = 0x7fcf04a40b90, ep_count = 1}
__func__ = "loop_iterate"
#3 0x00007fcf05bb9932 in do_loop (user_data=0x7fcefc0113f0) at ../src/pipewire/data-loop.c:81
_f = <optimized out>
_res = -95
_o = <optimized out>
__cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {140527112820288, -9140004241326318415, 140527112820288, 0, 8388352, 140527104430080, 9130529109207571633, 9130526965632359601}, __mask_was_saved = 0}}, __pad = {0x7fcf04a40e70, 0x0, 0x0, 0x0}}
__cancel_routine = 0x7fcf05bb9662 <thread_cleanup>
__cancel_arg = 0x7fcefc0113f0
__not_first_call = <optimized out>
this = 0x7fcefc0113f0
res = <optimized out>
__func__ = "do_loop"
#4 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140527112820288, -9140004241326318415, 140527112820288, 0, 8388352, 140527104430080, 9130529109161434289, 9130552933405318321}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#5 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 4 (Thread 0x7fcf054c4640 (LWP 596) "pool-<unknown>"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x7fcf054c3920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
__arg2 = 1
_a3 = -1
_a1 = 140527123839264
resultvar = 18446744073709551100
__arg3 = -1
__arg1 = 140527123839264
_a2 = 1
sc_ret = <optimized out>
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x7fcf054c3920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
No locals.
#2 0x00007fcf096e9b14 in g_socket_condition_timed_wait (socket=socket@entry=0x564a336463d0, condition=condition@entry=G_IO_IN, timeout_us=<optimized out>, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:4459
errsv = <optimized out>
poll_fd = {{fd = 13, events = 1, revents = 0}, {fd = 88881552, events = 32719, revents = 0}}
result = <optimized out>
num = 1
start_time = 258522358
timeout_ms = -1
__func__ = "g_socket_condition_timed_wait"
#3 0x00007fcf096e9c80 in block_on_timeout (socket=socket@entry=0x564a336463d0, condition=condition@entry=G_IO_IN, timeout_us=timeout_us@entry=-1, start_time=start_time@entry=258522352, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3197
wait_timeout = <optimized out>
__func__ = "block_on_timeout"
#4 0x00007fcf096eaa47 in g_socket_receive_with_timeout (socket=0x564a336463d0, buffer=0x7fcf04bc3010 "pipeline_play pwtest", size=1048576, timeout_us=-1, cancellable=0x0, error=0x0) at ../gio/gsocket.c:3245
errsv = 11
ret = <optimized out>
start_time = 258522352
__func__ = "g_socket_receive_with_timeout"
#5 0x00007fcf096eab6a in g_socket_receive_with_blocking (socket=<optimized out>, buffer=buffer@entry=0x7fcf04bc3010 "pipeline_play pwtest", size=size@entry=1048576, blocking=blocking@entry=1, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3344
No locals.
#6 0x00007fcf096f2c91 in g_socket_input_stream_read (stream=0x7fcef8070730, buffer=0x7fcf04bc3010, count=1048576, cancellable=0x0, error=0x0) at ../gio/gsocketinputstream.c:126
input_stream = <optimized out>
#7 0x00007fcf096c5c13 in g_input_stream_read (stream=stream@entry=0x7fcef8070730, buffer=buffer@entry=0x7fcf04bc3010, count=count@entry=1048576, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/ginputstream.c:198
class = 0x7fcef8003e30
res = <optimized out>
__func__ = "g_input_stream_read"
#8 0x00007fcf09d30baa in gstd_socket_callback (service=<optimized out>, connection=connection@entry=0x564a33642e90, source_object=source_object@entry=0x0, user_data=user_data@entry=0x564a3353d820) at ../libgstd/gstd_socket.c:110
session = 0x564a3353d820
istream = 0x7fcef8070730
ostream = 0x7fcef8070790
read = <optimized out>
size = 1048576
output = 0x0
response = <optimized out>
message = 0x7fcf04bc3010 "pipeline_play pwtest"
ret = <optimized out>
description = <optimized out>
__func__ = "gstd_socket_callback"
#9 0x00007fcf096ca6ea in _g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv (closure=0x564a33647ca0, return_value=0x7fcf054c3c40, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x564a33642640) at ../gio/gmarshal-internal.c:333
cc = 0x564a33647ca0
data1 = <optimized out>
data2 = 0x564a3353d820
callback = 0x7fcf09d309ae <gstd_socket_callback>
v_return = <optimized out>
arg0 = 0x564a33642e90
arg1 = 0x0
args_copy = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fcf054c3df0, reg_save_area = 0x7fcf054c3d30}}
__func__ = "_g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv"
#10 0x00007fcf09b5f8fa in _g_closure_invoke_va (closure=closure@entry=0x564a33647ca0, return_value=return_value@entry=0x7fcf054c3c40, instance=instance@entry=0x564a33565460, args=args@entry=0x7fcf054c3d10, n_params=2, param_types=0x564a33642640) at ../gobject/gclosure.c:893
marshal = 0x7fcf096ca623 <_g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv>
marshal_data = 0x0
in_marshal = 1
real_closure = 0x564a33647c80
__func__ = "_g_closure_invoke_va"
#11 0x00007fcf09b76edb in g_signal_emit_valist (instance=0x564a33565460, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fcf054c3d10) at ../gobject/gsignal.c:3406
return_accu = 0x7fcf054c3c40
accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
accumulator = 0x564a33642660
emission = {next = 0x7fcf0657bc10, instance = 0x564a33565460, ihint = {signal_id = 22, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 94876689764400}
signal_id = 22
instance_type = <optimized out>
emission_return = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
rtype = 20
static_scope = 0
fastpath_handler = 0x564a33639740
closure = 0x564a33647ca0
run_type = G_SIGNAL_RUN_FIRST
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = 0x564a33640ba0
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#12 0x00007fcf09b77988 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fcf054c3df0, reg_save_area = 0x7fcf054c3d30}}
#13 0x00007fcf096fd03b in g_threaded_socket_service_func (job_data=0x564a3363f740, user_data=<optimized out>) at ../gio/gthreadedsocketservice.c:96
data = 0x564a3363f740
result = 0
#14 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
task = 0x564a3363f740
pool = 0x564a335415d0
#15 0x00007fcf09a92225 in g_thread_proxy (data=0x564a336470c0) at ../glib/gthread.c:827
thread = 0x564a336470c0
__func__ = "g_thread_proxy"
#16 0x00007fcf09abb228 in linux_pthread_proxy (data=0x564a336470c0) at ../glib/gthread-posix.c:1268
thread = 0x564a336470c0
printed_scheduler_warning = 1
#17 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140527123842624, -9140004241326318415, 140527123842624, 2, 8388352, 140527115452416, 9130524915662740657, 9130552933405318321}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#18 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 3 (Thread 0x7fcf0657c640 (LWP 595) "pool-<unknown>"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x7fcf0657b920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
__arg2 = 1
_a3 = -1
_a1 = 140527141370144
resultvar = 18446744073709551100
__arg3 = -1
__arg1 = 140527141370144
_a2 = 1
sc_ret = <optimized out>
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x7fcf0657b920, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
No locals.
#2 0x00007fcf096e9b14 in g_socket_condition_timed_wait (socket=socket@entry=0x564a33646280, condition=condition@entry=G_IO_IN, timeout_us=<optimized out>, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:4459
errsv = <optimized out>
poll_fd = {{fd = 6, events = 1, revents = 0}, {fd = 106412432, events = 32719, revents = 0}}
result = <optimized out>
num = 1
start_time = 251520201
timeout_ms = -1
__func__ = "g_socket_condition_timed_wait"
#3 0x00007fcf096e9c80 in block_on_timeout (socket=socket@entry=0x564a33646280, condition=condition@entry=G_IO_IN, timeout_us=timeout_us@entry=-1, start_time=start_time@entry=251520192, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3197
wait_timeout = <optimized out>
__func__ = "block_on_timeout"
#4 0x00007fcf096eaa47 in g_socket_receive_with_timeout (socket=0x564a33646280, buffer=0x7fcf05c7b010 "pipeline_create pwtest pipewiresrc path=40 target-object=41 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! decodebin3 ! videoconvert ! fakevideosink", size=1048576, timeout_us=-1, cancellable=0x0, error=0x0) at ../gio/gsocket.c:3245
errsv = 11
ret = <optimized out>
start_time = 251520192
__func__ = "g_socket_receive_with_timeout"
#5 0x00007fcf096eab6a in g_socket_receive_with_blocking (socket=<optimized out>, buffer=buffer@entry=0x7fcf05c7b010 "pipeline_create pwtest pipewiresrc path=40 target-object=41 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! decodebin3 ! videoconvert ! fakevideosink", size=size@entry=1048576, blocking=blocking@entry=1, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/gsocket.c:3344
No locals.
#6 0x00007fcf096f2c91 in g_socket_input_stream_read (stream=0x564a336475b0, buffer=0x7fcf05c7b010, count=1048576, cancellable=0x0, error=0x0) at ../gio/gsocketinputstream.c:126
input_stream = <optimized out>
#7 0x00007fcf096c5c13 in g_input_stream_read (stream=stream@entry=0x564a336475b0, buffer=buffer@entry=0x7fcf05c7b010, count=count@entry=1048576, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ../gio/ginputstream.c:198
class = 0x7fcef8003e30
res = <optimized out>
__func__ = "g_input_stream_read"
#8 0x00007fcf09d30baa in gstd_socket_callback (service=<optimized out>, connection=connection@entry=0x564a33642e10, source_object=source_object@entry=0x0, user_data=user_data@entry=0x564a3353d820) at ../libgstd/gstd_socket.c:110
session = 0x564a3353d820
istream = 0x564a336475b0
ostream = 0x564a33647610
read = <optimized out>
size = 1048576
output = 0x0
response = <optimized out>
message = 0x7fcf05c7b010 "pipeline_create pwtest pipewiresrc path=40 target-object=41 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! decodebin3 ! videoconvert ! fakevideosink"
ret = <optimized out>
description = <optimized out>
__func__ = "gstd_socket_callback"
#9 0x00007fcf096ca6ea in _g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv (closure=0x564a33647ca0, return_value=0x7fcf0657bc40, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x564a33642640) at ../gio/gmarshal-internal.c:333
cc = 0x564a33647ca0
data1 = <optimized out>
data2 = 0x564a3353d820
callback = 0x7fcf09d309ae <gstd_socket_callback>
v_return = <optimized out>
arg0 = 0x564a33642e10
arg1 = 0x0
args_copy = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fcf0657bdf0, reg_save_area = 0x7fcf0657bd30}}
__func__ = "_g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv"
#10 0x00007fcf09b5f8fa in _g_closure_invoke_va (closure=closure@entry=0x564a33647ca0, return_value=return_value@entry=0x7fcf0657bc40, instance=instance@entry=0x564a33565460, args=args@entry=0x7fcf0657bd10, n_params=2, param_types=0x564a33642640) at ../gobject/gclosure.c:893
marshal = 0x7fcf096ca623 <_g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x564a33647c80
__func__ = "_g_closure_invoke_va"
#11 0x00007fcf09b76edb in g_signal_emit_valist (instance=0x564a33565460, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fcf0657bd10) at ../gobject/gsignal.c:3406
return_accu = 0x7fcf0657bc40
accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
accumulator = 0x564a33642660
emission = {next = 0x0, instance = 0x564a33565460, ihint = {signal_id = 22, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 94876689764400}
signal_id = 22
instance_type = <optimized out>
emission_return = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
rtype = 20
static_scope = 0
fastpath_handler = 0x564a33639740
closure = 0x564a33647ca0
run_type = G_SIGNAL_RUN_FIRST
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = 0x564a33640ba0
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#12 0x00007fcf09b77988 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fcf0657bdf0, reg_save_area = 0x7fcf0657bd30}}
#13 0x00007fcf096fd03b in g_threaded_socket_service_func (job_data=0x564a3363f7a0, user_data=<optimized out>) at ../gio/gthreadedsocketservice.c:96
data = 0x564a3363f7a0
result = 0
#14 0x00007fcf09a92be2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
task = 0x564a3363f7a0
pool = 0x564a335415d0
#15 0x00007fcf09a92225 in g_thread_proxy (data=0x564a33647060) at ../glib/gthread.c:827
thread = 0x564a33647060
__func__ = "g_thread_proxy"
#16 0x00007fcf09abb228 in linux_pthread_proxy (data=0x564a33647060) at ../glib/gthread-posix.c:1268
thread = 0x564a33647060
printed_scheduler_warning = 1
#17 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140527141373504, -9140004241326318415, 140527141373504, 2, 8388352, 140527132983296, 9130522944272751793, 9130552933405318321}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#18 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 2 (Thread 0x7fcf06d7d640 (LWP 594) "gmain"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x564a33642140, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
__arg2 = 1
_a3 = -1
_a1 = 94876689768768
resultvar = 18446744073709551100
__arg3 = -1
__arg1 = 94876689768768
_a2 = 1
sc_ret = <optimized out>
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x564a33642140, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
No locals.
#2 0x00007fcf09a66592 in g_main_context_poll (context=context@entry=0x564a33645c20, timeout=-1, priority=<optimized out>, fds=fds@entry=0x564a33642140, n_fds=n_fds@entry=1) at ../glib/gmain.c:4478
ret = <optimized out>
errsv = <optimized out>
poll_func = 0x7fcf09a783a6 <g_poll>
#3 0x00007fcf09a698e7 in g_main_context_iterate (context=context@entry=0x564a33645c20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4170
max_priority = 2147483647
timeout = -1
some_ready = <optimized out>
nfds = 1
allocated_nfds = 1
fds = 0x564a33642140
begin_time_nsec = 0
#4 0x00007fcf09a699ba in g_main_context_iteration (context=0x564a33645c20, may_block=may_block@entry=1) at ../glib/gmain.c:4240
retval = <optimized out>
#5 0x00007fcf09a699ec in glib_worker_main (data=<optimized out>) at ../glib/gmain.c:6140
No locals.
#6 0x00007fcf09a92225 in g_thread_proxy (data=0x564a3352cb00) at ../glib/gthread.c:827
thread = 0x564a3352cb00
__func__ = "g_thread_proxy"
#7 0x00007fcf09abb228 in linux_pthread_proxy (data=0x564a3352cb00) at ../glib/gthread-posix.c:1268
thread = 0x564a3352cb00
printed_scheduler_warning = 1
#8 0x00007fcf098a8dc9 in start_thread (arg=<optimized out>) at pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140527149766208, -9140004241326318415, 140527149766208, 2, 8388352, 140527141376000, 9130524047542475953, 9130552933405318321}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#9 0x00007fcf0992273c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
Thread 1 (Thread 0x7fcf06d80b80 (LWP 589) "gstd"):
#0 0x00007fcf09916d3b in __GI___poll (fds=fds@entry=0x564a33647e30, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
__arg2 = 2
_a3 = -1
_a1 = 94876689792560
resultvar = 18446744073709551100
__arg3 = -1
__arg1 = 94876689792560
_a2 = 2
sc_ret = <optimized out>
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007fcf09a783b1 in g_poll (fds=fds@entry=0x564a33647e30, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../glib/gpoll.c:125
No locals.
#2 0x00007fcf09a66592 in g_main_context_poll (context=context@entry=0x564a33647800, timeout=-1, priority=<optimized out>, fds=fds@entry=0x564a33647e30, n_fds=n_fds@entry=2) at ../glib/gmain.c:4478
ret = <optimized out>
errsv = <optimized out>
poll_func = 0x7fcf09a783a6 <g_poll>
#3 0x00007fcf09a698e7 in g_main_context_iterate (context=0x564a33647800, block=block@entry=1, dispatch=dispatch@entry=1, self=self@entry=0x564a3353e800) at ../glib/gmain.c:4170
max_priority = 2147483647
timeout = -1
some_ready = <optimized out>
nfds = 2
allocated_nfds = 2
fds = 0x564a33647e30
begin_time_nsec = 0
#4 0x00007fcf09a69cd1 in g_main_loop_run (loop=loop@entry=0x564a33647cd0) at ../glib/gmain.c:4373
self = 0x564a3353e800
__func__ = "g_main_loop_run"
#5 0x0000564a31e9b095 in main (argc=<optimized out>, argv=<optimized out>) at ../gstd/gstd.c:184
main_loop = 0x564a33647cd0
version = 0
kill = 0
daemon = 0
quiet = 0
gstdlogfile = 0x0
gstlogfile = 0x0
pidfile = 0x0
error = 0x0
context = <optimized out>
ret = 0
current_filename = 0x0
filename = 0x0
parent = 0
gstd = 0x564a33537810
entries = {{long_name = 0x564a31e9c452 "version", short_name = 118 'v', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x7ffd460e3ba4, description = 0x564a31e9c358 "Print current gstd version and exit", arg_description = 0x0}, {long_name = 0x564a31e9c45a "kill", short_name = 107 'k', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x7ffd460e3ba8, description = 0x564a31e9c45f "Kill a running gstd, if any", arg_description = 0x0}, {long_name = 0x564a31e9c47b "quiet", short_name = 113 'q', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x7ffd460e3bb0, description = 0x564a31e9c380 "Don't print any startup message", arg_description = 0x0}, {long_name = 0x564a31e9c48f "daemon", short_name = 101 'e', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x7ffd460e3bac, description = 0x564a31e9c481 "Detach into a daemon", arg_description = 0x0}, {long_name = 0x564a31e9c496 "pid-path", short_name = 102 'f', flags = 0, arg = G_OPTION_ARG_FILENAME, arg_data = 0x7ffd460e3bc8, description = 0x564a31e9c3a0 "Create gstd.pid file into path", arg_description = 0x0}, {long_name = 0x564a31e9c49f "gstd-log-filename", short_name = 108 'l', flags = 0, arg = G_OPTION_ARG_FILENAME, arg_data = 0x7ffd460e3bb8, description = 0x564a31e9c4b1 "Create gstd.log file to path", arg_description = 0x0}, {long_name = 0x564a31e9c4ce "gst-log-filename", short_name = 100 'd', flags = 0, arg = G_OPTION_ARG_FILENAME, arg_data = 0x7ffd460e3bc0, description = 0x564a31e9c4df "Create gst.log file to path", arg_description = 0x0}, {long_name = 0x0, short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, arg_description = 0x0}}
__func__ = "main"
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1282[Build][Configure] orc always need clone repo2022-09-22T23:04:40ZBin-CI[Build][Configure] orc always need clone repoI check with build log find even `pkg-config` can query for the `orc-0.4`
it still need clone orc repo
so it will cause each round build gstreamer from clean source, it always download the repo of it
I modify this line: https://git...I check with build log find even `pkg-config` can query for the `orc-0.4`
it still need clone orc repo
so it will cause each round build gstreamer from clean source, it always download the repo of it
I modify this line: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/meson.build#L123
```
-orc_subproject = subproject('orc', required: get_option('orc'))
+if get_option('orc').enabled()
+ orc_subproject = dependency('orc-0.4', method : 'pkg-config')
+else
+ orc_subproject = subproject('orc', required: get_option('orc'))
+endif
```
to let meson detect `orc` from system without clone repo
Maybe someone can provide the better patch for fix this behavior, because I'm newbie for the mesonhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1281decodebin3: buffer was received after EOS2023-01-20T09:23:44ZJames Hilliarddecodebin3: buffer was received after EOS### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstream...### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstreamer.freedesktop.org/lists/ -->
#### Expected Behavior
a pad shouldn't receive any more buffers after it gets EOS
#### Observed Behavior
buffer was received after EOS
#### Setup
- **Operating System:** `Buildroot 2022.08-git`
- **Device:** Computer
- **GStreamer Version:** GStreamer 1.21.0(from latest git with [this](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2588) applied to fix EOS sequence bug)
- **Command line:** `PIPEWIRE_LOG_SYSTEMD=false PIPEWIRE_DEBUG=6 GST_DEBUG="9" GST_PLUGIN_FEATURE_RANK=vaapijpegdec:PRIMARY,jpegdec:SECONDARY XDG_RUNTIME_DIR=/run/user/root gst-validate-1.0 pipewiresrc path=40 target-object=41 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! vaapidecodebin ! videoconvert ! fakevideosink num-buffers=10` for [eoserror.txt](/uploads/6213efa96c1bb3517c6d5bf869b72477/eoserror.txt) and [eosout.txt](/uploads/2418620832a54e98452609a7655d9f2b/eosout.txt).
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
1. open terminal
2. type `gst-validate-1.0 pipewiresrc path=40 target-object=41 ! decodebin3 ! videoconvert ! fakevideosink num-buffers=10`
### How reproducible is the bug?
<!-- The reproducibility of the bug is Always/Intermittent/Only once after doing a very specific set of steps-->
Always
### Solutions you have tried
Bug seems to be `decodebin3` specific as otherwise identical pipelines don't appear to have this issue when using `vaapidecodebin` instead.
Does not have error:
```
GST_PLUGIN_FEATURE_RANK=vaapijpegdec:PRIMARY,jpegdec:SECONDARY XDG_RUNTIME_DIR=/run/user/root gst-validate-1.0 pipewiresrc path=40 target-object=41 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! vaapidecodebin ! videoconvert ! fakevideosink num-buffers=100
```
Has error:
```
GST_PLUGIN_FEATURE_RANK=vaapijpegdec:PRIMARY,jpegdec:SECONDARY XDG_RUNTIME_DIR=/run/user/root gst-validate-1.0 pipewiresrc path=40 target-object=41 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! decodebin3 ! videoconvert ! fakevideosink num-buffers=100
```
### Additional Information
<!-- Any other information such as logs. Make use of <details> for long output -->
```
warning : We got a WARNING message on the bus
Detected on <pipeline0>
issue : buffer was received after EOS
Detected on <multiqueue0:src_0, vaapidecode_jpeg0:sink>
Description : a pad shouldn't receive any more buffers after it gets EOS
Issues found: 2
=======> Test PASSED (Return value: 0)
```
[eoserror.txt](/uploads/6213efa96c1bb3517c6d5bf869b72477/eoserror.txt)
[eosout.txt](/uploads/2418620832a54e98452609a7655d9f2b/eosout.txt)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1280video-format: Rename P010_10{LE,BE} to P010{LE,BE}2022-06-15T00:09:48ZSeungha Yangseungha@centricular.comvideo-format: Rename P010_10{LE,BE} to P010{LE,BE}`P010` is an industry standard format and the format name is pretty much self-explanatory.
I believe `P010_10LE` naming makes it a bit exotic and also it is unnecessarily duplicating the same meaning into its format name. (I haven't se...`P010` is an industry standard format and the format name is pretty much self-explanatory.
I believe `P010_10LE` naming makes it a bit exotic and also it is unnecessarily duplicating the same meaning into its format name. (I haven't seen such naming outside of gstreamer)