Need Help Regarding SRTPDEC request_key_callback

sameer sameer.thapa at evontech.com
Thu Apr 9 09:28:06 UTC 2020


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/58aca858/attachment-0001.htm>


More information about the gstreamer-devel mailing list