[FFmpeg-cvslog] sdp: Include SRTP crypto params if using the srtp protocol

Martin Storsjö git at videolan.org
Tue Jan 15 16:16:09 CET 2013


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Wed Dec 12 12:59:41 2012 +0200| [611bf39bde603adb15a7f298e4a4fd783330d1c9] | committer: Martin Storsjö

sdp: Include SRTP crypto params if using the srtp protocol

Also print port numbers for this protocol.

Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=611bf39bde603adb15a7f298e4a4fd783330d1c9
---

 libavformat/sdp.c |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/libavformat/sdp.c b/libavformat/sdp.c
index 57044d4..186f83b 100644
--- a/libavformat/sdp.c
+++ b/libavformat/sdp.c
@@ -128,7 +128,7 @@ static int sdp_get_address(char *dest_addr, int size, int *ttl, const char *url)
 
     *ttl = 0;
 
-    if (strcmp(proto, "rtp")) {
+    if (strcmp(proto, "rtp") && strcmp(proto, "srtp")) {
         /* The url isn't for the actual rtp sessions,
          * don't parse out anything else than the destination.
          */
@@ -667,6 +667,19 @@ int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size)
                 av_strlcatf(buf, size,
                                    "a=control:streamid=%d\r\n", i + j);
             }
+            if (ac[i]->pb && ac[i]->pb->av_class) {
+                uint8_t *crypto_suite = NULL, *crypto_params = NULL;
+                av_opt_get(ac[i]->pb, "srtp_out_suite",  AV_OPT_SEARCH_CHILDREN,
+                           &crypto_suite);
+                av_opt_get(ac[i]->pb, "srtp_out_params", AV_OPT_SEARCH_CHILDREN,
+                           &crypto_params);
+                if (crypto_suite && crypto_suite[0])
+                    av_strlcatf(buf, size,
+                                "a=crypto:1 %s inline:%s\r\n",
+                                crypto_suite, crypto_params);
+                av_free(crypto_suite);
+                av_free(crypto_params);
+            }
         }
     }
 



More information about the ffmpeg-cvslog mailing list