gst_mikey_message_to_caps (const GstMIKEYMessage * msg, GstCaps * caps)
{
gboolean res = FALSE;
+ const GstMIKEYMapSRTP *srtp;
const GstMIKEYPayload *payload;
const gchar *srtp_cipher;
const gchar *srtp_auth;
srtp_cipher = "aes-128-icm";
srtp_auth = "hmac-sha1-80";
- /* check the Security policy if any */
- if ((payload = gst_mikey_message_find_payload (msg, GST_MIKEY_PT_SP, 0))) {
+ /* Look for first crypto session */
+ if (!(srtp = gst_mikey_message_get_cs_srtp (msg, 0))) {
+ GST_ERROR ("No crypto session found at index 0");
+ goto done;
+ }
+
+ /* Look for crypto policy corresponding to first crypto session */
+ if ((payload =
+ gst_mikey_message_find_payload (msg, GST_MIKEY_PT_SP,
+ (unsigned int) srtp->policy))) {
GstMIKEYPayloadSP *p = (GstMIKEYPayloadSP *) payload;
guint len, i;
guint enc_alg = GST_MIKEY_ENC_NULL;
buf = gst_buffer_new_memdup (pkd->key_data, pkd->key_len);
gst_caps_set_simple (caps, "srtp-key", GST_TYPE_BUFFER, buf, NULL);
gst_buffer_unref (buf);
+
+ gst_caps_set_simple (caps, "roc", G_TYPE_UINT, srtp->roc, NULL);
}
gst_caps_set_simple (caps,