GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2024-02-20T14:27:42Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2952va: Decoders fails to negotated in playbin22024-02-20T14:27:42ZNicolas Dufresneva: Decoders fails to negotated in playbin2One regression from adding DMABuf modifiers is that playbin2 results in not-negotiated. One thing about the dmabuf caps feature and modifiers is that it strictly require GstVideoMeta support. I've used this patch to verify this thought:
...One regression from adding DMABuf modifiers is that playbin2 results in not-negotiated. One thing about the dmabuf caps feature and modifiers is that it strictly require GstVideoMeta support. I've used this patch to verify this thought:
```diff
diff --git a/subprojects/gst-integration-testsuites/medias b/subprojects/gst-integration-testsuites/medias
index 121f890949..b4dd49b992 160000
--- a/subprojects/gst-integration-testsuites/medias
+++ b/subprojects/gst-integration-testsuites/medias
@@ -1 +1 @@
-Subproject commit 121f8909493df214564c3db7fbba1dcb9217348e
+Subproject commit b4dd49b992efde30a049f9813d08b539edbcaccd
diff --git a/subprojects/gst-plugins-bad/sys/va/gstvabasedec.c b/subprojects/gst-plugins-bad/sys/va/gstvabasedec.c
index ad1e4fd5f9..c2be43de40 100644
--- a/subprojects/gst-plugins-bad/sys/va/gstvabasedec.c
+++ b/subprojects/gst-plugins-bad/sys/va/gstvabasedec.c
@@ -619,6 +619,9 @@ gst_va_base_dec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
else
gst_query_add_allocation_pool (query, pool, size, min, max);
+ if (!has_videometa)
+ GST_WARNING("disable dmabuf");
+
base->copy_frames = (!has_videometa && gst_va_pool_requires_video_meta (pool)
&& gst_caps_is_raw (caps));
if (base->copy_frames) {
```
Looking at this decide_allocation, its incomplete since even copy frame cannot work with modifiers. So I think we should add a way to disable dmabuf whenever there is no VideoMeta support. This should fix the negotiation error and regain slow performance. At the moment, it seems like the decoder just blindly produce dmabuf. Pehaps something deeper, but this needs fixing for sure.
cc @vjaquez @He_JunyanNicolas DufresneNicolas Dufresnehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2951monoscope element fails caps re-negotiation with glimagesink2023-09-04T06:46:29ZJakub Adammonoscope element fails caps re-negotiation with glimagesink`gst-launch-1.0 audiotestsrc ! monoscope ! glimagesink` stops after playing one frame on not-negotiated error.
When debugging the problem I noticed that the initial caps negotiation completes successfully and the pipeline goes to PLAY...`gst-launch-1.0 audiotestsrc ! monoscope ! glimagesink` stops after playing one frame on not-negotiated error.
When debugging the problem I noticed that the initial caps negotiation completes successfully and the pipeline goes to PLAYING.
* `monoscope.src` and `gluploadelement.sink` settle on `video/x-raw, format=(string)BGRx, width=(int)256, height=(int)128, framerate=(fraction)25/1`
* From an allocation query, `monoscope` picks an instance of `GstGLBufferPool` for its buffer allocations
* When the first buffer generated by `monoscope` gets passed to `gst_gl_upload_perform_with_buffer()`, `gluploadelement` selects "GLMemory" upload method.
* The first buffer gets uploaded and displayed.
Later on in `gst_monoscope_chain()` `monoscope` decides to renegotiate the caps and calls `gst_monoscope_src_negotiate()`:
* caps query on the peer pad (`gluploadelement.sink`) now returns only a set of `video/x-raw(memory:GLMemory)` caps, based on previously selected "GLMemory" upload method.
* However, `monoscope` supports only system memory `video/x-raw` caps on its srcpad, so there's an empty intersection between the pads' caps and `monoscope` returns `GST_FLOW_NOT_NEGOTIATED`.
So there's a discrepancy between the supported caps `monoscope` advertises for its srcpad and the fact it's actually using `GstGLBufferPool` obtained from an allocation query. I'm not sure what would be the best way to fix this issue.
![pip.svg](/uploads/fcc5d1673fed85c103a137974612e320/pip.svg)https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/483How to set a special property in a plugin under strict type check2023-09-01T09:47:23Zway zhaoHow to set a special property in a plugin under strict type checkI am a rookie for gstreamer-rs and English is not my native language.
I got a problem as follow:
`
let src = gst::ElementFactory::make("videotestsrc").build().unwrap();
src.set_property("pattern", &0i32);
`
and I got a error: type 'Gst...I am a rookie for gstreamer-rs and English is not my native language.
I got a problem as follow:
`
let src = gst::ElementFactory::make("videotestsrc").build().unwrap();
src.set_property("pattern", &0i32);
`
and I got a error: type 'GstVideoTestSrc' can't be set from the given type (expected: 'GstVideoTestSrcPattern', got: 'gint')'
How to set a special property like above which has a special type like 'GstVideoTestSrcPattern'?
I read the document about 'videotestsrc' and the 'GstVideoTestSrcPattern' is a enum.
Is there any way to declare a GValue which can satisfy the strict type check ?
I would appreciate it if anyone could help me.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/416support av1 on cmafmux2023-09-04T14:23:10ZFlavio Ribeirosupport av1 on cmafmuxI'm creating this issue just to discuss the complexity of extending the cmafmux to accommodate for AV1 video from elements like
[rav1enc](https://gstreamer.freedesktop.org/documentation/rav1e/index.html?gi-language=c#rav1enc-page). I sh...I'm creating this issue just to discuss the complexity of extending the cmafmux to accommodate for AV1 video from elements like
[rav1enc](https://gstreamer.freedesktop.org/documentation/rav1e/index.html?gi-language=c#rav1enc-page). I should follow up here when I spend more time looking at the spec details and the [gpac/mp4box](https://github.com/gpac/gpac/wiki/rfav1) implementation.
reference: https://aomediacodec.github.io/av1-isobmff/https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/415Regression with webrtcsink and NVMM2023-09-09T10:10:27ZJan SchmidtRegression with webrtcsink and NVMMI discovered that an existing app on Jetson hardware stopped working after an update and traced it back to the `webrtcsink: Add support for pre encoded streams` commit in MR !1194. The discovery part of webrtcsink doesn't complete when t...I discovered that an existing app on Jetson hardware stopped working after an update and traced it back to the `webrtcsink: Add support for pre encoded streams` commit in MR !1194. The discovery part of webrtcsink doesn't complete when the input is NVMM memory, it seems.
The last thing webrtcsink prints is:
```
0:00:04.193471660 23532 0x7ed402d8f0 DEBUG webrtcsink imp.rs:2713:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}:<ws> Running discovery pipeline for input caps video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)I420 and output caps ANY with codec Codec { name: "VP8", caps: Caps(video/x-vp8(memory:SystemMemory)), stream_type: StreamType(VIDEO), payload_type: Some(96), decoding_info: Some(DecodingInfo { has_decoder: true, decoders: [ElementFactory { inner: TypedObjectRef { inner: 0x55b6767270, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b6772550, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b6772630, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67bd3b0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67b75d0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b6688960, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b66efae0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b66fc590, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b6688dc0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b680ea80, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b671a130, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b6779160, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b6785830, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67d5950, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67cfb60, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b670f170, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67b9380, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67e0cb0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67076b0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b66ec340, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67fe270, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67bfb40, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b66d7a30, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b66fda70, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b671d1a0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b66c9bd0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b6774d70, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67d5a30, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67d5bf0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b6755830, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67bd650, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67b90e0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67d7160, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67d7400, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b66ccb60, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b67794e0, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b66e4250, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b6714a60, type: GstElementFactory } }, ElementFactory { inner: TypedObjectRef { inner: 0x55b675b0b0, type: GstElementFactory } }] }), encoding_info: Some(EncodingInfo { encoder: ElementFactory { inner: TypedObjectRef { inner: 0x55b6767510, type: GstElementFactory } }, payloader: ElementFactory { inner: TypedObjectRef { inner: 0x55b6741600, type: GstElementFactory } }, output_filter: None }) }
0:00:09.054497326 23532 0x7ed402d8f0 DEBUG webrtcsink imp.rs:2719:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}:<ws> Running discovery pipeline
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2950elements_svthevcenc test failure2023-08-31T17:35:36ZApterykselements_svthevcenc test failureSystem: Guix System
Version: 1.22.2
Hello,
Using my trusty old Core 2 Duo desktop (Q6700 with 8 GiB of RAM), I encountered the following test failure:
```
Summary of Failures:
35/87 elements_svthevcenc FAIL 5.04...System: Guix System
Version: 1.22.2
Hello,
Using my trusty old Core 2 Duo desktop (Q6700 with 8 GiB of RAM), I encountered the following test failure:
```
Summary of Failures:
35/87 elements_svthevcenc FAIL 5.04s exit status 3
Ok: 84
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 2
Timeout: 0
```
Detailed output:
```
35/87 elements_svthevcenc FAIL 5.04s exit status 3
>>> GST_PLUGIN_LOADING_WHITELIST=gstreamer:gst-plugins-base:gst-plugins-good:gst-plugins-ugly:gst-libav:libnice:gst-plugins-bad@/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build GST_REGISTRY=/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/tests/check/elements_svthevcenc.registry GST_PLUGIN_SYSTEM_PATH_1_0=/gnu/store/dq13628r3p0w38lpg3lf4bn5jpan44nl-gst-plugins-good-1.22.2/lib/gstreamer-1.0 MALLOC_PERTURB_=125 GST_PLUGIN_SCANNER_1_0=/gnu/store/mz98ydpwa7hn5ky0q3g0xf66ps2ycfm2-gstreamer-1.22.2/libexec/gstreamer-1.0/gst-plugin-scanner GST_STATE_IGNORE_ELEMENTS='' CK_DEFAULT_TIMEOUT=600 GST_PLUGIN_PATH_1_0=/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build:/gnu/store/mz98ydpwa7hn5ky0q3g0xf66ps2ycfm2-gstreamer-1.22.2/lib/gstreamer-1.0:/gnu/store/wlai2f9pl1mwjcykx1gn48a4blr14n71-gst-plugins-base-1.22.2/lib/gstreamer-1.0 LD_LIBRARY_PATH=/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/gst-libs/gst/interfaces:/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/gst-libs/gst/basecamerabinsrc:/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/gst-libs/gst/uridownloader /tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/tests/check/elements_svthevcenc
――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――
Running suite(s): svthevcenc
SVT [version]: SVT-HEVC Encoder Lib v1.5.1
SVT [build] : GCC 11.3.0 64 bit
LIB Build date: Jan 1 1970 00:00:01
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 77
-------------------------------------------
SVT [config]: Main Profile Tier (auto) Level (auto)
SVT [config]: EncoderMode / Tune : 9 / 1
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo : 320 / 240 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure : 3 / 0 / 2
SVT [config]: BRC Mode / QP / LookaheadDistance / SceneChange : CQP / 25 / 40 / 1
SVT [config]: BitRateReduction / ImproveSharpness : 0 / 0
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV : 1 / 1 / 0 / 0
SVT [config]: De-blocking Filter / SAO Filter : 1 / 1
SVT [config]: HME / UseDefaultHME : 1 / 1
SVT [config]: MV Search Area Width / Height : 16 / 7
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit : 0 / 0 / 0 / 90
-------------------------------------------
SVT [version]: SVT-HEVC Encoder Lib v1.5.1
SVT [build] : GCC 11.3.0 64 bit
LIB Build date: Jan 1 1970 00:00:01
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 77
-------------------------------------------
SVT [config]: Main Profile Tier (auto) Level (auto)
SVT [config]: EncoderMode / Tune : 9 / 1
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo : 320 / 240 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure : 3 / 0 / 2
SVT [config]: BRC Mode / QP / LookaheadDistance / SceneChange : CQP / 25 / 40 / 1
SVT [config]: BitRateReduction / ImproveSharpness : 0 / 0
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV : 1 / 1 / 0 / 0
SVT [config]: De-blocking Filter / SAO Filter : 1 / 1
SVT [config]: HME / UseDefaultHME : 1 / 1
SVT [config]: MV Search Area Width / Height : 16 / 7
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit : 0 / 0 / 0 / 90
-------------------------------------------
SVT [version]: SVT-HEVC Encoder Lib v1.5.1
SVT [build] : GCC 11.3.0 64 bit
LIB Build date: Jan 1 1970 00:00:01
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 77
-------------------------------------------
SVT [config]: Main Profile Tier (auto) Level (auto)
SVT [config]: EncoderMode / Tune : 7 / 1
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo : 320 / 240 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure : 3 / 0 / 2
SVT [config]: BRC Mode / QP / LookaheadDistance / SceneChange : CQP / 25 / 40 / 1
SVT [config]: BitRateReduction / ImproveSharpness : 0 / 0
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV : 1 / 1 / 0 / 0
SVT [config]: De-blocking Filter / SAO Filter : 1 / 1
SVT [config]: HME / UseDefaultHME : 1 / 1
SVT [config]: MV Search Area Width / Height : 16 / 7
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit : 0 / 0 / 0 / 90
-------------------------------------------
SVT [WARNING] Elevated privileges required to run with real-time policies! Check Linux Best Known Configuration in User Guide to run application in real-time without elevated privileges!
SVT [version]: SVT-HEVC Encoder Lib v1.5.1
SVT [build] : GCC 11.3.0 64 bit
LIB Build date: Jan 1 1970 00:00:01
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 77
-------------------------------------------
SVT [config]: Main Profile Tier (auto) Level (auto)
SVT [config]: EncoderMode / Tune : 7 / 1
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo : 320 / 240 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure : 3 / 0 / 2
SVT [config]: BRC Mode / QP / LookaheadDistance / SceneChange : CQP / 25 / 40 / 1
SVT [config]: BitRateReduction / ImproveSharpness : 0 / 0
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV : 1 / 1 / 0 / 0
SVT [config]: De-blocking Filter / SAO Filter : 1 / 1
SVT [config]: HME / UseDefaultHME : 1 / 1
SVT [config]: MV Search Area Width / Height : 16 / 7
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit : 0 / 0 / 0 / 90
-------------------------------------------
25%: Checks: 4, Failures: 0, Errors: 3
../gst-plugins-bad-1.22.2/tests/check/elements/svthevcenc.c:23:E:general:test_encode_simple:0: (after this point) Received signal 4 (Illegal instruction)
../gst-plugins-bad-1.22.2/tests/check/elements/svthevcenc.c:105:E:general:test_reuse:0: (after this point) Received signal 4 (Illegal instruction)
../gst-plugins-bad-1.22.2/tests/check/elements/svthevcenc.c:213:E:general:test_reconfigure:0: (after this point) Received signal 4 (Illegal instruction)
Check suite svthevcenc ran in 4.370s (tests failed: 3)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
```
Attached is the complete build log.
[gst-plugins-bad-1.22.2.drv.gz](/uploads/16dc30ea26746813f77891fa314a6826/gst-plugins-bad-1.22.2.drv.gz)https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1783elements_svthevcenc test failure2023-08-31T13:39:35ZApterykselements_svthevcenc test failureSystem: Guix System
Version: 1.22.2
Hello,
Using my trusty old Core 2 Duo desktop (Q6700 with 8 GiB of RAM), I encountered the following test failure:
```
Summary of Failures:
35/87 elements_svthevcenc FAIL 5.04...System: Guix System
Version: 1.22.2
Hello,
Using my trusty old Core 2 Duo desktop (Q6700 with 8 GiB of RAM), I encountered the following test failure:
```
Summary of Failures:
35/87 elements_svthevcenc FAIL 5.04s exit status 3
Ok: 84
Expected Fail: 0
Fail: 1
Unexpected Pass: 0
Skipped: 2
Timeout: 0
```
Detailed output:
```
35/87 elements_svthevcenc FAIL 5.04s exit status 3
>>> GST_PLUGIN_LOADING_WHITELIST=gstreamer:gst-plugins-base:gst-plugins-good:gst-plugins-ugly:gst-libav:libnice:gst-plugins-bad@/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build GST_REGISTRY=/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/tests/check/elements_svthevcenc.registry GST_PLUGIN_SYSTEM_PATH_1_0=/gnu/store/dq13628r3p0w38lpg3lf4bn5jpan44nl-gst-plugins-good-1.22.2/lib/gstreamer-1.0 MALLOC_PERTURB_=125 GST_PLUGIN_SCANNER_1_0=/gnu/store/mz98ydpwa7hn5ky0q3g0xf66ps2ycfm2-gstreamer-1.22.2/libexec/gstreamer-1.0/gst-plugin-scanner GST_STATE_IGNORE_ELEMENTS='' CK_DEFAULT_TIMEOUT=600 GST_PLUGIN_PATH_1_0=/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build:/gnu/store/mz98ydpwa7hn5ky0q3g0xf66ps2ycfm2-gstreamer-1.22.2/lib/gstreamer-1.0:/gnu/store/wlai2f9pl1mwjcykx1gn48a4blr14n71-gst-plugins-base-1.22.2/lib/gstreamer-1.0 LD_LIBRARY_PATH=/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/gst-libs/gst/interfaces:/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/gst-libs/gst/basecamerabinsrc:/tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/gst-libs/gst/uridownloader /tmp/guix-build-gst-plugins-bad-1.22.2.drv-0/build/tests/check/elements_svthevcenc
――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――
Running suite(s): svthevcenc
SVT [version]: SVT-HEVC Encoder Lib v1.5.1
SVT [build] : GCC 11.3.0 64 bit
LIB Build date: Jan 1 1970 00:00:01
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 77
-------------------------------------------
SVT [config]: Main Profile Tier (auto) Level (auto)
SVT [config]: EncoderMode / Tune : 9 / 1
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo : 320 / 240 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure : 3 / 0 / 2
SVT [config]: BRC Mode / QP / LookaheadDistance / SceneChange : CQP / 25 / 40 / 1
SVT [config]: BitRateReduction / ImproveSharpness : 0 / 0
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV : 1 / 1 / 0 / 0
SVT [config]: De-blocking Filter / SAO Filter : 1 / 1
SVT [config]: HME / UseDefaultHME : 1 / 1
SVT [config]: MV Search Area Width / Height : 16 / 7
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit : 0 / 0 / 0 / 90
-------------------------------------------
SVT [version]: SVT-HEVC Encoder Lib v1.5.1
SVT [build] : GCC 11.3.0 64 bit
LIB Build date: Jan 1 1970 00:00:01
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 77
-------------------------------------------
SVT [config]: Main Profile Tier (auto) Level (auto)
SVT [config]: EncoderMode / Tune : 9 / 1
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo : 320 / 240 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure : 3 / 0 / 2
SVT [config]: BRC Mode / QP / LookaheadDistance / SceneChange : CQP / 25 / 40 / 1
SVT [config]: BitRateReduction / ImproveSharpness : 0 / 0
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV : 1 / 1 / 0 / 0
SVT [config]: De-blocking Filter / SAO Filter : 1 / 1
SVT [config]: HME / UseDefaultHME : 1 / 1
SVT [config]: MV Search Area Width / Height : 16 / 7
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit : 0 / 0 / 0 / 90
-------------------------------------------
SVT [version]: SVT-HEVC Encoder Lib v1.5.1
SVT [build] : GCC 11.3.0 64 bit
LIB Build date: Jan 1 1970 00:00:01
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 77
-------------------------------------------
SVT [config]: Main Profile Tier (auto) Level (auto)
SVT [config]: EncoderMode / Tune : 7 / 1
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo : 320 / 240 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure : 3 / 0 / 2
SVT [config]: BRC Mode / QP / LookaheadDistance / SceneChange : CQP / 25 / 40 / 1
SVT [config]: BitRateReduction / ImproveSharpness : 0 / 0
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV : 1 / 1 / 0 / 0
SVT [config]: De-blocking Filter / SAO Filter : 1 / 1
SVT [config]: HME / UseDefaultHME : 1 / 1
SVT [config]: MV Search Area Width / Height : 16 / 7
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit : 0 / 0 / 0 / 90
-------------------------------------------
SVT [WARNING] Elevated privileges required to run with real-time policies! Check Linux Best Known Configuration in User Guide to run application in real-time without elevated privileges!
SVT [version]: SVT-HEVC Encoder Lib v1.5.1
SVT [build] : GCC 11.3.0 64 bit
LIB Build date: Jan 1 1970 00:00:01
-------------------------------------------
Number of logical cores available: 4
Number of PPCS 77
-------------------------------------------
SVT [config]: Main Profile Tier (auto) Level (auto)
SVT [config]: EncoderMode / Tune : 7 / 1
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo : 320 / 240 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure : 3 / 0 / 2
SVT [config]: BRC Mode / QP / LookaheadDistance / SceneChange : CQP / 25 / 40 / 1
SVT [config]: BitRateReduction / ImproveSharpness : 0 / 0
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV : 1 / 1 / 0 / 0
SVT [config]: De-blocking Filter / SAO Filter : 1 / 1
SVT [config]: HME / UseDefaultHME : 1 / 1
SVT [config]: MV Search Area Width / Height : 16 / 7
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit : 0 / 0 / 0 / 90
-------------------------------------------
25%: Checks: 4, Failures: 0, Errors: 3
../gst-plugins-bad-1.22.2/tests/check/elements/svthevcenc.c:23:E:general:test_encode_simple:0: (after this point) Received signal 4 (Illegal instruction)
../gst-plugins-bad-1.22.2/tests/check/elements/svthevcenc.c:105:E:general:test_reuse:0: (after this point) Received signal 4 (Illegal instruction)
../gst-plugins-bad-1.22.2/tests/check/elements/svthevcenc.c:213:E:general:test_reconfigure:0: (after this point) Received signal 4 (Illegal instruction)
Check suite svthevcenc ran in 4.370s (tests failed: 3)
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
```
Attached is the complete build log.
[gst-plugins-bad-1.22.2.drv.gz](/uploads/6e57426d5ef863255399e49c21870872/gst-plugins-bad-1.22.2.drv.gz)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2949NVMM not working in pair with Tee2023-08-31T11:02:50ZMartin GerovNVMM not working in pair with Tee**Please provide complete information as applicable to your setup.**
**• Hardware Platform - Jetson**
**• DeepStream Version - 6.0**
**• JetPack Version - 32.4**
**• Issue Type - bug**
I've encountered a bug in the usage of `tee` elemen...**Please provide complete information as applicable to your setup.**
**• Hardware Platform - Jetson**
**• DeepStream Version - 6.0**
**• JetPack Version - 32.4**
**• Issue Type - bug**
I've encountered a bug in the usage of `tee` element with `NVMM` memory.
The issue arises if I drop frames from one branch of the tee, while processing buffers from the other branch. Subsequently, the other part of the queue sends a timeout signal to the GStreamer bus.
It's worth noting that when only one of the pipelines (either streaming or DeepStream) is active, everything functions correctly.
**Steps to Reproduce:**
1. Not working pipeline:
[neural-network-test_not_working.py](/uploads/2c0a0bd7f91c9f9639881c73085df58e/neural-network-test_not_working.py)
2. Working pipeline:
[neural-network-test_working.py](/uploads/4dc3088771943c49323bc9f44dfcc00a/neural-network-test_working.py)
3. Minimum requirement for replicating the behaviour:
[minimumn_example_not_working.py](/uploads/a4fa6dd53a4eb57c1ee4983aaa7c7a1f/minimumn_example_not_working.py)
After dropping a specific number of frames, the described timeout behaviour occurs, leading to the bug I have encountered.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/414whepsrc: not working at mediamtx or live7772024-01-18T05:49:10Zmetal A-wingwhepsrc: not working at mediamtx or live777I try [mediamtx](https://github.com/bluenviron/mediamtx) whep and [live777](https://github.com/binbat/live777) whep
* * *
I use `whepsrc` plugin don't receive http request
For example:
```bash
nc -l 3000
```
The `nc` server not rece...I try [mediamtx](https://github.com/bluenviron/mediamtx) whep and [live777](https://github.com/binbat/live777) whep
* * *
I use `whepsrc` plugin don't receive http request
For example:
```bash
nc -l 3000
```
The `nc` server not receive messages, but `whipsink` is working
```bash
gst-launch-1.0 whepsrc whep-endpoint="http://localhost:3000/whep/777" ! fakesink
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2948RGBA to NV12 convert using glcolorconvert issue, but works with videoconvert....2024-01-26T09:34:57ZChristian Curtis VengRGBA to NV12 convert using glcolorconvert issue, but works with videoconvert. Color range is limited ?### Describe your issue
I have a pipeline that does lots of stuff, and end up converting to NV12 then record video with X264enc. But somehow the color range of the recorded video is very limited. example Green pixel end ups RGB (255,0,0)...### Describe your issue
I have a pipeline that does lots of stuff, and end up converting to NV12 then record video with X264enc. But somehow the color range of the recorded video is very limited. example Green pixel end ups RGB (255,0,0) > (21x,0,0)
#### Expected Behavior
full range of colors +-1
#### Setup
Tested on ubuntu 22.04 (GStreamer 1.20.3) + my embedded device with yocto build Linux(GStreamer 1.20.6). Same problem
### Steps to reproduce the bug
Wrong pipeline
gst-launch-1.0 videotestsrc ! video/x-raw,width=800,height=800,format=BGRx,framerate=30/1 ! glupload ! glcolorconvert ! "video/x-raw(memory:GLMemory),format=RGBA,width=800,height=800,framerate=30/1" ! glcolorconvert ! "video/x-raw(memory:GLMemory),format=NV12,width=800,height=800,framerate=30/1" ! gldownload ! glimagesink
Working pipeline (moving colorconvert to CPU)
gst-launch-1.0 videotestsrc ! video/x-raw,width=800,height=800,format=BGRx,framerate=30/1 ! glupload ! glcolorconvert ! "video/x-raw(memory:GLMemory),format=RGBA,width=800,height=800,framerate=30/1" ! gldownload ! videoconvert ! "video/x-raw,format=NV12,width=800,height=800,framerate=30/1" ! glimagesink
### How reproducible is the bug?
100%
### Screenshots if relevant
![Screenshot_from_2023-08-30_09-18-44](/uploads/113c6f3671af0f4529e3ad660e5595ba/Screenshot_from_2023-08-30_09-18-44.png)
### Solutions you have tried
Move to CPU, but way to slow for my applicationhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/413gtk4paintablesink usage in Vala2023-08-30T12:46:06ZŁukasz Grabskigtk4paintablesink usage in ValaHi,
I'm having problems with using gtk4paintablesink with Vala, here is my example code:
```
var pipeline = new Gst.Pipeline("test");
var src = Gst.ElementFactory.make("videotestsrc", "src");
var sink = Gst.ElementFac...Hi,
I'm having problems with using gtk4paintablesink with Vala, here is my example code:
```
var pipeline = new Gst.Pipeline("test");
var src = Gst.ElementFactory.make("videotestsrc", "src");
var sink = Gst.ElementFactory.make("gtk4paintablesink", "sink");
pipeline.add_many(src, sink);
src.link(sink);
// Get the paintable from the sink
GLib.Value val = GLib.Value(typeof(Gdk.Paintable));
sink.get_property("paintable", ref val);
var paintable = val as Gdk.Paintable;
var image = new Gtk.Picture();
image.set_size_request(800, 600);
image.set_paintable (paintable);
pipeline.set_state(Gst.State.READY);
```
The problem I'm observing is that the Picture is completely black, nothing is displayed at all. When i remove set_paintable line the image is rendered white so something is happening but not much :/
I appreciate any kind of help here...
Many thanks in advance.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2947Error with qmlglsink plugin on MacOS against 1.222023-08-30T03:53:07ZChris DawsonError with qmlglsink plugin on MacOS against 1.22### Describe your issue
I'm trying to get the latest qmlglsink plugin working on on MacOS. I see this error message.
`qtsink gstqtsink.cc:359:gst_qt_sink_change_state:<glsink> error: Required property 'widget' not set`
It appears the...### Describe your issue
I'm trying to get the latest qmlglsink plugin working on on MacOS. I see this error message.
`qtsink gstqtsink.cc:359:gst_qt_sink_change_state:<glsink> error: Required property 'widget' not set`
It appears the widget property is not being set correctly either in `gst_qt_sink_init` or `gst_qt_sink_set_property` of gstqtsink.cc. I don't see this same issue with 1.18; it sets the property correctly.
This causes the entire process to abort with `GST_STATE_CHANGE_FAILURE` and means the pipeline is not started.
#### Expected Behavior
The pipeline will start correctly.
#### Observed Behavior
The pipeline fails to run.
#### Setup
- MacOS (intel/x86)
- Computer
- **GStreamer Version:** 1.22.5
### Steps to reproduce the bug
1. Download gstreamer source, checkout 1.22.5 tag.
2. Build the libgstqml.dylib (`meson setup -Dgst-plugins-good:qt=enabled build && cd build && ninja subprojects/gst-plugins-good/ext/qt/libgstqmlgl.dylib`)
2. Install MacOS binaries from https://gstreamer.freedesktop.org/download/. I used 1.22.5.
2. Add libgstqml.dylib to `/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/`
2. Make sure you can see libgstqml.dylib using `gst-inspect-1.0 qmlglsink`
3. Clone this project: https://github.com/patrickelectric/gstpipeline-qmlsink
4. Install Qt 5x using Qt Creator downloader
5. Set the path: `export PATH=~/Qt/5.14.2/clang_64/bin/:$PATH`
6. Verify qmake: `qmake --version` -> `QMake version 3.1\nUsing Qt version 5.14.2...`
7. Generate makefile with qmake: `PKG_CONFIG_PATH=/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/pkgconfig/:/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/pkgconfig/ qmake`
7. Edit the gst pipeline inside the main.qml to just use videotestsrc: `sed -e '34s/.*/description: "videotestsrc"/' -i '' qml/main.qml`. It should then read `description: "videotestsrc"` (and just start videotestsrc instead of use the complicated UDP based pipeline).
8. `make`
9. `macdeployqt ./play.app/ -qmldir=$HOME/Qt/5.14.2/clang_64/lib`
9. `GST_DEBUG=2 ./play.app/Contents/MacOS/play`
Running with GST_DEBUG=2 shows this warning.
`0:00:00.643647000 41543 0x7ff30f0e9400 WARN qtsink gstqtsink.cc:359:gst_qt_sink_change_state:<glsink> error: Required property 'widget' not set`
And, inside `gstqtsink.cc`, you can see this blocks starting the pipeline.
### How reproducible is the bug?
Always
### Screenshots if relevant
### Solutions you have tried
I tried adding `QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);` to line 16 in main.ccp as recommended in some other threads, but this had no effect.
Tried simplifying the pipeline using videotestsrc, no luck.
### Details
This is the full stack trace with GST_DEBUG=4
```
$ GST_DEBUG=4 ./play.app/Contents/MacOS/play
Using temporary folder: "/private/var/folders/7q/3ypj4th13gg85qy6bf3rdcdw0000gn/T"
0:00:00.000203000 41665 0x7f869a416e00 INFO GST_INIT gst.c:576:init_pre: Initializing GStreamer Core Library version 1.22.5
0:00:00.000233000 41665 0x7f869a416e00 INFO GST_INIT gst.c:577:init_pre: Using library installed in /Library/Frameworks/GStreamer.framework/Versions/1.0/lib
0:00:00.000256000 41665 0x7f869a416e00 INFO GST_INIT gst.c:597:init_pre: Darwin RooseveltPwnsU.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Jun 21 21:18:39 PDT 2022; root:xnu-6153.141.66~1/RELEASE_X86_64 x86_64
0:00:00.000560000 41665 0x7f869a416e00 INFO GST_INIT gstmessage.c:129:_priv_gst_message_initialize: init messages
0:00:00.000954000 41665 0x7f869a416e00 INFO GST_INIT gstcontext.c:86:_priv_gst_context_initialize: init contexts
0:00:00.001131000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:324:_priv_gst_plugin_initialize: registering 0 static plugins
0:00:00.001234000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:232:gst_plugin_register_static: registered static plugin "staticelements"
0:00:00.001245000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:234:gst_plugin_register_static: added static plugin "staticelements", result: 1
0:00:00.001454000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistry.c:1836:ensure_current_registry: reading registry cache: /Users/xrdawson/.cache/gstreamer-1.0/registry.x86_64.bin
0:00:00.016000000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistrybinary.c:683:priv_gst_registry_binary_read_cache: loaded /Users/xrdawson/.cache/gstreamer-1.0/registry.x86_64.bin in 0.014519 seconds
0:00:00.016062000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistry.c:1703:scan_and_update_registry: Validating plugins from registry cache: /Users/xrdawson/.cache/gstreamer-1.0/registry.x86_64.bin
0:00:00.024057000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistry.c:1795:scan_and_update_registry: Registry cache has not changed
0:00:00.024068000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistry.c:1871:ensure_current_registry: registry reading and updating done
0:00:00.024075000 41665 0x7f869a416e00 INFO GST_INIT gst.c:806:init_post: GLib runtime version: 2.74.4
0:00:00.024090000 41665 0x7f869a416e00 INFO GST_INIT gst.c:808:init_post: GLib headers version: 2.74.4
0:00:00.024094000 41665 0x7f869a416e00 INFO GST_INIT gst.c:809:init_post: initialized GStreamer successfully
Window does not contain a valid pointer.
0:00:00.521603000 41665 0x7f869a416e00 INFO GST_PIPELINE gstparse.c:345:gst_parse_launch_full: parsing pipeline description 'videotestsrc ! videoconvert ! video/x-raw, format=RGBA, framerate=30/1 ! queue ! glupload ! qmlglsink name=glsink sync=true'
0:00:00.526558000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstvideotestsrc.dylib" loaded
0:00:00.526775000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "videotestsrc"
0:00:00.526831000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseSrc@0x7f869aa2b8e0> adding pad 'src'
0:00:00.531632000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstvideoconvertscale.dylib" loaded
0:00:00.531838000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "videoconvert"
0:00:00.531864000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869b076d40> adding pad 'sink'
0:00:00.531877000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869b076d40> adding pad 'src'
0:00:00.537334000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstcoreelements.dylib" loaded
0:00:00.537393000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "queue"
0:00:00.537417000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstQueue@0x7f869aa361c0> adding pad 'sink'
0:00:00.537441000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstQueue@0x7f869aa361c0> adding pad 'src'
0:00:00.547213000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstopengl.dylib" loaded
0:00:00.547399000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "glupload"
0:00:00.547423000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869b080170> adding pad 'sink'
0:00:00.547436000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869b080170> adding pad 'src'
0:00:00.558949000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstqmlgl.dylib" loaded
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_insert: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_insert: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_insert: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
0:00:00.559294000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "qmlglsink"
0:00:00.559323000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseSink@0x7f869aa3e730> adding pad 'sink'
0:00:00.559382000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "pipeline"
0:00:00.559512000 41665 0x7f869a416e00 INFO GST_PIPELINE gst/parse/grammar.y:1002:gst_parse_perform_link: linking some pad of GstVideoTestSrc named videotestsrc0 to some pad of GstVideoConvert named videoconvert0 (0/0) with caps "(NULL)"
0:00:00.559543000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element videotestsrc0:(any) to element videoconvert0:(any)
0:00:00.559561000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1081:gst_pad_check_link: trying to link videotestsrc0:src and videoconvert0:sink
0:00:00.559611000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<videoconvert0:src> pad has no peer
0:00:00.559968000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: videotestsrc0 and videoconvert0 in same bin, no need for ghost pads
0:00:00.559994000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link videotestsrc0:src and videoconvert0:sink
0:00:00.560004000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<videoconvert0:src> pad has no peer
0:00:00.560267000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked videotestsrc0:src and videoconvert0:sink, successful
0:00:00.560284000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.560296000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<videotestsrc0:src> Received event on flushing pad. Discarding
0:00:00.560324000 41665 0x7f869a416e00 INFO GST_PIPELINE gst/parse/grammar.y:1002:gst_parse_perform_link: linking some pad of GstVideoConvert named videoconvert0 to some pad of GstQueue named queue0 (0/0) with caps "video/x-raw, format=(string)RGBA, framerate=(fraction)30/1"
0:00:00.560332000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "capsfilter"
0:00:00.560382000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869aa461d0> adding pad 'sink'
0:00:00.560397000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869aa461d0> adding pad 'src'
0:00:00.560410000 41665 0x7f869a416e00 INFO GST_STATES gstbin.c:2070:gst_bin_get_state_func:<pipeline0> getting state
0:00:00.560426000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<capsfilter0> completed state change to NULL
0:00:00.560439000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.560452000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element videoconvert0:(any) to element capsfilter0:sink
0:00:00.560459000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:1017:gst_element_get_static_pad: found pad capsfilter0:sink
0:00:00.560465000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: videoconvert0 and capsfilter0 in same bin, no need for ghost pads
0:00:00.560474000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link videoconvert0:src and capsfilter0:sink
0:00:00.560682000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<capsfilter0:src> pad has no peer
0:00:00.560710000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked videoconvert0:src and capsfilter0:sink, successful
0:00:00.560716000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.560721000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<videoconvert0:src> Received event on flushing pad. Discarding
0:00:00.560732000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element capsfilter0:src to element queue0:(any)
0:00:00.560740000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:1017:gst_element_get_static_pad: found pad capsfilter0:src
0:00:00.560747000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1081:gst_pad_check_link: trying to link capsfilter0:src and queue0:sink
0:00:00.560968000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<queue0:src> pad has no peer
0:00:00.560981000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: capsfilter0 and queue0 in same bin, no need for ghost pads
0:00:00.560990000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link capsfilter0:src and queue0:sink
0:00:00.561205000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<queue0:src> pad has no peer
0:00:00.561217000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked capsfilter0:src and queue0:sink, successful
0:00:00.561222000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.561227000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<capsfilter0:src> Received event on flushing pad. Discarding
0:00:00.561241000 41665 0x7f869a416e00 INFO GST_PIPELINE gst/parse/grammar.y:1002:gst_parse_perform_link: linking some pad of GstQueue named queue0 to some pad of GstGLUploadElement named gluploadelement0 (0/0) with caps "(NULL)"
0:00:00.561248000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element queue0:(any) to element gluploadelement0:(any)
0:00:00.561256000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1081:gst_pad_check_link: trying to link queue0:src and gluploadelement0:sink
0:00:00.561469000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<gluploadelement0:src> pad has no peer
0:00:00.561660000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: queue0 and gluploadelement0 in same bin, no need for ghost pads
0:00:00.561676000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link queue0:src and gluploadelement0:sink
0:00:00.561900000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<gluploadelement0:src> pad has no peer
0:00:00.562032000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked queue0:src and gluploadelement0:sink, successful
0:00:00.562039000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.562045000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<queue0:src> Received event on flushing pad. Discarding
0:00:00.562059000 41665 0x7f869a416e00 INFO GST_PIPELINE gst/parse/grammar.y:1002:gst_parse_perform_link: linking some pad of GstGLUploadElement named gluploadelement0 to some pad of play named glsink (0/0) with caps "(NULL)"
0:00:00.562067000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element gluploadelement0:(any) to element glsink:(any)
0:00:00.562074000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1081:gst_pad_check_link: trying to link gluploadelement0:src and glsink:sink
0:00:00.562360000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: gluploadelement0 and glsink in same bin, no need for ghost pads
0:00:00.562372000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link gluploadelement0:src and glsink:sink
0:00:00.562639000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked gluploadelement0:src and glsink:sink, successful
0:00:00.562647000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.562652000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<gluploadelement0:src> Received event on flushing pad. Discarding
0:00:00.562674000 41665 0x7f869a416e00 INFO GST_PARENTAGE gstbin.c:4386:gst_bin_get_by_name: [pipeline0]: looking up child element glsink
Running pipeline: "videotestsrc"
0:00:00.563492000 41665 0x7f869a416e00 INFO qtglutility gstqtglutility.cc:94:gst_qt_get_gl_display: QGuiApplication::instance()->platformName() cocoa
(process:41665): GLib-CRITICAL **: 09:41:32.112: g_datalist_id_set_data_full: assertion 'key_id > 0' failed
(play:41665): GLib-GObject-WARNING **: 09:41:32.112: g_object_set_is_valid_property: object class 'play' has no property named 'widget'
0:00:00.656633000 41665 0x7f869a416e00 INFO glcontext gstglcontext.c:1113:_create_context_info:<glwrappedcontext0> GL_VERSION: 2.1 INTEL-14.7.28
0:00:00.656653000 41665 0x7f869a416e00 INFO glcontext gstglcontext.c:1116:_create_context_info:<glwrappedcontext0> GL_SHADING_LANGUAGE_VERSION: 1.20
0:00:00.656660000 41665 0x7f869a416e00 INFO glcontext gstglcontext.c:1118:_create_context_info:<glwrappedcontext0> GL_VENDOR: Intel Inc.
0:00:00.656674000 41665 0x7f869a416e00 INFO glcontext gstglcontext.c:1120:_create_context_info:<glwrappedcontext0> GL_RENDERER: Intel HD Graphics 4000 OpenGL Engine
0:00:00.661555000 41665 0x7f869a416e00 INFO GST_STATES gstbin.c:2484:gst_bin_element_set_state:<glsink> current NULL pending VOID_PENDING, desired next READY
0:00:00.661570000 41665 0x7f869a416e00 WARN qtsink gstqtsink.cc:359:gst_qt_sink_change_state:<glsink> error: Required property 'widget' not set
0:00:00.661584000 41665 0x7f869a416e00 INFO GST_ERROR_SYSTEM gstelement.c:2282:gst_element_message_full_with_details:<glsink> posting message: Required property 'widget' not set
0:00:00.661641000 41665 0x7f869a416e00 INFO GST_ERROR_SYSTEM gstelement.c:2309:gst_element_message_full_with_details:<glsink> posted error message: Required property 'widget' not set
0:00:00.661647000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:3102:gst_element_change_state:<glsink> have FAILURE change_state return
0:00:00.661653000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2690:gst_element_abort_state:<glsink> aborting state from NULL to READY
0:00:00.661660000 41665 0x7f869a416e00 INFO GST_STATES gstbin.c:2955:gst_bin_change_state_func:<pipeline0> child 'glsink' failed to go to state 2(READY)
0:00:00.661687000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<glsink> completed state change to NULL
0:00:00.661696000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<gluploadelement0> completed state change to NULL
0:00:00.661703000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<queue0> completed state change to NULL
0:00:00.661709000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<capsfilter0> completed state change to NULL
0:00:00.661716000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<videoconvert0> completed state change to NULL
0:00:00.661725000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<videotestsrc0> completed state change to NULL
0:00:00.661733000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:3102:gst_element_change_state:<pipeline0> have FAILURE change_state return
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2946v4l2videodec: get incorrect Pixel Aspect Ratio2023-08-30T20:13:03ZZhipeng Daiv4l2videodec: get incorrect Pixel Aspect Ratio### 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/ -->
During the playback of the HLS content, content may be having multiple resolution mixed streams of different resolution, aspect ratios(WxR) and also different pixel aspect ratios. but it doesn't seem to update.
#### Expected Behavior
<!-- What did you expect to happen -->
update correct Pixel Aspect Ratio after when resolution changed.
#### Log
The pixel-aspect-ratio is always 1.
0:00:29.568966617 871 0xb4d20f28 DEBUG v4l2videodec gstv4l2videodec.c:750:gst_v4l2_update_caps:<v4l2mtkvpudec1> update caps: video/x-raw, format=(string)M21S, width=(int)640, height=(int)320, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, **pixel-aspect-ratio=(fraction)1363/1360**, colorimetry=(string)bt709, framerate=(fraction)24/1, display_width=(int)640, display_height=(int)272
0:00:31.571832540 871 0xb4d20f28 DEBUG v4l2videodec gstv4l2videodec.c:750:gst_v4l2_update_caps:<v4l2mtkvpudec1> update caps: video/x-raw, format=(string)M21S, width=(int)512, height=(int)256, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, **pixel-aspect-ratio=(fraction)1363/1360**, colorimetry=(string)bt709, framerate=(fraction)24/1, display_width=(int)512, display_height=(int)216https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2945gstv4l2object: why use V4L2_SEL_TGT_COMPOSE_DEFAULT2023-09-14T13:21:52Zlmx2023gstv4l2object: why use V4L2_SEL_TGT_COMPOSE_DEFAULTFile: gstreamer1.0-plugins-good/sys/v4l2/gstv4l2object.c
Function: gst_v4l2_object_acquire_format
when use VIDIOC_G_SELECTION ioctl, why use sel.target = V4L2_SEL_TGT_COMPOSE_DEFAULT
if it is for crop, can we use V4L2_SEL_TGT_CROP ?File: gstreamer1.0-plugins-good/sys/v4l2/gstv4l2object.c
Function: gst_v4l2_object_acquire_format
when use VIDIOC_G_SELECTION ioctl, why use sel.target = V4L2_SEL_TGT_COMPOSE_DEFAULT
if it is for crop, can we use V4L2_SEL_TGT_CROP ?https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/412gcc: nvenc pipeline: Got packet feedback without local-ts errors and low-qual...2023-09-18T11:57:14ZRobert Ayrapetyangcc: nvenc pipeline: Got packet feedback without local-ts errors and low-quality streamI'm running a following pipeline:
```
ximagesrc show-pointer=true use-damage=false \
! video/x-raw,framerate=60/1 \
! timeoverlay \
! cudaupload \
! cudaconvert \
! 'video/x-raw(memory:CU...I'm running a following pipeline:
```
ximagesrc show-pointer=true use-damage=false \
! video/x-raw,framerate=60/1 \
! timeoverlay \
! cudaupload \
! cudaconvert \
! 'video/x-raw(memory:CUDAMemory),format=I420,framerate=60/1' \
! queue \
! wrs. \
pulsesrc \
! queue \
! wrs. \
webrtcsink name=wrs enable-data-channel-navigation=true meta="meta,name=stream-gpu-nvidia1" congestion-control=gcc
```
Everything runs very smooth when accessing stream from the localhost. However, once I'm trying to access the stream from LAN, first few seconds everything goes nice, but then I'm getting a never-ending flow of these errors:
```
2023-08-29 03:20:30,874 DEBG 'webrtc-rs-streamer' stdout output:
0:00:13.264112766 46 0x7f4500005640 FIXME basesink gstbasesink.c:3395:gst_base_sink_default_event:<nicesink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
2023-08-29 03:20:30,925 DEBG 'webrtc-rs-streamer' stdout output:
0:00:13.314889456 46 0x7f44ec005f00 FIXME rtpgccbwe net/rtp/src/gcc/imp.rs:150:gstrsrtp::gcc::imp::Packet::from_structure: Got packet feedback without local-ts: ValueGetError { name: "local-ts", error: UnexpectedNone } - what does that mean?
0:00:13.314934560 46 0x7f44ec005f00 FIXME rtpgccbwe net/rtp/src/gcc/imp.rs:150:gstrsrtp::gcc::imp::Packet::from_structure: Got packet feedback without local-ts: ValueGetError { name: "local-ts", error: UnexpectedNone } - what does that mean?
0:00:13.314945850 46 0x7f44ec005f00 FIXME rtpgccbwe net/rtp/src/gcc/imp.rs:150:gstrsrtp::gcc::imp::Packet::from_structure: Got packet feedback without local-ts: ValueGetError { name: "local-ts", error: UnexpectedNone } - what does that mean?
```
After that video quality becomes really ugly:
![Screenshot](/uploads/916988504c8a4697ebe4cb4d7ca2fb7a/Screenshot.png)
What could be the reason? Thanks.https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/447Problem in all 1.22.x macOS Official binaries, but not in self-built (or ho...2023-09-25T12:59:43ZF. DuncanhProblem in all 1.22.x macOS Official binaries, but not in self-built (or homebrew) gstreamer 1.22.x or Official 1.20.x binaries(Maybe @nirbheek might have some idea about what is going on here)
There is a strange problem in the macOS binaries (Cerbero builds?) since 1.22.0 till 1.22.5
but not on 1.20.x, including 1.20.7: It affects both glimagesink and osxvide...(Maybe @nirbheek might have some idea about what is going on here)
There is a strange problem in the macOS binaries (Cerbero builds?) since 1.22.0 till 1.22.5
but not on 1.20.x, including 1.20.7: It affects both glimagesink and osxvideosink
rendering, and is absent when 1.22.x is built from source on macOS (M2, Ventura 13.5, and
also Intel Catalina, so not architecture dependent). It is also absent in homebrew binaries.
With the default glimagesink videosink, the working (self-built) and non-working (freedesktop.org)
binaries seem to behave identically until the moment that the openGL window should open:
In the self-built working case (built under MacPorts), one sees the "context" for the window being created: in the nonworking binaries,
this doesn't happen (Both examples are 1.22.5):
```
<snip> (working case, self-built on MacOS)
0:00:00.254149000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00;01;34m GST_EVENT gstevent.c:1687:gst_event_new_reconfigure:^[[00m creating reconfigure event
0:00:00.254152000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00;01;34m GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<h264parse1:src>^[[00m Received event on flushing pad. Discarding
0:00:00.254187000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00;01;31m GST_STATES gstelement.c:2817:gst_element_continue_state:<h264parse1>^[[00m completed state change to PAUSED
0:00:00.254191000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00;01;31m GST_STATES gstelement.c:2720:_priv_gst_element_state_changed:<h264parse1>^[[00m notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.254207000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00;01;31;44m GST_PADS gstpad.c:4367:gst_pad_peer_query:<'':decodepad0>^[[00m pad has no peer
0:00:00.254232000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00;32;43m typefind gsttypefindelement.c:184:gst_type_find_element_have_type:<typefind>^[[00m found caps video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, parsed=(boolean)true, probability=100
0:00:00.254243000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00;01;31;44m GST_PADS gstpad.c:4367:gst_pad_peer_query:<'':decodepad0>^[[00m pad has no peer
0:00:00.371566000 ^[[32m25435^[[00m 0x600001c389f0 ^[[36mINFO ^[[00m ^[[00m glcaopengllayer gstglcaopengllayer.m:168:-[GstGLCAOpenGLLayer copyCGLContextForPixelFormat:]:^[[00m attempting to create CGLContext for CAOpenGLLayer with share context 0x123091000
0:00:00.372056000 ^[[32m25435^[[00m 0x600001c389f0 ^[[36mINFO ^[[00m ^[[00m glcontext gstglcontext.c:1113:_create_context_info:<glwrappedcontext0>^[[00m GL_VERSION: 4.1 Metal - 83.1
0:00:00.372065000 ^[[32m25435^[[00m 0x600001c389f0 ^[[36mINFO ^[[00m ^[[00m glcontext gstglcontext.c:1116:_create_context_info:<glwrappedcontext0>^[[00m GL_SHADING_LANGUAGE_VERSION: 4.10
0:00:00.372070000 ^[[32m25435^[[00m 0x600001c389f0 ^[[36mINFO ^[[00m ^[[00m glcontext gstglcontext.c:1118:_create_context_info:<glwrappedcontext0>^[[00m GL_VENDOR: Apple
0:00:00.372074000 ^[[32m25435^[[00m 0x600001c389f0 ^[[36mINFO ^[[00m ^[[00m glcontext gstglcontext.c:1120:_create_context_info:<glwrappedcontext0>^[[00m GL_RENDERER: Apple M2 Pro
UxPlay 1.65: An Open-Source AirPlay mirroring and audio-streaming server.
Begin streaming to GStreamer video pipeline
0:00:08.011098000 ^[[32m25435^[[00m 0x60000312ae40 ^[[36mINFO ^[[00m ^[[00;01;34m GST_EVENT gstevent.c:999:gst_event_new_segment:^[[00m creating segment event time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=\
0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:08.011187000 ^[[32m25435^[[00m 0x60000312ae40 ^[[36mINFO ^[[00m ^[[00m basesrc gstbasesrc.c:3023:gst_base_src_loop:<video_source>^[[00m marking pending DISCONT
0:00:08.013278000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00m h264parse gsth264parse.c:2192:gst_h264_parse_update_src_caps:<h264parse0>^[[00m resolution changed 1440x1080
0:00:08.013569000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00m h264parse gsth264parse.c:2273:gst_h264_parse_update_src_caps:<h264parse0>^[[00m colorimetry has been changed from (NULL) to 1:3:5:1
0:00:08.013618000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00m baseparse gstbaseparse.c:4105:gst_base_parse_set_latency:<h264parse0>^[[00m min/max latency 0:00:00.000000000, 0:00:00.000000000
0:00:08.013716000 ^[[32m25435^[[00m 0x60000311d900 ^[[36mINFO ^[[00m ^[[00;01;34m GST_EVENT gstevent.c:918:gst_event_new_caps:^[[00m creating caps event video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)1440, height=(int)1080, framerate=(fraction)0/1, coded-picture-struc\
ture=(string)frame, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)1:3:5:1, parsed=(boolean)true, profile=(string)high, level=(string)4
0:00:08
```
With the "Official" (non-working) binaries:
```
<snip> broken case (binaries from gstreamer.freedesktop.org
0:00:00.127034000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00;01;34m GST_EVENT gstevent.c:1687:gst_event_new_reconfigure:^[[00m creating reconfigure event
0:00:00.127036000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00;01;34m GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<h264parse1:src>^[[00m Received event on flushing pad. Discarding
0:00:00.127100000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00;01;31m GST_STATES gstelement.c:2817:gst_element_continue_state:<h264parse1>^[[00m completed state change to PAUSED
0:00:00.127104000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00;01;31m GST_STATES gstelement.c:2720:_priv_gst_element_state_changed:<h264parse1>^[[00m notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.127130000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00;01;31;44m GST_PADS gstpad.c:4367:gst_pad_peer_query:<'':decodepad0>^[[00m pad has no peer
0:00:00.127152000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00;32;43m typefind gsttypefindelement.c:184:gst_type_find_element_have_type:<typefind>^[[00m found caps video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, parsed=(boolean)true, probability=100
0:00:00.127161000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00;01;31;44m GST_PADS gstpad.c:4367:gst_pad_peer_query:<'':decodepad0>^[[00m pad has no peer
UxPlay 1.65: An Open-Source AirPlay mirroring and audio-streaming server.
-0:00:17.628368000 ^[[31m25044^[[00m 0x13b84d360 ^[[36mINFO ^[[00m ^[[00;01;34m GST_EVENT gstevent.c:999:gst_event_new_segment:^[[00m creating segment event time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000\
, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:17.628525000 ^[[31m25044^[[00m 0x13b84d360 ^[[36mINFO ^[[00m ^[[00m basesrc gstbasesrc.c:3023:gst_base_src_loop:<video_source>^[[00m marking pending DISCONT
ID: 59764EA1CC3C48AD
Begin streaming to GStreamer video pipeline
0:00:17.630293000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00m h264parse gsth264parse.c:2192:gst_h264_parse_update_src_caps:<h264parse0>^[[00m resolution changed 1440x1080
0:00:17.630682000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00m h264parse gsth264parse.c:2273:gst_h264_parse_update_src_caps:<h264parse0>^[[00m colorimetry has been changed from (NULL) to 1:3:5:1
0:00:17.630732000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00m baseparse gstbaseparse.c:4105:gst_base_parse_set_latency:<h264parse0>^[[00m min/max latency 0:00:00.000000000, 0:00:00.000000000
0:00:17.630834000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00;01;34m GST_EVENT gstevent.c:918:gst_event_new_caps:^[[00m creating caps event video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)1440, height=(int)1080, framerate=(fraction)0/1, coded-picture-structure=(string)frame\
, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, colorimetry=(string)1:3:5:1, parsed=(boolean)true, profile=(string)high, level=(string)4
0:00:17.630986000 ^[[31m25044^[[00m 0x13b84d300 ^[[36mINFO ^[[00m ^[[00;01;31;44m GST_PADS gstpad.c:4367:gst_pad_peer_query:<'':decodepad0>^[[00m pad has no peer
```
There are no indications that anything is wrong, except that no window opens (here opening of the window is completely left up to GStreamer)
I have no idea how to troubleshoot this more: (the simple workaround is to advise users to use the 1.20.7 Official binaries).
Here are more extensive debug outputs:
[out-bad.txt](/uploads/0773610b37a94908ffee7c0a2c221247/out-bad.txt)
[out-good.txt](/uploads/c44c6c6a6651e1d7a5e56a8d06977e83/out-good.txt)https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/410livekitwebrtcsink: intermittent failure to publish after re-connecting to a room2023-10-16T17:09:30ZDan Burkertlivekitwebrtcsink: intermittent failure to publish after re-connecting to a roomOn MacOS M1 with GStreamer installed from the SDK (`/Library/Frameworks/GStreamer.framework/`), I'm seeing an intermittent behavior where re-connecting to a livekit room will succeed, but the connection will be in the 'Joined' state, and...On MacOS M1 with GStreamer installed from the SDK (`/Library/Frameworks/GStreamer.framework/`), I'm seeing an intermittent behavior where re-connecting to a livekit room will succeed, but the connection will be in the 'Joined' state, and not the 'Active' state, and no video track is published (I'm calling this the failed state below).
The pipeline I'm using for these tests is `autovideosrc ! videoconvert ! video/x-raw ! queue ! livekitwebrtcsink` (see properties in the first line of logs output below).
Since this is an intermittent problem it's hard to say anything with certainty, but here is what I've observed:
- Connecting to a new room usually or always succeeds
- Reconnecting to the same room succeeds with perhaps 50% probability
- Failures seem to be 'sticky' - once failures happen, it seems like most (but not all) attempts fail
- Failed connections close themselves after ~35s (you can see this in the logs below)
- Deleting the room with `$ livekit-cli delete-room --room <room>` causes the next connection attempt to usually (but not always) succeed
## Joined vs Active
This is based on watching the output of `livekit-cli list-participants --room <room>`. A successful connection will show
```
Using default project <project>
gstreamer (ACTIVE) tracks: 1
```
Whereas a failed case shows
```
Using default project <project>
gstreamer (JOINED) tracks: 0
```
## Success Case Logs
```
…/gst-plugins-rs on livekit-0.2 via 🐍 v3.9.6 via 🦀 v1.72.0 took 36s 11:44:11
$ GST_DEBUG=webrtcsink:6 GST_PLUGIN_PATH=$HOME/src/rust/gst-plugins-rs/target/release/ gst-launch-1.0 -e autovideosrc ! videoconvert ! video/x-raw ! queue ! livekitwebrtcsink video-caps='video/x-vp8' signaller::ws-url=wss://<project-id>.livekit.cloud signaller::api-key="<api-key>" signaller::secret-key="<secret-key>" signaller::room-name='<room-name>'
Setting pipeline to PAUSED ...
0:00:00.061110000 52084 0x13500d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1402:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::prepare:<livekitwebrtcsink0> preparing
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.210546000 52084 0x136021f00 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:3035:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::sink_event:<livekitwebrtcsink0:video_0> Received caps event Caps { seqnum: Seqnum(68), running-time-offset: 0, structure: Some(GstEventCaps { caps: (GstCaps) video/x-raw, width=(int)1920, height=(int)1080, format=(string)UYVY, framerate=(fraction)30/1 }), caps: Caps(video/x-raw(memory:SystemMemory) { width: (gint) 1920, height: (gint) 1080, format: (gchararray) "UYVY", framerate: (GstFraction) 30/1 }) }
Redistribute latency...
0:00:00.408493000 52084 0x13683e890 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2773:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}:<livekitwebrtcsink0> Running discovery pipeline for input caps video/x-raw, width=(int)1920, height=(int)1080, format=(string)UYVY, framerate=(fraction)30/1 and output caps ANY with codec Codec { name: "VP8", caps: Caps(video/x-vp8(memory:SystemMemory)), stream_type: StreamType(VIDEO), payload_type: Some(96), decoding_info: Some(DecodingInfo { has_decoder: true }), encoding_info: Some(EncodingInfo { encoder: ElementFactory { inner: TypedObjectRef { inner: 0x136037b30, type: GstElementFactory } }, payloader: ElementFactory { inner: TypedObjectRef { inner: 0x1360d8810, type: GstElementFactory } }, output_filter: None }) }
0:00:00.408501000 52084 0x13683e890 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2779:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}:<livekitwebrtcsink0> Running discovery pipeline
0:00:00.418854000 52084 0x13683e890 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:3518:<gstrswebrtc::webrtcsink::imp::BaseWebRTCSink as glib::subclass::object::ObjectImpl>::signals::SIGNALS::{{closure}}::{{closure}}:<livekitwebrtcsink0> applying default configuration on encoder Element { inner: TypedObjectRef { inner: 0x1361f81e0, type: GstVP8Enc } }
0:00:00.428804000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2876:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}: Discovery pipeline got caps Caps(application/x-rtp(memory:SystemMemory) { media: (gchararray) "video", clock-rate: (gint) 90000, encoding-name: (gchararray) "VP8", payload: (gint) 96, ssrc: (guint) 1334916620, timestamp-offset: (guint) 2250615053, seqnum-offset: (guint) 20837, a-framerate: (gchararray) "30", extmap-1: (gchararray) "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" })
0:00:00.428827000 52084 0x13683e890 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2892:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}:<livekitwebrtcsink0> Codec discovery pipeline for caps video/x-raw, width=(int)1920, height=(int)1080, format=(string)UYVY, framerate=(fraction)30/1 with codec Codec { name: "VP8", caps: Caps(video/x-vp8(memory:SystemMemory)), stream_type: StreamType(VIDEO), payload_type: Some(96), decoding_info: Some(DecodingInfo { has_decoder: true }), encoding_info: Some(EncodingInfo { encoder: ElementFactory { inner: TypedObjectRef { inner: 0x136037b30, type: GstElementFactory } }, payloader: ElementFactory { inner: TypedObjectRef { inner: 0x1360d8810, type: GstElementFactory } }, output_filter: None }) } succeeded: application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)VP8, payload=(int)96, extmap-1=(string)http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01;
0:00:00.736020000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1959:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session:<livekitwebrtcsink0> Adding session: unique for peer: unique
0:00:00.747451000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1357:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::request_webrtcbin_pad::{{closure}}:<livekitwebrtcsink0> Requesting WebRTC pad with caps application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)VP8, payload=(int)96, extmap-1=(string)http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01, ssrc=(uint)942818330
0:00:00.747954000 52084 0x13683e890 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1836:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::negotiate:<livekitwebrtcsink0> Negotiating for session unique
0:00:00.747973000 52084 0x13683e890 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1859:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::negotiate: Creating offer for session unique
0:00:00.748234000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.748255000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.789384000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.790755000 52084 0x1361f3860 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1862:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::negotiate::{{closure}}: Created offer for session unique
0:00:00.794298000 52084 0x1361f3860 LOG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2162:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<livekitwebrtcsink0> Ice gathering state in session unique (peer unique) changed: Gathering
0:00:00.836172000 52084 0x1361f3860 WARN webrtcsink net/webrtc/src/webrtcsink/imp.rs:2039:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}::{{closure}}: rtprtxsend doesn't have a `stuffing-kbps` property, stuffing disabled
0:00:00.836454000 52084 0x1361f3860 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2732:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::handle_sdp_answer::{{closure}}: received reply Ok(None)
0:00:00.836465000 52084 0x1361f3860 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:979:gstrswebrtc::webrtcsink::imp::Session::connect_input_stream:<livekitwebrtcsink0> Connecting input stream video_0 for consumer unique and media 0
0:00:00.836467000 52084 0x1361f3860 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1000:gstrswebrtc::webrtcsink::imp::Session::connect_input_stream:<livekitwebrtcsink0> Picking codec from local offer
0:00:00.839085000 52084 0x1361f3860 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:3518:<gstrswebrtc::webrtcsink::imp::BaseWebRTCSink as glib::subclass::object::ObjectImpl>::signals::SIGNALS::{{closure}}::{{closure}}:<livekitwebrtcsink0> applying default configuration on encoder Element { inner: TypedObjectRef { inner: 0x1358bc350, type: GstVP8Enc } }
0:00:00.839146000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.840346000 52084 0x1361f3860 LOG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2125:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<livekitwebrtcsink0> Ice connection state in session unique (peer unique) changed: Checking
0:00:00.840357000 52084 0x1361f3860 LOG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2091:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<livekitwebrtcsink0> Connection state in session unique (peer unique) changed: Connecting
0:00:00.849577000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.853598000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.983424000 52084 0x1361f3860 LOG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2125:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<livekitwebrtcsink0> Ice connection state in session unique (peer unique) changed: Connected
0:00:00.983659000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:01.007956000 52084 0x1361f3860 LOG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2091:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<livekitwebrtcsink0> Connection state in session unique (peer unique) changed: Connected
0:00:01.131851000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:01.131995000 52084 0x13683e890 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:02.869330000 52084 0x1361f3860 LOG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2162:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<livekitwebrtcsink0> Ice gathering state in session unique (peer unique) changed: Complete
0:00:02.919419000 52084 0x1361f3860 LOG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2125:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<livekitwebrtcsink0> Ice connection state in session unique (peer unique) changed: Completed
^Chandling interrupt.
Interrupt: Stopping pipeline ...
EOS on shutdown enabled -- Forcing EOS on the pipeline
Waiting for EOS...
Got EOS from element "pipeline0".
EOS received - stopping pipeline...
Execution ended after 0:01:14.018880000
Setting pipeline to NULL ...
0:01:14.179480000 52084 0x13500d1e0 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1417:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> unpreparing
0:01:14.179489000 52084 0x13500d1e0 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:854:gstrswebrtc::webrtcsink::imp::State::finalize_session: Ending session unique
0:01:14.179596000 52084 0x13500d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1441:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> Waiting for codec discoveries to finish
0:01:14.179601000 52084 0x13500d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1448:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> No codec discovery is running anymore
0:01:14.179605000 52084 0x13500d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1459:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> Ending sessions
0:01:14.179623000 52084 0x13500d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1463:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> All sessions have started finalizing
0:01:14.179625000 52084 0x13500d1e0 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1466:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> Stopping signaller
0:01:14.193091000 52084 0x124f894c0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:886:gstrswebrtc::webrtcsink::imp::State::finalize_session::{{closure}}: Session unique ended
0:01:14.198799000 52084 0x13500d1e0 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1468:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> Stopped signaller
0:01:14.198805000 52084 0x13500d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1479:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> All sessions are done finalizing
Freeing pipeline ...
```
## Failure Case Logs
```
…/gst-plugins-rs on livekit-0.2 via 🐍 v3.9.6 via 🦀 v1.72.0 took 1m14s 11:45:26
$ GST_DEBUG=webrtcsink:6 GST_PLUGIN_PATH=$HOME/src/rust/gst-plugins-rs/target/release/ gst-launch-1.0 -e autovideosrc ! videoconvert ! video/x-raw ! queue ! livekitwebrtcsink video-caps='video/x-vp8' signaller::ws-url=wss://<project-id>.livekit.cloud signaller::api-key="<api-key>" signaller::secret-key="<secret-key>" signaller::room-name='<room-name>'
Setting pipeline to PAUSED ...
0:00:00.061074000 52342 0x15280d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1402:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::prepare:<livekitwebrtcsink0> preparing
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.207893000 52342 0x15402c700 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:3035:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::sink_event:<livekitwebrtcsink0:video_0> Received caps event Caps { seqnum: Seqnum(68), running-time-offset: 0, structure: Some(GstEventCaps { caps: (GstCaps) video/x-raw, width=(int)1920, height=(int)1080, format=(string)UYVY, framerate=(fraction)30/1 }), caps: Caps(video/x-raw(memory:SystemMemory) { width: (gint) 1920, height: (gint) 1080, format: (gchararray) "UYVY", framerate: (GstFraction) 30/1 }) }
Redistribute latency...
0:00:00.410760000 52342 0x15273c490 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2773:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}:<livekitwebrtcsink0> Running discovery pipeline for input caps video/x-raw, width=(int)1920, height=(int)1080, format=(string)UYVY, framerate=(fraction)30/1 and output caps ANY with codec Codec { name: "VP8", caps: Caps(video/x-vp8(memory:SystemMemory)), stream_type: StreamType(VIDEO), payload_type: Some(96), decoding_info: Some(DecodingInfo { has_decoder: true }), encoding_info: Some(EncodingInfo { encoder: ElementFactory { inner: TypedObjectRef { inner: 0x154041b30, type: GstElementFactory } }, payloader: ElementFactory { inner: TypedObjectRef { inner: 0x1528b0810, type: GstElementFactory } }, output_filter: None }) }
0:00:00.410769000 52342 0x15273c490 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2779:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}:<livekitwebrtcsink0> Running discovery pipeline
0:00:00.421775000 52342 0x15273c490 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:3518:<gstrswebrtc::webrtcsink::imp::BaseWebRTCSink as glib::subclass::object::ObjectImpl>::signals::SIGNALS::{{closure}}::{{closure}}:<livekitwebrtcsink0> applying default configuration on encoder Element { inner: TypedObjectRef { inner: 0x1540f81e0, type: GstVP8Enc } }
0:00:00.431307000 52342 0x15273c490 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2876:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}: Discovery pipeline got caps Caps(application/x-rtp(memory:SystemMemory) { media: (gchararray) "video", clock-rate: (gint) 90000, encoding-name: (gchararray) "VP8", payload: (gint) 96, ssrc: (guint) 2302272663, timestamp-offset: (guint) 986476869, seqnum-offset: (guint) 2635, a-framerate: (gchararray) "30", extmap-1: (gchararray) "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" })
0:00:00.431333000 52342 0x15273c490 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2892:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::run_discovery_pipeline::{{closure}}:<livekitwebrtcsink0> Codec discovery pipeline for caps video/x-raw, width=(int)1920, height=(int)1080, format=(string)UYVY, framerate=(fraction)30/1 with codec Codec { name: "VP8", caps: Caps(video/x-vp8(memory:SystemMemory)), stream_type: StreamType(VIDEO), payload_type: Some(96), decoding_info: Some(DecodingInfo { has_decoder: true }), encoding_info: Some(EncodingInfo { encoder: ElementFactory { inner: TypedObjectRef { inner: 0x154041b30, type: GstElementFactory } }, payloader: ElementFactory { inner: TypedObjectRef { inner: 0x1528b0810, type: GstElementFactory } }, output_filter: None }) } succeeded: application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)VP8, payload=(int)96, extmap-1=(string)http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01;
0:00:00.582039000 52342 0x15273c490 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1959:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session:<livekitwebrtcsink0> Adding session: unique for peer: unique
0:00:00.587942000 52342 0x15273c490 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1357:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::request_webrtcbin_pad::{{closure}}:<livekitwebrtcsink0> Requesting WebRTC pad with caps application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)VP8, payload=(int)96, extmap-1=(string)http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01, ssrc=(uint)3869967529
0:00:00.588210000 52342 0x15273c490 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1836:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::negotiate:<livekitwebrtcsink0> Negotiating for session unique
0:00:00.588215000 52342 0x15273c490 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1859:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::negotiate: Creating offer for session unique
0:00:00.588403000 52342 0x15273c490 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.588423000 52342 0x15273c490 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.623328000 52342 0x15273c490 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.624647000 52342 0x154108860 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1862:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::negotiate::{{closure}}: Created offer for session unique
0:00:00.628268000 52342 0x154108860 LOG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2162:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<livekitwebrtcsink0> Ice gathering state in session unique (peer unique) changed: Gathering
0:00:00.666294000 52342 0x154108860 WARN webrtcsink net/webrtc/src/webrtcsink/imp.rs:2039:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}::{{closure}}: rtprtxsend doesn't have a `stuffing-kbps` property, stuffing disabled
0:00:00.666570000 52342 0x154108860 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2732:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::handle_sdp_answer::{{closure}}: received reply Ok(None)
0:00:00.666582000 52342 0x154108860 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:979:gstrswebrtc::webrtcsink::imp::Session::connect_input_stream:<livekitwebrtcsink0> Connecting input stream video_0 for consumer unique and media 0
0:00:00.666584000 52342 0x154108860 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1000:gstrswebrtc::webrtcsink::imp::Session::connect_input_stream:<livekitwebrtcsink0> Picking codec from local offer
0:00:00.666604000 52342 0x15273c490 WARN webrtcsink net/webrtc/src/webrtcsink/imp.rs:2649:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::handle_ice: No consumer with ID unique
0:00:00.666613000 52342 0x15273c490 WARN webrtcsink net/webrtc/src/webrtcsink/imp.rs:2649:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::handle_ice: No consumer with ID unique
0:00:00.669372000 52342 0x154108860 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:3518:<gstrswebrtc::webrtcsink::imp::BaseWebRTCSink as glib::subclass::object::ObjectImpl>::signals::SIGNALS::{{closure}}::{{closure}}:<livekitwebrtcsink0> applying default configuration on encoder Element { inner: TypedObjectRef { inner: 0x142820170, type: GstVP8Enc } }
0:00:00.669442000 52342 0x15273c490 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.682530000 52342 0x15273c490 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:00.686488000 52342 0x15273c490 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:2265:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<session-pipeline-unique> Recalculating latency
0:00:02.703384000 52342 0x154108860 LOG webrtcsink net/webrtc/src/webrtcsink/imp.rs:2162:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::start_session::{{closure}}:<livekitwebrtcsink0> Ice gathering state in session unique (peer unique) changed: Complete
ERROR: from element /GstPipeline:pipeline0/GstLiveKitWebRTCSink:livekitwebrtcsink0: GStreamer encountered a general stream error.
Additional debug info:
net/webrtc/src/webrtcsink/imp.rs(1492): gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::connect_signaller::{{closure}}::{{closure}} (): /GstPipeline:pipeline0/GstLiveKitWebRTCSink:livekitwebrtcsink0:
Signalling error: Error: Server disconnected
Execution ended after 0:00:35.575249000
Setting pipeline to NULL ...
0:00:35.732706000 52342 0x15280d1e0 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1417:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> unpreparing
0:00:35.732719000 52342 0x15280d1e0 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:854:gstrswebrtc::webrtcsink::imp::State::finalize_session: Ending session unique
0:00:35.732855000 52342 0x15280d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1441:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> Waiting for codec discoveries to finish
0:00:35.732869000 52342 0x15280d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1448:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> No codec discovery is running anymore
0:00:35.732875000 52342 0x15280d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1459:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> Ending sessions
0:00:35.733189000 52342 0x15280d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1463:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> All sessions have started finalizing
0:00:35.733195000 52342 0x15280d1e0 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1466:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> Stopping signaller
0:00:35.733228000 52342 0x15280d1e0 INFO webrtcsink net/webrtc/src/webrtcsink/imp.rs:1468:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> Stopped signaller
0:00:35.746529000 52342 0x1538d7720 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:886:gstrswebrtc::webrtcsink::imp::State::finalize_session::{{closure}}: Session unique ended
0:00:35.746550000 52342 0x15280d1e0 DEBUG webrtcsink net/webrtc/src/webrtcsink/imp.rs:1479:gstrswebrtc::webrtcsink::imp::BaseWebRTCSink::unprepare:<livekitwebrtcsink0> All sessions are done finalizing
Freeing pipeline ...
```
#### Setup
- **Operating System:**: macOS 13.4.1
- **Device:** Compute
- **gst-plugins-rs Version:** tested with 0.11, current `HEAD`, and branch `livekit-0.2`, all exhibited behavior
- **GStreamer Version:** 1.22.5
- **Command line:** See first line of logs above
### Steps to reproduce the bug
Other than the command above, I installed GStreamer via the project's published .dmg, then cloned the `gst-plugin-rs` repo and built the various tested versions with `cargo build --release -p gst-plugin-webrtc`, then pointed gstreamer to it via `GST_PLUGIN_PATH=$HOME/src/rust/gst-plugins-rs/target/release/` when running pipelines.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2944Failed to build with Qt6 Good plugin2024-03-12T12:47:58ZCole RichardsonFailed to build with Qt6 Good plugin### Describe your issue
I am trying to build with the Qt6 plugin enabled from here: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/main/subprojects/gst-plugins-good/ext/qt6.
The build finished successfully; however, the qt6 ...### Describe your issue
I am trying to build with the Qt6 plugin enabled from here: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/main/subprojects/gst-plugins-good/ext/qt6.
The build finished successfully; however, the qt6 plugin or headers weren't installed. Upon further investigation, it seems that the plugin wasn't compiled or recognized during the configuration stage.
Also, one followup question? Is the Qt6 extension supported on ARM macOS? As they are no longer supporting OpenGL?
#### Setup
- **Operating System:** Windows 11
- **Device:** Desktop Computer
- **GStreamer Version:** 1.24.0
- **Command line:**
```
meson setup --buildtype=debug --default-library=static -Dauto_features=disabled -Dgst-full-libraries=app,video -Dgst-full-plugins=coreelements;udp;rtp;playback;videoconvertscale;app -Dbase=enabled -Dgood=enabled -Dbad=enabled -Dgst-plugins-base:videoconvertscale=enabled -Dgst-plugins-base:app=enabled -Dgst-plugins-base:playback=enabled -Dgst-plugins-good:rtp=enabled -Dgst-plugins-good:udp=enabled -Dgst-plugins-good:qt6=enabled -Dgst-plugins-bad:qt6d3d11=enabled -Dintrospection=disabled -Dpython=disabled -Dlibav=disabled <build_dir>
```
```
ninja -C <build_dir> install
```https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/446build: Rust parallelism can drown low spec devices2023-10-30T13:54:35Zamysparkbuild: Rust parallelism can drown low spec devicesHey,
This is to record that currently, Rust-based builds do not have any sort of parallelism limit. This means, for instance, that when compiling `gst-plugins-rs` for `cross-ios-universal`, the last job will have at the very least 2x th...Hey,
This is to record that currently, Rust-based builds do not have any sort of parallelism limit. This means, for instance, that when compiling `gst-plugins-rs` for `cross-ios-universal`, the last job will have at the very least 2x the number of threads competing for CPU time.
When I tried this on my Macbook Retina early 2015 (Haswell, 8GB RAM, 4 threads), I had 2 * 4 * 2 jobs in RAM. This caused a total swapping of 1 TB until the build finished (would have probably been more had I not been able to `kill -STOP` the Rust jobs midway).
A possible fix would be to set `NUM_JOBS` to 1 in the environment of Cargo jobs, so that all downstream consumers won't exceed a single core.amysparkamysparkhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/409Thread 'tokio-runtime-worker' panicked at 'Signal 'request-aux-sender' of typ...2023-08-27T07:05:27ZBenjamin SamThread 'tokio-runtime-worker' panicked at 'Signal 'request-aux-sender' of type 'GstWebRTCBin' not found', /home/asus/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/8986eb9/glib/src/object.rs:2642:32Hi,
when we want to run the example from Gitlab page (https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/tree/main/net/webrtc) the WebRTCSink panicks and returns the following output.
```
Setting pipeline to PAUSED ...
Pipeline i...Hi,
when we want to run the example from Gitlab page (https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/tree/main/net/webrtc) the WebRTCSink panicks and returns the following output.
```
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
thread 'tokio-runtime-worker' panicked at 'Signal 'request-aux-sender' of type 'GstWebRTCBin' not found', /home/asus/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/8986eb9/glib/src/object.rs:2642:32
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: PoisonError { .. }', net/webrtc/src/webrtcsink/imp.rs:3066:47
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: PoisonError { .. }', net/webrtc/src/webrtcsink/imp.rs:3066:47
ERROR: from element /GstPipeline:pipeline0/GstWebRTCSink:ws: Panicked: called `Result::unwrap()` on an `Err` value: PoisonError { .. }
ERROR: from element /GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0:
streaming stopped, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstWebRTCSink:ws: Panicked
Execution ended after 0:01:35.389543252
Setting pipeline to NULL ...
ERROR: from element /GstPipeline:pipeline0/GstWebRTCSink:ws: Panicked
ERROR: from element /GstPipeline:pipeline0/GstWebRTCSink:ws: Panicked
ERROR: from element /GstPipeline:pipeline0/GstWebRTCSink:ws: Panicked: called `Result::unwrap()` on an `Err` value: PoisonError { .. }
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming stopped, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstWebRTCSink:ws: Panicked
Freeing pipeline ...
```
When I click on remote session button on web page, I get this error. I would appreciate it if you could check this problem.