Need Help Regarding SRTPDEC request_key_callback

sameer sameer.thapa at evontech.com
Wed Apr 8 13:22:50 UTC 2020


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)

{
     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;
}

Is it the correct way?

Thanks

> *From:*Olivier Crête <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>
> *Cc:* Lefteris Diakakis <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
> 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/20200408/a1268f77/attachment.htm>


More information about the gstreamer-devel mailing list