From ed7f675966159a4b04b7b65f75d1352d98474c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Mon, 25 Mar 2013 13:48:20 -0400 Subject: [PATCH] srtp: Fix filter handling in caps negotiation to keep filter content --- ext/srtp/gstsrtpdec.c | 10 ++++++++++ ext/srtp/gstsrtpenc.c | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ext/srtp/gstsrtpdec.c b/ext/srtp/gstsrtpdec.c index 0c64a7d78c..a2580b7f25 100644 --- a/ext/srtp/gstsrtpdec.c +++ b/ext/srtp/gstsrtpdec.c @@ -731,6 +731,14 @@ gst_srtp_dec_sink_query (GstPad * pad, GstObject * parent, GstQuery * query, gst_structure_set_name (ps, "application/x-srtp"); } + if (filter) { + GstCaps *tmp; + + tmp = gst_caps_intersect (ret, filter); + gst_caps_unref (ret); + ret = tmp; + } + gst_query_set_caps_result (query, ret); return TRUE; @@ -815,6 +823,7 @@ gst_srtp_dec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf, if (!(stream = validate_buffer (filter, buf, &ssrc, is_rtcp))) { GST_OBJECT_UNLOCK (filter); + GST_WARNING_OBJECT (filter, "Invalid buffer, dropping"); goto drop_buffer; } @@ -879,6 +888,7 @@ unprotect: goto drop_buffer; default: + GST_WARNING_OBJECT (filter, "Other error"); goto drop_buffer; } } diff --git a/ext/srtp/gstsrtpenc.c b/ext/srtp/gstsrtpenc.c index 6e6c4a15c8..264aa6525e 100644 --- a/ext/srtp/gstsrtpenc.c +++ b/ext/srtp/gstsrtpenc.c @@ -263,7 +263,8 @@ gst_srtp_enc_class_init (GstSrtpEncClass * klass) /* Install properties */ g_object_class_install_property (gobject_class, PROP_MKEY, - g_param_spec_boxed ("key", "Key", "Master key", + g_param_spec_boxed ("key", "Key", "Master key (of " + G_STRINGIFY (SRTP_MASTER_KEY_LEN) " bytes)", GST_TYPE_BUFFER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_MUTABLE_PLAYING)); g_object_class_install_property (gobject_class, PROP_RTP_CIPHER,