GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2020-04-16T14:37:07Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1268kmssink: memory leak detected2020-04-16T14:37:07ZStéphane Cerveauscerveau@igalia.comkmssink: memory leak detectedThis leak appears with the given pipeline using a fpsdisplaysink
```
gst-launch-1.0 -v videotestsrc num-buffers=1 ! video/x-raw,format=NV12,width=320,height=240, framerate=60/1 ! fpsdisplaysink name=fpssink text-overlay=false video-sink=...This leak appears with the given pipeline using a fpsdisplaysink
```
gst-launch-1.0 -v videotestsrc num-buffers=1 ! video/x-raw,format=NV12,width=320,height=240, framerate=60/1 ! fpsdisplaysink name=fpssink text-overlay=false video-sink="kmssink bus-id="a0070000.v_mix
```
but not with:
```
gst-launch-1.0 -v videotestsrc num-buffers=1 ! video/x-raw,format=NV12,width=320,height=240, framerate=60/1 ! kmssink bus-id="a0070000.v_mix
```
```
==00:00:00:12.873 4785== 112 (72 direct, 40 indirect) bytes in 1 blocks are definitely lost in loss record 1,888 of 2,119
==00:00:00:12.873 4785== at 0x4857100: malloc (vg_replace_malloc.c:299)
==00:00:00:12.873 4785== by 0x48CCA0F: g_malloc (gmem.c:99)
==00:00:00:12.873 4785== by 0x48E5827: g_slice_alloc (gslice.c:1024)
==00:00:00:12.873 4785== by 0x4A732EB: gst_caps_new_empty (gstcaps.c:257)
==00:00:00:12.873 4785== by 0xC357EDB: ensure_allowed_caps (gstkmssink.c:521)
==00:00:00:12.873 4785== by 0xC357EDB: gst_kms_sink_start (gstkmssink.c:776)
==00:00:00:12.873 4785== by 0xBEFE10B: gst_base_sink_change_state (gstbasesink.c:5644)
==00:00:00:12.873 4785== by 0x4A8D9AF: gst_element_change_state (gstelement.c:3033)
==00:00:00:12.873 4785== by 0x4A8E033: gst_element_set_state_func (gstelement.c:2987)
==00:00:00:12.873 4785== by 0x4A65853: gst_bin_element_set_state (gstbin.c:2615)
==00:00:00:12.873 4785== by 0x4A65853: gst_bin_change_state_func (gstbin.c:2957)
==00:00:00:12.873 4785== by 0xC134BDB: fps_display_sink_change_state (fpsdisplaysink.c:663)
==00:00:00:12.873 4785== by 0x4A8D9AF: gst_element_change_state (gstelement.c:3033)
==00:00:00:12.873 4785== by 0x4A8E033: gst_element_set_state_func (gstelement.c:2987)
==00:00:00:12.873 4785== by 0x4A65853: gst_bin_element_set_state (gstbin.c:2615)
==00:00:00:12.873 4785== by 0x4A65853: gst_bin_change_state_func (gstbin.c:2957)
==00:00:00:12.873 4785== by 0x4ABD0B7: gst_pipeline_change_state (gstpipeline.c:525)
==00:00:00:12.873 4785== by 0x4A8D9AF: gst_element_change_state (gstelement.c:3033)
==00:00:00:12.873 4785== by 0x4A8E033: gst_element_set_state_func (gstelement.c:2987)
==00:00:00:12.873 4785== by 0x10BF9F: main (gst-launch.c:1204)
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/717rtspsrc no longer posts an error message if it times out waiting for response2020-09-25T06:52:59ZMatt Staplesrtspsrc no longer posts an error message if it times out waiting for responsePrior to commit 8121752, gst_rtsp_try_send would call GST_ELEMENT_ERROR if gst_rtspsrc_connection_receive (which has since been replaced by gst_rtsp_src_receive_response) failed twice in a row. It currently posts a warning on each of th...Prior to commit 8121752, gst_rtsp_try_send would call GST_ELEMENT_ERROR if gst_rtspsrc_connection_receive (which has since been replaced by gst_rtsp_src_receive_response) failed twice in a row. It currently posts a warning on each of the two failures, but then fails without informing the application layer. This was found via calls from gst_rtspsrc_retrieve_sdp, whose goto send_error handler has a comment saying "Don't post a message - the rtsp_send method will have taken care of it because we passed NULL for the response code." That comment is still true if there's an error on send, but it's no longer true if there's an error (e.g., timeout) on receive.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1266webrtcbin: frame rate drops off cliff when source video height increases fro...2023-05-16T04:16:41ZAaron Boxerwebrtcbin: frame rate drops off cliff when source video height increases from 992 to 994Here is reproducer code for this issue:
https://gitlab.freedesktop.org/boxerab/dynamic-webrtc-reproducer
Uncomment line:
`//#define LATENCY_BUG`
to reproduce.
Video is encoded with `tune=zerolatency` - removing this flag fixes the ...Here is reproducer code for this issue:
https://gitlab.freedesktop.org/boxerab/dynamic-webrtc-reproducer
Uncomment line:
`//#define LATENCY_BUG`
to reproduce.
Video is encoded with `tune=zerolatency` - removing this flag fixes the issue.
Edit:
Adding `sliced-threads=0` also makes the issue go away.https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/247SIGSEGV produced when vaapih264dec is used2020-05-16T06:12:11ZLeonardo SandovalSIGSEGV produced when vaapih264dec is used
On a container and headless environment, running the following pipeline produces a SIGSEGV
```
$ wget https://fate-suite.libav.org/h264-conformance/AUD_MW_E.264
$ gst-launch-1.0 filesrc location=AUD_MW_E.264 ! h264parse ! vaapih264dec...
On a container and headless environment, running the following pipeline produces a SIGSEGV
```
$ wget https://fate-suite.libav.org/h264-conformance/AUD_MW_E.264
$ gst-launch-1.0 filesrc location=AUD_MW_E.264 ! h264parse ! vaapih264dec ! fakesink
Setting pipeline to PAUSED ...
Caught SIGSEGV
#0 0x00007f98af2263ca in wait4 () at /usr/lib64/haswell/libc.so.6
#1 0x00007f98af48b732 in g_on_error_stack_trace ()
#2 0x000055f6e4b4daab in fault_handler_sighandler ()
#3 0x00007f98af34ff30 in <signal handler called> ()
#4 0x00007f98ae2f6a7b in XQueryExtension () at /usr/lib64/haswell/libX11.so.6
#5 0x00007f98ae2f6bc5 in XInitExtension () at /usr/lib64/haswell/libX11.so.6
#6 0x00007f98ae2e8fee in () at /usr/lib64/haswell/libX11.so.6
#7 0x00007f98ae3925e3 in XRRQueryExtension ()
#8 0x00007f98ae73f280 in check_extensions ()
#9 0x00007f98ae73f34a in gst_vaapi_display_x11_bind_display ()
#10 0x00007f98ae6f6187 in gst_vaapi_display_config ()
#11 0x00007f98ae73f57c in gst_vaapi_display_x11_new_with_display ()
#12 0x00007f98ae6c62a5 in gst_vaapi_create_display_from_handle ()
#13 0x00007f98ae6c6667 in gst_vaapi_ensure_display ()
#14 0x00007f98ae6c4212 in gst_vaapi_plugin_base_ensure_display ()
#15 0x00007f98ae6c30c2 in gst_vaapidecode_start ()
#16 0x00007f98ae94b503 in gst_video_decoder_change_state ()
#17 0x00007f98af58d85a in gst_element_change_state ()
#18 0x00007f98af58e0a4 in gst_element_set_state_func ()
#19 0x00007f98af58d5fd in gst_element_set_state ()
#20 0x00007f98af56dbf2 in gst_bin_change_state_func ()
#21 0x00007f98af5b3bc5 in gst_pipeline_change_state ()
#22 0x00007f98af58d85a in gst_element_change_state ()
#23 0x00007f98af58e1a7 in gst_element_continue_state ()
#24 0x00007f98af58da0f in gst_element_change_state ()
#25 0x00007f98af58e0a4 in gst_element_set_state_func ()
#26 0x00007f98af58d5fd in gst_element_set_state ()
#27 0x000055f6e4b4faeb in main ()
Spinning. Please run 'gdb gst-launch-1.0 1965' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
```
One point to notice is that this is happening on a containarized environment (docker), based on ClearLinux base image, and the following versions/gstreamer-vaapi
```
LIBVA_VER=2.6.0
GST_VER=1.16.0
GST_PLUGIN_VAAPI_REPO=https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-${GST_VER}.tar.xz
```
One more thing: it works with `vaapisink`, where (IMO) the latter picks the proper backend properly: `DRM`.https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/71Give commit access to Jan Alexander Steffens2020-05-06T10:01:32ZVivia NikolaidouGive commit access to Jan Alexander Steffens@heftig has been a contributor for a very long time. He's, among other things, the author of the rtmp2 components, including a dedicated RTMP implementation instead of librtmp. He always writes very careful and well-structured code, need...@heftig has been a contributor for a very long time. He's, among other things, the author of the rtmp2 components, including a dedicated RTMP implementation instead of librtmp. He always writes very careful and well-structured code, needing minimal review comments, if at all. I think it would make sense for him to have commit access. Also discussed it shortly with @slomo and he seems to agree.https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/108Merge new AWS transcribe plugin with the rusoto plugin once it has been porte...2020-05-30T09:01:50ZMathieu DuponchelleMerge new AWS transcribe plugin with the rusoto plugin once it has been ported to 0.43https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/106
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/301https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/106
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/301https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1265Wanto to generate stream only from source, without having to encrypt again2020-04-13T13:49:05ZvandanaWanto to generate stream only from source, without having to encrypt againJust want to read from dvbsrc and generate a udp stream. However, none of the following worked. When i add an encoder for both audio and viode, then it works. But I dont want to do any decoding/encoding. Is encoding mandatory?
My trie...Just want to read from dvbsrc and generate a udp stream. However, none of the following worked. When i add an encoder for both audio and viode, then it works. But I dont want to do any decoding/encoding. Is encoding mandatory?
My tries:
`gst-launch-1.0 --gst-debug-level=3 dvbsrc modulation="QAM 256" frequency=147000000 ! udpsink host=122.173.89.91 port=10911
`
did not play
`gst-launch-1.0 --gst-debug-level=3 dvbsrc modulation="QAM 256" frequency=147000000 ! decodebin ! udpsink host=122.173.146.43 port=10911
`
error message too long
`gst-launch-1.0 --gst-debug-level=3 dvbsrc modulation="QAM 256" frequency=147000000 ! decodebin ! mux. mpegtsmux alignment=7 name=mux ! udpsink host=122.173.146.43 port=10911
`
no stream
` gst-launch-1.0 --gst-debug-level=3 dvbsrc modulation="QAM 256" frequency=147000000 ! tsdemux name=demux ! mpegtsmux ! udpsink host=122.173.146.43 port=10911
`
GST_PADS gstpad.c:4303:gst_pad_peer_query:<mpegtsmux0:src> could not send sticky eventshttps://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/248Add bindings for gst_plugin_get_name()2020-04-30T07:59:43ZSebastian DrögeAdd bindings for gst_plugin_get_name()See titleSee titlehttps://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/247Only allow changing pad functions if the pad is not yet active2020-06-22T08:19:15ZSebastian DrögeOnly allow changing pad functions if the pad is not yet activeOtherwise this can lead to crashes. Should probably add some guards for that in C too.
Are there any pad functions that can be called before activating? The query function maybe?Otherwise this can lead to crashes. Should probably add some guards for that in C too.
Are there any pad functions that can be called before activating? The query function maybe?https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1264New source and sink elements for Google Cloud Storage2021-03-18T23:37:33ZJulien IsorceNew source and sink elements for Google Cloud StorageHi, I am interested to write a `gssrc` and a `gssink` element to read and write files to Google Cloud Storage. The uri starts with `gs://`.
I wanted to check if these elements already exist before to start and if this is something that ...Hi, I am interested to write a `gssrc` and a `gssink` element to read and write files to Google Cloud Storage. The uri starts with `gs://`.
I wanted to check if these elements already exist before to start and if this is something that would be interesting to merge upstream.
Any thoughts are welcome, thx.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/716multifilesrc cannot play hls playlist2020-04-12T09:55:31ZLLmultifilesrc cannot play hls playlistcreate an hls playlist:
```
gst-launch-1.0 -e videotestsrc is-live=true num-buffers=200 ! video/x-raw, framerate=25/1, width=800, height=600! clockoverlay halignment=right valignment=top text="wk0=" shaded-background=true font-desc="Sans...create an hls playlist:
```
gst-launch-1.0 -e videotestsrc is-live=true num-buffers=200 ! video/x-raw, framerate=25/1, width=800, height=600! clockoverlay halignment=right valignment=top text="wk0=" shaded-background=true font-desc="Sans, 25" ! x264enc tune=zerolatency ! mpegtsmux ! hlssink target-duration=0 playlist-location=gst-test.m3u8
```
then we can play it with filesrc:
```
gst-launch-1.0 filesrc location=gst-test.m3u8 ! decodebin ! videoconvert ! xvimagesink
```
however we cannot play it with multifilesrc, which does not play:
```
gst-launch-1.0 multifilesrc location=gst-test.m3u8 ! decodebin ! videoconvert ! xvimagesink
```
but it keeps showing following info forever if set GST_DEBUG=4:
```
0:00:01.255662808 14101 0x55639a2759e0 INFO adaptivedemux gstadaptivedemux.c:769:gst_adaptive_demux_sink_chain:<hlsdemux0> Received manifest buffer, total size is 18980808 bytes
0:00:01.255673148 14101 0x55639a2759e0 INFO adaptivedemux gstadaptivedemux.c:769:gst_adaptive_demux_sink_chain:<hlsdemux0> Received manifest buffer, total size is 18980962 bytes
0:00:01.255680683 14101 0x55639a2759e0 INFO adaptivedemux gstadaptivedemux.c:769:gst_adaptive_demux_sink_chain:<hlsdemux0> Received manifest buffer, total size is 18981116 bytes
```
Directly play ts file with multifilesrc works:
```
gst-launch-1.0 multifilesrc location=segment00000.ts ! decodebin ! videoconvert ! xvimagesink
```
Is this a bug, or do I miss something here?https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/744videodecoder: _release_frame() drops the pending events2023-05-30T10:06:57ZNicolas Dufresnevideodecoder: _release_frame() drops the pending eventsIf a subclass releases a frame from the queue, the associated pending events will be dropped. This is armful as it breaks many assumption. The event could be from a tracer, which will bug the tracer result. Instead I think the event shou...If a subclass releases a frame from the queue, the associated pending events will be dropped. This is armful as it breaks many assumption. The event could be from a tracer, which will bug the tracer result. Instead I think the event should be prepended to the next frame (so they are pushed before the next frame pending events), or placed into the instance pending frame if there is no other frame, so that they are attached to the next frame later (or pushed during drain).
cc @ocrete @dabrain34https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1263compile error "fatal error: gst/video/video-bad-prelude.h: No such file or di...2020-08-09T20:13:27ZAlbert1st1compile error "fatal error: gst/video/video-bad-prelude.h: No such file or directory"Compilation of gst-plugins-bad 1.16.2 fails for me with "fatal error: gst/video/video-bad-prelude.h: No such file or directory"
config.log https://pastebin.com/Dm1qsxMh https://pastebin.com/npT5UNmD
make https://pastebin.com/j4RiWCFkCompilation of gst-plugins-bad 1.16.2 fails for me with "fatal error: gst/video/video-bad-prelude.h: No such file or directory"
config.log https://pastebin.com/Dm1qsxMh https://pastebin.com/npT5UNmD
make https://pastebin.com/j4RiWCFkhttps://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/104ges-launch: memory error for multiple clips2020-05-13T13:54:57ZHenry Wilkesges-launch: memory error for multiple clipsWhen running with two test clips
```
ges-launch-1.0 +test-clip "blue" start=0 duration=5 +test-clip "green" start=5 duration=5
```
on completion, we get a critical error.
```
(ges-launch-1.0:10414): GStreamer-CRITICAL **: 13:54:31.313...When running with two test clips
```
ges-launch-1.0 +test-clip "blue" start=0 duration=5 +test-clip "green" start=5 duration=5
```
on completion, we get a critical error.
```
(ges-launch-1.0:10414): GStreamer-CRITICAL **: 13:54:31.313: gst_object_unref: assertion '((GObject *) object)->ref_count > 0' failed
```https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/103ges-launch: timeoverlay errors2020-04-09T20:32:18ZHenry Wilkesges-launch: timeoverlay errorsI noticed a few problems in `ges-launch`:
```
ges-launch-1.0 +test-clip "blue" start=0 duration=5
```
will produce a constant stream of error messages from timecodestamper
```
0:00:06.231966197 10194 0x7fd16802e4f0 ERROR timeco...I noticed a few problems in `ges-launch`:
```
ges-launch-1.0 +test-clip "blue" start=0 duration=5
```
will produce a constant stream of error messages from timecodestamper
```
0:00:06.231966197 10194 0x7fd16802e4f0 ERROR timecodestamper gsttimecodestamper.c:1012:gst_timecodestamper_query:<timecodestamper0> Need a known, non-variable framerate to answer LATENCY query
```
This goes away with
```
ges-launch-1.0 +test-clip "blue" start=0 duration=5 use-time-overlay true
```
but then this will hang at time 5.
Moreover, with
```
ges-launch-1.0 +test-clip "blue" start=0 duration=5 set-use-time-overlay true +test-clip "green" start=5 duration=5 set-volume 0.25 set-use-time-overlay true
```
at time 5, the video will hang (stuck on blue, but audio changes).https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/534downloadbuffer pushing first data buffer before stream start event2022-11-10T09:21:01ZMohammed Dhilshaddownloadbuffer pushing first data buffer before stream start eventdownloadbuffer is pushing the first buffer before pushing Stream start and Segment event to the next element.
This happens when the source pad of download buffer works in push mode. the download_buffer_loop() function will be waiting for...downloadbuffer is pushing the first buffer before pushing Stream start and Segment event to the next element.
This happens when the source pad of download buffer works in push mode. the download_buffer_loop() function will be waiting for data to available in the temporary file, once it is available it will push the buffer, before even pushing stream start and segment event to next element.
This might cause the downstream element to ignore that first buffer.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/743glvideomixer: output is black2020-04-16T08:01:41ZPhilippe Normandglvideomixer: output is black`gst-launch-1.0 glvideomixer name=m ! queue ! glimagesink gltestsrc ! queue ! m.` only shows black.
Works fine with 1.16.2 as packaged in Debian.`gst-launch-1.0 glvideomixer name=m ! queue ! glimagesink gltestsrc ! queue ! m.` only shows black.
Works fine with 1.16.2 as packaged in Debian.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1262opus: Duplicated symbols2022-06-28T13:28:20ZNicolas Dufresneopus: Duplicated symbolsIt use to be critical for iOS / Android builds, hence reporting this warning. There is some copy-pasted code that lead to duplicate symbols as reported by iOS build.
```
0:08:58.690067 WARNING: The static library contains duplicated sym...It use to be critical for iOS / Android builds, hence reporting this warning. There is some copy-pasted code that lead to duplicate symbols as reported by iOS build.
```
0:08:58.690067 WARNING: The static library contains duplicated symbols
0:08:58.690110 _main
0:08:58.690123 /var/folders/rp/g_qc9bkd5x1gw77dsmylr41m0000gn/T/tmpfdy_au9n/arm64/GStreamer:libgstdv_a-smpte_test.c.o:
0:08:58.690130 /var/folders/rp/g_qc9bkd5x1gw77dsmylr41m0000gn/T/tmpfdy_au9n/arm64/GStreamer:libwebrtc_audio_processing_a-transient_click_annotate.cc.o:
0:08:58.690136 _gst_opus_header_is_comment_header
0:08:58.690142 /var/folders/rp/g_qc9bkd5x1gw77dsmylr41m0000gn/T/tmpfdy_au9n/arm64/GStreamer:libgstopus_a-gstopusheader.c.o:
0:08:58.690148 /var/folders/rp/g_qc9bkd5x1gw77dsmylr41m0000gn/T/tmpfdy_au9n/arm64/GStreamer:libgstopusparse_a-gstopusheader.c.o:
0:08:58.690153 _gst_opus_header_is_header
0:08:58.690159 /var/folders/rp/g_qc9bkd5x1gw77dsmylr41m0000gn/T/tmpfdy_au9n/arm64/GStreamer:libgstopus_a-gstopusheader.c.o:
0:08:58.690165 /var/folders/rp/g_qc9bkd5x1gw77dsmylr41m0000gn/T/tmpfdy_au9n/arm64/GStreamer:libgstopusparse_a-gstopusheader.c.o:
0:08:58.690170 _gst_opus_header_is_id_header
0:08:58.690175 /var/folders/rp/g_qc9bkd5x1gw77dsmylr41m0000gn/T/tmpfdy_au9n/arm64/GStreamer:libgstopus_a-gstopusheader.c.o:
0:08:58.690181 /var/folders/rp/g_qc9bkd5x1gw77dsmylr41m0000gn/T/tmpfdy_au9n/arm64/GStreamer:libgstopusparse_a-gstopusheader.c.o:
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/715udp: support for IPv6 addresses2020-04-09T01:05:12ZChristopher Leeudp: support for IPv6 addressesHello,
Do the `udpsrc` and `udpsink` elements support IPv6? When specifying `localhost` as the `host` for the `udpsink` element with the below `/etc/hosts` file, it seems like gstreamer is not able to handle the `::1` IPv6 address. Not ...Hello,
Do the `udpsrc` and `udpsink` elements support IPv6? When specifying `localhost` as the `host` for the `udpsink` element with the below `/etc/hosts` file, it seems like gstreamer is not able to handle the `::1` IPv6 address. Not sure if this is a :bug: or if IPv6 is just not supported yet.
### /etc/hosts
```
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
```
### Gstreamer logs
```
INFO multiudpsink gstmultiudpsink.c:1387:gst_multiudpsink_start:<udpsink1> Failed to create IPv6 socket: Unable to create socket: Address family not supported by protocol
WARN multiudpsink gstmultiudpsink.c:1285:gst_multiudpsink_configure_client:<udpsink1> error: Invalid address family (got 10)
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1260crash when srtpdec request_key_callback invoked2020-04-08T13:52:20ZSameer Thapacrash when srtpdec request_key_callback invokedHello All,
I am trying to record audio received in form srtp in a custom application. For this I set up following pipeline programatically:
`udpsrc port=5906 caps="application/x-srtp,channels=(int)1,media=(string)audio,payload=(int)0,c...Hello All,
I am trying to record audio received in form srtp in a custom application. For this I set up following pipeline programatically:
`udpsrc port=5906 caps="application/x-srtp,channels=(int)1,media=(string)audio,payload=(int)0,clock-rate=(int)8000,encoding-name=(string)PCMU,ssrc=(uint)0,srtp-key=(buffer)344d2b7943556a5679644c53724d7232314478784a766e7075674446717172414639736c52717467,srtp-cipher=(string)aes-128-icm,srtp-auth=(string)hmac-sha1-32,srtcp-cipher=(string)aes-128-icm,srtcp-auth=(string)hmac-sha1-32,roc=(uint)0" ! srtpdec ! rtppcmudepay ! filesink location=/home/audio.pcmu`
The ssrc is not received in sdp. I have implemented the callback function to return capstring as mentioned in the [documentation](https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/gst-plugins-bad-plugins-srtpdec.html) :
```
g_signal_connect(G_OBJECT(srtpdec), "request-key", G_CALLBACK (request_key_callback), &masterKey);
// masterKey is string
// srtpdec is global GstElement
GstCaps request_key_callback (GstElement gstsrtpdec, guint ssrc, gpointer udata)
{
string *key = (string*)udata;
GstCaps *caps = gst_caps_new_simple ("application/x-srtp",
"payload", G_TYPE_INT, 0,
"ssrc", G_TYPE_UINT, ssrc,
"srtp-key", G_TYPE_STRING, key->c_str(),
"srtp-auth", G_TYPE_STRING, "hmac-sha1-80",
"srtp-cipher", G_TYPE_STRING, "aes-128-icm",
"srtcp-auth", G_TYPE_STRING, "hmac-sha1-80",
"srtcp-cipher", G_TYPE_STRING, "aes-128-icm",
"roc", G_TYPE_UINT, 0,
NULL);
return *caps;
}
```
The capstring returned is like:
" application/x-srtp, payload=(int)0, ssrc=(uint)1932930184, srtp-key=(string)514a58303842626d4166544a6442516f5776773330724f536a6e7237643471782f54335a694f4464, srtp-auth=(string)hmac-sha1-80, srtp-cipher=(string)aes-128-icm, srtcp-auth=(string)hmac-sha1-80, srtcp-cipher=(string)aes-128-icm, roc=(uint)0 "
But after the callback invokes I am receiving following error:
(recorder:32537): GLib-GObject-CRITICAL **: 14:18:06.064: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** (recorder:32537): CRITICAL **: 14:18:06.064: update_session_stream_from_caps: assertion 'GST_IS_SRTP_DEC (filter)' failed
and the app crashes.
srtpdec is not unrefed any where and is a gloabl object.
Can anyone please help me and tell where is the mistake happening.
Thanks