GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2023-04-04T16:12:58Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2444cuda context problems after gstreamer update to 1.222023-04-04T16:12:58ZArthur Khairullincuda context problems after gstreamer update to 1.22I have a project working with Cuda to run neural networks. Also i use gstreamer pipelines using nvh264dec block there. My working environment was - cuda11.4 based docker image with gstreamer 1.20.0 + plugins installed there.
Now i'm try...I have a project working with Cuda to run neural networks. Also i use gstreamer pipelines using nvh264dec block there. My working environment was - cuda11.4 based docker image with gstreamer 1.20.0 + plugins installed there.
Now i'm trying to migrate to gstreamer 1.22.0. But first of my detection modules fails with CUDA_INVALID_CONTEXT error. Others start successfully. I see that nvinfer1::ICudaEngine object of the first module returns nullptr from createExecutionContext call.
As i said in gstreamer 1.20.0 i have never had any problem.
I noticed that command 'gst-launch-1.0 filesrc location=10.200.41.198.mp4 ! qtdemux ! h264parse ! nvh264dec ! queue ! "video/x-raw" ! fakesink'
returns 'Got context from element 'nvh264dec0': gst.cuda.context=context, gst.cuda.context=(GstCudaContext)"\(GstCudaContext\)\ cudacontext1", cuda-device-id=(uint)0;' on gstreamer 1.22.0 (context1 !)
while
'Got context from element 'nvh264dec0': gst.cuda.context=context, gst.cuda.context=(GstCudaContext)"\(GstCudaContext\)\ cudacontext0", cuda-device-id=(int)0;' on gstreame 1.20.0 (context0 !)
I don't know if that is important or not - it's just an observation.
Could anyone help me with that problem? Any help will be appreciated. Thanks in advance.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2442GstInfo: Gst._debug_remove_log_function not working for user generated log fu...2023-04-03T12:26:47ZJuan Manuel ConsoliGstInfo: Gst._debug_remove_log_function not working for user generated log functions Python### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstream...### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstreamer.freedesktop.org/lists/ -->
When trying to remove a user log function using the Python bindings, I always get 0 as a result of Gst.debug_remove_log_function()
Test code
```
import gi
gi.require_version("GLib", "2.0")
gi.require_version("GObject", "2.0")
gi.require_version("Gst", "1.0")
from gi.repository import Gst, GLib
Gst.init(None)
def custom_log_function(category, level, file, function, line, obj, message, user_data: LogFile):
Some Code
Gst.debug_remove_log_function(None)
#Outputs 1 as expected (removing default log function)
Gst.debug_add_log_function(custom_log_function, None)
Gst.debug_remove_log_function(custom_log_function)
#Outputs 0, (custom_log_function doesn't get removed)
```
#### Expected Behavior
<!-- What did you expect to happen -->
Gst.debug_remove_log_function(custom_log_function) should return 1
#### Observed Behavior
<!-- What actually happened -->
Gst.debug_remove_log_function(custom_log_function) returns 0
#### Setup
- **Operating System:** Ubuntu 22.04
- **Device:** Computer <!-- Delete as appropriate !-->
- **GStreamer Version:** 1.0
- **Command line:**
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
1. register a custom log function with Gst.debug_add_log_function(custom_log_function, None)
2. remove it with Gst.debug_remove_log_function(custom_log_function)
### How reproducible is the bug?
<!-- The reproducibility of the bug is Always/Intermittent/Only once after doing a very specific set of steps-->
Always
### Additional Information
<!-- Any other information such as logs. Make use of <details> for long output -->
I also tried removing it with user_data and it had the same effecthttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2441vah264dec: vah264enc: support VAProfileH264High102023-04-03T05:30:31ZVíctor Manuel Jáquez Lealvah264dec: vah264enc: support VAProfileH264High10https://github.com/intel/libva/pull/664https://github.com/intel/libva/pull/664https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2439openh264dec: Potential memory corruption when writing output buffers2023-04-20T21:27:39ZPhilippe Normandopenh264dec: Potential memory corruption when writing output buffersThis comes from @mcatanzaro, when browsing with Epiphany TP on wunderground.com
I wasn't able to reproduce it yet with `gst-play-1.0`, so the issue is not confirmed to be a bug in GStreamer, but while reading the backtrace, thread 41 in...This comes from @mcatanzaro, when browsing with Epiphany TP on wunderground.com
I wasn't able to reproduce it yet with `gst-play-1.0`, so the issue is not confirmed to be a bug in GStreamer, but while reading the backtrace, thread 41 in particular led me to read the code of `gst_openh264dec_handle_frame()`, specially towards the end when writing the frame output buffer.
We allocate the output frame and then map it to write the YUV data. The doc of `gst_video_decoder_allocate_output_frame()` specifies the output buffer "is owned by the frame and you should only keep references to the frame, not the buffer" but IIUC we do ref the buffer when mapping it with `gst_video_frame_map()`. Shouldn't we use the `GST_VIDEO_FRAME_MAP_FLAG_NO_REF` when mapping the video-frame?
Also, when un-maping, we unmap the codec state and then the frame. Shouldn't this order be reversed?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2438vtdec: support P010_10LE output2023-03-31T15:57:14Zbkarasmvtdec: support P010_10LE outputI'm trying to add 10-bit output in the applemedia/vtdec element for H265 decoding. I identified that pixel format `kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange` corresponds to `GST_VIDEO_FORMAT_P010_10LE` so I added necessary convers...I'm trying to add 10-bit output in the applemedia/vtdec element for H265 decoding. I identified that pixel format `kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange` corresponds to `GST_VIDEO_FORMAT_P010_10LE` so I added necessary conversions and everything works fine as long as I don't use `GLMemory`.
However, when I use GLMemory and pass decoded pictures to `glimagesink` the video gets corrupted on the conversion to `RGBA` in `glcolorconvert` element and all I can see is green rectangle that fills entire display window. Here is the pipeline that I use:
`gst-launch-1.0 filesrc location=file.h265 ! h265parse ! vtdec ! "video/x-raw(memory:GLMemory),format=(string)P010_10LE" ! glimagesink`
Interestingly, if I dump vtdec output to file (see pipeline below) and open it with a raw YUV video player the video looks ok.
`gst-launch-1.0 filesrc location=file.h265 ! h265parse ! vtdec ! "video/x-raw(memory:GLMemory),format=(string)P010_10LE" ! filesink location=file.raw`
I'd appreciate any suggestions what I might be missing.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2437Follow-up from "sdpdemux: Add support for RFC4570 SDP source filters"2023-03-30T13:37:19ZSeungha Yangseungha@centricular.comFollow-up from "sdpdemux: Add support for RFC4570 SDP source filters"The following discussion from !3485 should be addressed:
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3485#note_1666401): (+4 comments)
> If `retrieve-sender-address=true`...The following discussion from !3485 should be addressed:
- [ ] @slomo started a [discussion](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3485#note_1666401): (+4 comments)
> If `retrieve-sender-address=true`, you could implement negative filters around that. Not sure if there's a better wayhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2435windows 1809 msys issues2023-03-29T12:58:58ZJordan Petridіswindows 1809 msys issuesWe recently switched to a 1809 windows runner over the 1607 and rebuilt the containers. Looks like the behavior of the msys2 job regressed heavily with it. I'd say a first good step would be to update the msys binary we are using and see...We recently switched to a 1809 windows runner over the 1607 and rebuilt the containers. Looks like the behavior of the msys2 job regressed heavily with it. I'd say a first good step would be to update the msys binary we are using and see what issues still persist.
Main issues:
- [ ] Msys2 job doesn't utilize all the cores of the runner, dragging over the time needed to complete the build
- [ ] Meson configure phase takes multiple minutes now, ~10min is the usual time
- [ ] Msys packages install had to be moved out of the docker image cause for some reason `docker build` would hang endlessly then
Bonus points:
- [x] Try installing msys (and rest of things) with `choco` in the docker imagehttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2434CI should not rely on reported number of CPUs and limit jobs to 42023-12-11T06:39:50ZNicolas DufresneCI should not rely on reported number of CPUs and limit jobs to 4As per IRC discussion today, it was assumed that everyone was aware that the current runner setup rely on everyone CI limiting the number of jobs run by ninja/make/your-custom-build-system to 4 jobs. Now, 4 jobs is likely going to be dis...As per IRC discussion today, it was assumed that everyone was aware that the current runner setup rely on everyone CI limiting the number of jobs run by ninja/make/your-custom-build-system to 4 jobs. Now, 4 jobs is likely going to be disastrous for us, and @daniels simply said that he's waiting for feedback on this regard. gitlab-runner does not have the required feature to fix the number of CPU reported in the container (afaic it's a limitation of docker).
Here's a list of items that needs configuration in our CI. This should slow down our pipeline, so we need to measure the effect, and if needed ask for more threads (GNome CI uses 8 iirc). For some cases, over-committing will make sense. The expected effect is that we should have less timeouts, specially the valgrind runs, which are exponentially slow on overloaded systems.
* [ ] Cerbero num_of_cpus
* [ ] Direct call to ninja https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5763
* [ ] Cargo incantation (cc @cassidy)
* [ ] x264enc, avec_h264 and so on usage (cc @thiblahute)
* [x] GstValidate concurrency (over-committing here may make sense) (Tests only run on htz runners, it's fine)
* [x] Fix HTZ runners configuration, balance number of jobs and configured cpus= (cc @alatiera)
* `FDO_CI_CONCURRENT=16` is online on all htz gst runners.
* [x] Anything needed on OSX side ? (seems to perform well, but cc @ystreet)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2433ci: Do no build as root inside docker2024-01-18T12:10:45ZXavier Claessensxclaesse@gmail.comci: Do no build as root inside dockerI'm not sure exactly what are the security implications of running untrusted root processes inside docker, quick googling seems to say it means you're basically root on the host...
Even outside of security considerations, better build a...I'm not sure exactly what are the security implications of running untrusted root processes inside docker, quick googling seems to say it means you're basically root on the host...
Even outside of security considerations, better build as non privileged user, to ensure we don't perform tasks that requires privilege. I see in glib Dockerfile it does this:
```
ARG HOST_USER_ID=5555
ENV HOST_USER_ID ${HOST_USER_ID}
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
USER user
WORKDIR /home/user
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2432ci: Consider using sccache instead of ccache2023-03-30T18:13:55ZGuillaume Desmottesci: Consider using sccache instead of ccacheWondering if it would sense to try using [sccache](https://github.com/mozilla/sccache) instead of `ccache`. We would gain Rust support which could speed things up.Wondering if it would sense to try using [sccache](https://github.com/mozilla/sccache) instead of `ccache`. We would gain Rust support which could speed things up.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2431Windows CI should run on a non-English language Windows2023-03-29T12:39:26ZNirbheek Chauhannirbheek.chauhan@gmail.comWindows CI should run on a non-English language WindowsThis way we can find and prevent issues such as https://gitlab.freedesktop.org/gstreamer/cerbero/merge_requests/322 more easily.This way we can find and prevent issues such as https://gitlab.freedesktop.org/gstreamer/cerbero/merge_requests/322 more easily.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2430Enable windows tests on the CI2023-03-29T12:37:39ZJordan PetridіsEnable windows tests on the CIThe following discussion from gst-ci!28 should be addressed:
- [ ] @xclaesse started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-ci/merge_requests/28#note_194282): (+2 comments)
> Well, we do have git-lfs now. Mayb...The following discussion from gst-ci!28 should be addressed:
- [ ] @xclaesse started a [discussion](https://gitlab.freedesktop.org/gstreamer/gst-ci/merge_requests/28#note_194282): (+2 comments)
> Well, we do have git-lfs now. Maybe we could build devtools with msvc at some point, I don't remember what was blocking that. Could be worth retrying?
Should be possible to do for msys2, for msvc there a couple extra complications when it comes to devtools deps that can't be compiler with just meson subprojects.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2429Need a bot for automatically adding labels to issues and merge requests (mr-l...2023-03-29T12:36:50ZNirbheek Chauhannirbheek.chauhan@gmail.comNeed a bot for automatically adding labels to issues and merge requests (mr-label-maker)## Todo
It's quite important that contributors get immediate feedback on trivial issues such as:
1. [x] Commit message formatting in a merge request -> https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3980
1. [x] ~~...## Todo
It's quite important that contributors get immediate feedback on trivial issues such as:
1. [x] Commit message formatting in a merge request -> https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3980
1. [x] ~~Filing a merge request without ticking the "allow maintainer edits" checkbox~~
1. [x] ~~Someone attaching a patch to an issue instead of filing a merge request~~ (not really super important imho, tpm)
1. [x] ~~Check that the CI timeout in the fork is correct (is this still needed with latest GitLab?)~~ Fixed by gst-ci!187
1. [ ] Automatically adding labels based on files touched (`Build`, `macOS/iOS`, `Windows`, `Android`, `1.16`, `1.14`, etc) -> https://gitlab.freedesktop.org/freedesktop/mr-label-maker/
And any other issues that can be easily and reliably detected. It reduces back-and-forth, reduces contribution friction and frustration, and generally speeds up merging of patches.Nirbheek Chauhannirbheek.chauhan@gmail.comNirbheek Chauhannirbheek.chauhan@gmail.comhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2427List of condition variables without a surrounding loop2023-04-16T15:46:30ZMichael Grünermichael.gruner@ridgerun.comList of condition variables without a surrounding loopAs per @slomo request, I'm opening an independent issue to track the condition variables used without a loop. You may find the original discussion in !4086 .
Here's a `clang-query` script that finds `g_cond_wait` ran without a loop:
**...As per @slomo request, I'm opening an independent issue to track the condition variables used without a loop. You may find the original discussion in !4086 .
Here's a `clang-query` script that finds `g_cond_wait` ran without a loop:
**matcher.txt**:
```
# while loop with his body
let m1 compoundStmt(hasDescendant(whileStmt()))
# call to g_cond_wait that is not in a while body
let m2 callExpr(callee(functionDecl(hasName("g_cond_wait"))),unless(hasParent(m1))).bind("cond_wait_without_loop")
m m2
```
Call in the GStreamer root (requires parallel, clang-query and jq):
```shell
parallel clang-query -f ../matcher.txt -- `jq -r '.[].file' compile_commands.json`
```
This throws 300+ instances, not counting `g_cond_wait_until`. Many of them are false positives as noted by @slomo and @ndufresne
Here's the list that the script above generates.
[g_cond_wait_without_loop.txt](/uploads/d32a431a57b63e8599f3bf237d442adb/g_cond_wait_without_loop.txt)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2426rtspsrc vs fallbacksrc2023-03-28T15:25:54ZSOLOR HANrtspsrc vs fallbacksrcHi,
We loved the idea of the fallbacksrc and very needed. But our pipeline working with rtspsrc but not working with fallbacksrc and there is no errors.
`function create_rtsp_sources() {
echo "Rtsp sources creating"
for ((n = 0; n < ...Hi,
We loved the idea of the fallbacksrc and very needed. But our pipeline working with rtspsrc but not working with fallbacksrc and there is no errors.
`function create_rtsp_sources() {
echo "Rtsp sources creating"
for ((n = 0; n < $num_of_src; n++)); do
src_name="SRC_${n}" src_name="${!src_name}"
rtsp_sources+="rtspsrc async-handling=true location=$src_name name=source_$n message-forward=true ! \
decodebin3 ! \ queue name=custom_preprocess_q_$n leaky=no max-size-buffers=32 max-size-bytes=0 max-size-time=0 ! \ $decode_scale_elements ! videoconvert n-threads=8 ! \
video/x-raw,pixel-aspect-ratio=1/1 ! \ fun.sink_$n sid.src_$n ! \
queue name=comp_q_$n leaky=downstream max-size-buffers=5 max-size-bytes=0 max-size-time=0 ! \
comp.sink_$n " #echo "$n -- $rtsp_sources \n\n" done } `
isnt the fallbacksrc is the same output of the rtspsrc ?
How we can replace the rtspsrc with fallbacksrc for above pipeline ?https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/334Fallbackswitch not work with glupload2023-04-05T15:28:46ZManuel SchärerFallbackswitch not work with gluploadI want to use the gstreamer plugin fallbacksrc on linux.
fallbacksrc (with ximagesink) -> OK
```
gst-launch-1.0 fallbacksrc \
uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm \
fallback-uri=...I want to use the gstreamer plugin fallbacksrc on linux.
fallbacksrc (with ximagesink) -> OK
```
gst-launch-1.0 fallbacksrc \
uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm \
fallback-uri=file:///path/to/some/jpg \
! videoconvert \
! ximagesink
```
It works as expected.
fallbacksrc (with glimagesink) -> NG
```
gst-launch-1.0 fallbacksrc \
uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm \
fallback-uri=file:///path/to/some/jpg \
! videoconvert \
! glimagesink
```
It does not work.
Error message:
```
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: Noformat', utils/fallbackswitch/src/fallbacksrc/imp.rs:1897:36
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
fatal runtime error: failed to initiate panic, error 1073887984
Aborted (core dumped)
```
===============================================
Another pipeline, that not work:
```
gst-launch-1.0 \
glvideomixer name=mix background=black ! nvvideoconvert interpolation-method=5 ! video/x-raw, format=NV12, width=1920, height=1080, framerate=25/1 ! nvoverlaysink overlay=0 sync=1 \
fallbacksrc uri=rtsp://admin:password@10.192.48.142 name=rtspsrc fallback-uri=file:///srv/images/camInterrupt.jpg immediate-fallback=1 min-latency=2000000000 timeout=2000000000 ! queue ! \
nvvideoconvert interpolation-method=5 ! \
queue2 ! switchInput.sink_0 \
input-selector name=switchInput ! glupload ! mix. \
multifilesrc location=/srv/fastData/overlay.svg caps=image/svg,width=1920,height=1080,framerate=1/1 ! rsvgdec ! video/x-raw,format=BGRA ! glupload ! mix.
```
But this work:
```
gst-launch-1.0 \
glvideomixer name=mix background=black ! nvvideoconvert interpolation-method=5 ! video/x-raw, format=NV12, width=1920, height=1080, framerate=25/1 ! nvoverlaysink overlay=0 sync=1 \
uridecodebin3 uri=rtsp://admin:password@10.192.48.142 name=rtspsrc ! queue ! \
nvvideoconvert interpolation-method=5 ! \
queue2 ! switchInput.sink_0 \
input-selector name=switchInput ! glupload ! mix. \
multifilesrc location=/srv/fastData/overlay.svg caps=image/svg,width=1920,height=1080,framerate=1/1 ! rsvgdec ! video/x-raw,format=BGRA ! glupload ! mix.
```
Thnks for your help.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2424oggmux not creating valid files for opus received via RTP (unless explicit ca...2023-03-28T13:23:44ZTristan Matthewsoggmux not creating valid files for opus received via RTP (unless explicit caps or opusparse is present)With git (using 49c9f31803ad9728b653c1ce75094adeb889221e):
```
gst-launch-1.0 -e -v audiotestsrc num-buffers=1000 ! opusenc ! rtpopuspay ! rtpopusdepay ! oggmux ! filesink location=testsrc.ogg
```
the resulting file is missing the `Opus...With git (using 49c9f31803ad9728b653c1ce75094adeb889221e):
```
gst-launch-1.0 -e -v audiotestsrc num-buffers=1000 ! opusenc ! rtpopuspay ! rtpopusdepay ! oggmux ! filesink location=testsrc.ogg
```
the resulting file is missing the `OpusHead` header etc. and can't be played:
```
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0.GstPad:src: caps = audio/x-raw, rate=(int)48000, channels=(int)1, format=(string)S16LE, layout=(string)interleaved
/GstPipeline:pipeline0/GstOpusEnc:opusenc0.GstPad:sink: caps = audio/x-raw, rate=(int)48000, channels=(int)1, format=(string)S16LE, layout=(string)interleaved
Redistribute latency...
/GstPipeline:pipeline0/GstOpusEnc:opusenc0.GstPad:src: caps = audio/x-opus, rate=(int)48000, channels=(int)1, channel-mapping-family=(int)0, stream-count=(int)1, coupled-count=(int)0, streamheader=(buffer)< 4f707573486561640101380180bb0000000000, 4f707573546167731e000000456e636f6465642077697468204753747265616d6572206f707573656e63010000001a0000004445534352495054494f4e3d617564696f74657374207761766501 >
/GstPipeline:pipeline0/GstRtpOPUSPay:rtpopuspay0.GstPad:src: caps = application/x-rtp, media=(string)audio, clock-rate=(int)48000, encoding-name=(string)OPUS, sprop-stereo=(string)0, encoding-params=(string)2, sprop-maxcapturerate=(string)48000, payload=(int)96, ssrc=(uint)4224652647, timestamp-offset=(uint)281281597, seqnum-offset=(uint)28254
/GstPipeline:pipeline0/GstRTPOpusDepay:rtpopusdepay0.GstPad:src: caps = audio/x-opus, channel-mapping-family=(int)0, channels=(int)1, rate=(int)48000
/GstPipeline:pipeline0/GstOggMux:oggmux0.GstPad:audio_889019218: caps = audio/x-opus, channel-mapping-family=(int)0, channels=(int)1, rate=(int)48000
/GstPipeline:pipeline0/GstRTPOpusDepay:rtpopusdepay0.GstPad:sink: caps = application/x-rtp, media=(string)audio, clock-rate=(int)48000, encoding-name=(string)OPUS, sprop-stereo=(string)0, encoding-params=(string)2, sprop-maxcapturerate=(string)48000, payload=(int)96, ssrc=(uint)4224652647, timestamp-offset=(uint)281281597, seqnum-offset=(uint)28254
/GstPipeline:pipeline0/GstRtpOPUSPay:rtpopuspay0.GstPad:sink: caps = audio/x-opus, rate=(int)48000, channels=(int)1, channel-mapping-family=(int)0, stream-count=(int)1, coupled-count=(int)0, streamheader=(buffer)< 4f707573486561640101380180bb0000000000, 4f707573546167731e000000456e636f6465642077697468204753747265616d6572206f707573656e63010000001a0000004445534352495054494f4e3d617564696f74657374207761766501 >
/GstPipeline:pipeline0/GstRtpOPUSPay:rtpopuspay0: timestamp = 281281597
/GstPipeline:pipeline0/GstRtpOPUSPay:rtpopuspay0: seqnum = 28254
0:00:00.026207252 2983687 0x562fc2a94800 ERROR oggmux gstoggmux.c:1063:gst_ogg_mux_queue_pads:<oggmux0:audio_889019218> mapper didn't recognise input stream (pad caps: audio/x-opus, channel-mapping-family=(int)0, channels=(int)1, rate=(int)48000)
/GstPipeline:pipeline0/GstOggMux:oggmux0.GstPad:src: caps = application/ogg, streamheader=(buffer)< 4f67675300020000000000000000525bfd3400000000d393351001fdf8b50e7d91cc0582757248c1edf330e4fc3244559a0eb22341bf71c0d7629492c7235296a7807c99b03cfbb4bbac96098d0a5a47ec34ed9fdbf0bf9486bb35e23f4209c156cb86395ba2c7992aaf8cbac090fa3cf6723caa903a901b2b75cf577e7b8c68b924943db538bcd4f57551503003800066a32ac441d1a8dec6c61a79d8784f38907dd8784e32d61f63b902884a55aed31e9b57c5aed3eb8fad2a11bb9d77bd8f28d2a6f7b3ff3e45ae9146b0f657518f9d03568f6a01bc2a02379b7d9e8efe99bad517386e3351abe963fdfab4fd8e3981e10623fca8fa68b9f0dc1859ffb4aa117aaa65b60d141ad643734b13d8ecbb7411297056d48f8f6d >
/GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = application/ogg, streamheader=(buffer)< 4f67675300020000000000000000525bfd3400000000d393351001fdf8b50e7d91cc0582757248c1edf330e4fc3244559a0eb22341bf71c0d7629492c7235296a7807c99b03cfbb4bbac96098d0a5a47ec34ed9fdbf0bf9486bb35e23f4209c156cb86395ba2c7992aaf8cbac090fa3cf6723caa903a901b2b75cf577e7b8c68b924943db538bcd4f57551503003800066a32ac441d1a8dec6c61a79d8784f38907dd8784e32d61f63b902884a55aed31e9b57c5aed3eb8fad2a11bb9d77bd8f28d2a6f7b3ff3e45ae9146b0f657518f9d03568f6a01bc2a02379b7d9e8efe99bad517386e3351abe963fdfab4fd8e3981e10623fca8fa68b9f0dc1859ffb4aa117aaa65b60d141ad643734b13d8ecbb7411297056d48f8f6d >
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
Redistribute latency...
New clock: GstSystemClock
Got EOS from element "pipeline0".
EOS received - stopping pipeline...
Execution ended after 0:00:00.126034469
Setting pipeline to NULL ...
Freeing pipeline ...
```
If I put an `opusparse` or explicit caps before the oggmux, the file is OK.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2421Segmentation fault in QtGLVideoItem::onSceneGraphInitialized (ext/qt/qtitem.c...2024-02-29T13:21:18ZVincas DargisSegmentation fault in QtGLVideoItem::onSceneGraphInitialized (ext/qt/qtitem.cc:695)I'm migrating from QtMultimedia to GstGLVideoItem. Using 1.22.1 on Debian 11 amd64.
I sometimes get this crash while, it seems, QML scene is being initialized?
```
#0 QtGLVideoItem::onSceneGraphInitialized (this=0x555ce25e29e0) at ../...I'm migrating from QtMultimedia to GstGLVideoItem. Using 1.22.1 on Debian 11 amd64.
I sometimes get this crash while, it seems, QML scene is being initialized?
```
#0 QtGLVideoItem::onSceneGraphInitialized (this=0x555ce25e29e0) at ../source_subfolder/ext/qt/qtitem.cc:695
#1 0x00007f2120d22ad9 in std::__invoke_impl<void, void (QtGLVideoItem::*&)(), QtGLVideoItem*&> (__f=@0x555ce24d3ec0: (void (QtGLVideoItem::*)(QtGLVideoItem * const)) 0x7f2120d20356 <QtGLVideoItem::onSceneGraphInitialized()>, __t=@0x555ce24d3ed0: 0x555ce25e29e0)
at /usr/include/c++/10/bits/invoke.h:73
#2 0x00007f2120d22a35 in std::__invoke<void (QtGLVideoItem::*&)(), QtGLVideoItem*&> (__fn=@0x555ce24d3ec0: (void (QtGLVideoItem::*)(QtGLVideoItem * const)) 0x7f2120d20356 <QtGLVideoItem::onSceneGraphInitialized()>) at /usr/include/c++/10/bits/invoke.h:95
#3 0x00007f2120d229be in std::_Bind<void (QtGLVideoItem::*(QtGLVideoItem*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x555ce24d3ec0, __args=...) at /usr/include/c++/10/functional:416
#4 0x00007f2120d22950 in std::_Bind<void (QtGLVideoItem::*(QtGLVideoItem*))()>::operator()<, void>() (this=0x555ce24d3ec0) at /usr/include/c++/10/functional:499
#5 0x00007f2120d2289c in std::__invoke_impl<void, std::_Bind<void (QtGLVideoItem::*(QtGLVideoItem*))()>&>(std::__invoke_other, std::_Bind<void (QtGLVideoItem::*(QtGLVideoItem*))()>&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#6 0x00007f2120d22709 in std::__invoke_r<void, std::_Bind<void (QtGLVideoItem::*(QtGLVideoItem*))()>&>(std::_Bind<void (QtGLVideoItem::*(QtGLVideoItem*))()>&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:153
#7 0x00007f2120d22485 in std::_Function_handler<void (), std::_Bind<void (QtGLVideoItem::*(QtGLVideoItem*))()> >::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/10/bits/std_function.h:291
#8 0x00007f2120d21eb0 in std::function<void ()>::operator()() const (this=0x555ce3720c80) at /usr/include/c++/10/bits/std_function.h:622
#9 0x00007f2120d21c26 in RenderJob::run (this=0x555ce3720c70) at ../source_subfolder/ext/qt/gstqtglutility.h:37
#10 0x00007f2128ce6871 in QQuickWindowPrivate::runAndClearJobs(QList<QRunnable*>*) () from /home/user/myapp/lib/libQt5Quick.so.5
#11 0x00007f2128ce762a in QQuickWindowPrivate::syncSceneGraph() () from /home/user/myapp/lib/libQt5Quick.so.5
#12 0x00007f2128c8c5f5 in QSGRenderThread::sync(bool, bool) () from /home/user/myapp/lib/libQt5Quick.so.5
#13 0x00007f2128c8ea31 in QSGRenderThread::syncAndRender(QImage*) () from /home/user/myapp/lib/libQt5Quick.so.5
#14 0x00007f2128c9238b in QSGRenderThread::run() () from /home/user/myapp/lib/libQt5Quick.so.5
#15 0x00007f212633545d in QThreadPrivate::start(void*) () from /home/user/myapp/lib/libQt5Core.so.5
#16 0x00007f2128268ea7 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#17 0x00007f2125e7ba2f in clone () from /lib/x86_64-linux-gnu/libc.so.6
```
It happens here:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/3ab8a0bc3ef642f01fe7152cf08bb06d21419677/subprojects/gst-plugins-good/ext/qt/qtitem.cc#L695
But if I raise GST_DEBUG level, I get crash earlier, on the attempt to log message:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/3ab8a0bc3ef642f01fe7152cf08bb06d21419677/subprojects/gst-plugins-good/ext/qt/qtitem.cc#L692
So I assume that it's bug because case when `this->window()->openglContext()` is null is not handled?
This reproduces easily in our complex QML application (it's SwipeView with Repeater and Loaders...) on "weaker" Celeron-based machine, and rarer on i7 one. So I guess it's sort of race condition?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2419Implement Z CAM Simple Streaming Protocol2023-03-27T18:07:37ZFilip HanesImplement Z CAM Simple Streaming ProtocolPlease implement Z CAM sspsrc
https://github.com/imaginevision/libssp
https://obsproject.com/forum/resources/z-cam-ssp-source.926/
thanksPlease implement Z CAM sspsrc
https://github.com/imaginevision/libssp
https://obsproject.com/forum/resources/z-cam-ssp-source.926/
thankshttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2418Gstplay-1.0 in GStreamer 2[0,2] broke play after comandline commands2023-03-27T13:08:53ZPeter LemurGstplay-1.0 in GStreamer 2[0,2] broke play after comandline commandsWhen running a video in terminal via gst-play I sometimes jump into the video or speed up and slow down the video via +- / d or jump. It randomly happens that the video pauses without me pressing the space bar. I can't start the video, I...When running a video in terminal via gst-play I sometimes jump into the video or speed up and slow down the video via +- / d or jump. It randomly happens that the video pauses without me pressing the space bar. I can't start the video, I have to quit gstplay and start it again. Sometimes the sound stops playing and sometimes it doesn't. It happens to me both in ubutn 22, where gstreamer is in 20, and in opensusue tubleeweed, where version 22. The problem occurs both when playing video on the local ssd and via http.
I can reliably break a shift in cmd utility sequence like 5x right 4x left 2x+ 1x- video playback. it is therefore necessary to repeat them several times, but it always happens sometimes, i.e. after 10 such sequences, and voices below sometimes appear in the debug.
GST_DEBUG=3 gst-play-1.0 localfile or http://link
0:00:26.193876774 12751 0x7fc5a800bae0 WARN pulse pulsesink.c:704:gst_pulsering_stream_underflow_cb:<pulsesink0> Got underflow
or
0:00:06.698874883 12639 0x7f272c2e14c0 WARN videodecoder gstvideodecoder.c:3668:gst_video_decoder_clip_and_push_buf:<avdec_h264-0> Dropping frame due to QoS. start:0:13:16.440000000 deadline:0:06:16.028571428 earliest_time:1431057:44:20.722491100