srtp: Fix filter handling in caps negotiation to keep filter content

This commit is contained in:
Olivier Crête 2013-03-25 13:48:20 -04:00
parent 23b2b46993
commit ed7f675966
2 changed files with 12 additions and 1 deletions

View file

@ -731,6 +731,14 @@ gst_srtp_dec_sink_query (GstPad * pad, GstObject * parent, GstQuery * query,
gst_structure_set_name (ps, "application/x-srtp"); 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); gst_query_set_caps_result (query, ret);
return TRUE; 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))) { if (!(stream = validate_buffer (filter, buf, &ssrc, is_rtcp))) {
GST_OBJECT_UNLOCK (filter); GST_OBJECT_UNLOCK (filter);
GST_WARNING_OBJECT (filter, "Invalid buffer, dropping");
goto drop_buffer; goto drop_buffer;
} }
@ -879,6 +888,7 @@ unprotect:
goto drop_buffer; goto drop_buffer;
default: default:
GST_WARNING_OBJECT (filter, "Other error");
goto drop_buffer; goto drop_buffer;
} }
} }

View file

@ -263,7 +263,8 @@ gst_srtp_enc_class_init (GstSrtpEncClass * klass)
/* Install properties */ /* Install properties */
g_object_class_install_property (gobject_class, PROP_MKEY, 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_TYPE_BUFFER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
GST_PARAM_MUTABLE_PLAYING)); GST_PARAM_MUTABLE_PLAYING));
g_object_class_install_property (gobject_class, PROP_RTP_CIPHER, g_object_class_install_property (gobject_class, PROP_RTP_CIPHER,