Need Help Regarding SRTPDEC request_key_callback

sameer sameer.thapa at evontech.com
Thu Apr 9 14:14:46 UTC 2020


Any updates on this? We are stuck for some while in this issue and it is 
crucial for us to get the srtp recording going.

On 09/04/20 2:58 pm, sameer wrote:
>
> We are running pipeline in a different thread other than the main 
> thread of application. Can the unref issue be related to different 
> thread context?
>
> On 08/04/20 9:03 pm, sameer wrote:
>>
>> On returning caps instead of *caps the app is crashing without 
>> showing any errorlogs.
>>
>> Do I need to add the callback method in the class as a member method?
>>
>>> *From:*Olivier Crête <olivier.crete at collabora.com>
>>> *Sent:* Wednesday, April 8, 2020 4:47 PM
>>> *To:* Discussion of the development of and with GStreamer 
>>> <gstreamer-devel at lists.freedesktop.org>
>>> *Cc:* Lefteris Diakakis <ldiakakis at rtelworld.com>
>>> *Subject:* Re: Need Help Regarding SRTPDEC request_key_callback
>>>
>>> Hi,
>>>
>>> On Wed, 2020-04-08 at 18:52 +0530, sameer wrote:
>>>
>>>     Thank you for the quick reply!
>>>
>>>     We have not unref the srtpdec object anywhere. Even made the
>>>     srtpdec object global.
>>>
>>>     Following is our implementation of callback:
>>>
>>>     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)
>>>
>>> The return value should be a "GstCaps *"
>>>
>>>     {
>>>         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;
>>>     }
>>>
>>> And you should "return caps;"
>>>
>>> Olivier
>>>
>>>     Is it the correct way?
>>>
>>>     Thanks
>>>
>>>         *From:*Olivier Crête <olivier.crete at collabora.com>
>>>         <mailto:olivier.crete at collabora.com>
>>>         *Sent:* Wednesday, April 8, 2020 3:52 PM
>>>         *To:* Discussion of the development of and with GStreamer
>>>         <gstreamer-devel at lists.freedesktop.org>
>>>         <mailto:gstreamer-devel at lists.freedesktop.org>
>>>         *Cc:* Lefteris Diakakis <ldiakakis at rtelworld.com>
>>>         <mailto:ldiakakis at rtelworld.com>
>>>         *Subject:* Re: Need Help Regarding SRTPDEC request_key_callback
>>>
>>>         Hi,
>>>
>>>         On Wed, 2020-04-08 at 14:37 +0530, sameer wrote:
>>>
>>>             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>
>>>             :
>>>
>>>             *static GstCaps request_key_callback (GstElement
>>>             gstsrtpdec, guint  ssrc, gpointer  udata) *
>>>
>>>             The capstring returned is like:
>>>
>>>             *"
>>>             application/x-srtp,channels=(int)1,media=(string)audio,payload=(int)0,clock-rate=(int)8000,encoding-name=(string)PCMU,ssrc=(uint)1932929554,srtp-key=(buffer)4d73554e564e334354466141365042324168614444436c4a456a754a497673747a354e5961694d5a,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
>>>             "*
>>>
>>>             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.
>>>
>>>             Can anyone tell me what mistake I am making. I am not
>>>             able to find much in the documentation or any examples.
>>>
>>>         You probably unref the srtpdec object somewhere where you
>>>         shouldn't.
>>>
>>>         -- 
>>>
>>>         Olivier Crête
>>>
>>>         <mailto:olivier.crete at collabora.com>
>>>
>>>         _olivier.crete at collabora.com<mailto:olivier.crete at collabora.com>_
>>>
>>>     _______________________________________________
>>>
>>>     gstreamer-devel mailing list
>>>
>>>     <mailto:gstreamer-devel at lists.freedesktop.org>
>>>
>>>     _gstreamer-devel at lists.freedesktop.org<mailto:gstreamer-devel at lists.freedesktop.org>_
>>>
>>>     <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>>
>>>     _https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel_
>>>
>>> -- 
>>> Olivier Crête
>>> olivier.crete at collabora.com  <mailto:olivier.crete at collabora.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200409/65595b64/attachment.htm>


More information about the gstreamer-devel mailing list