srtp: Let packets through without touching them if no crypto or auth is set

This commit is contained in:
Olivier Crête 2013-08-12 12:27:33 -04:00
parent a10e800dfd
commit d346e75606
2 changed files with 14 additions and 2 deletions

View file

@ -858,6 +858,11 @@ gst_srtp_dec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf,
goto drop_buffer;
}
if (!STREAM_HAS_CRYPTO (stream)) {
GST_OBJECT_UNLOCK (filter);
goto push_out;
}
GST_LOG_OBJECT (pad, "Received %s buffer of size %" G_GSIZE_FORMAT
" with SSRC = %u", is_rtcp ? "RTCP" : "RTP", gst_buffer_get_size (buf),
ssrc);
@ -925,6 +930,7 @@ unprotect:
if (gst_srtp_get_soft_limit_reached ())
request_key_with_signal (filter, ssrc, SIGNAL_SOFT_LIMIT);
push_out:
/* Push buffer to source pad */
otherpad = (GstPad *) gst_pad_get_element_private (pad);
ret = gst_pad_push (otherpad, buf);

View file

@ -938,8 +938,6 @@ gst_srtp_enc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf,
GST_OBJECT_LOCK (filter);
size_max = gst_buffer_get_size (buf) + SRTP_MAX_TRAILER_LEN + 10;
/* Update source caps if asked */
if (do_setcaps) {
GstCaps *caps;
@ -956,7 +954,15 @@ gst_srtp_enc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf,
GST_OBJECT_LOCK (filter);
}
if (!HAS_CRYPTO (filter)) {
GST_OBJECT_UNLOCK (filter);
otherpad = get_rtp_other_pad (pad);
return gst_pad_push (otherpad, buf);
}
/* Create a bigger buffer to add protection */
size_max = gst_buffer_get_size (buf) + SRTP_MAX_TRAILER_LEN + 10;
bufout = gst_buffer_new_allocate (NULL, size_max, NULL);
gst_buffer_map (buf, &mapin, GST_MAP_READ);