Browse Source

sdp: Include SRTP crypto params if using the srtp protocol

Also print port numbers for this protocol.

Signed-off-by: Martin Storsjö <martin@martin.st>
tags/n1.2
Martin Storsjö 13 years ago
parent
commit
611bf39bde
1 changed files with 14 additions and 1 deletions
  1. +14
    -1
      libavformat/sdp.c

+ 14
- 1
libavformat/sdp.c View File

@@ -128,7 +128,7 @@ static int sdp_get_address(char *dest_addr, int size, int *ttl, const char *url)


*ttl = 0; *ttl = 0;


if (strcmp(proto, "rtp")) {
if (strcmp(proto, "rtp") && strcmp(proto, "srtp")) {
/* The url isn't for the actual rtp sessions, /* The url isn't for the actual rtp sessions,
* don't parse out anything else than the destination. * 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, av_strlcatf(buf, size,
"a=control:streamid=%d\r\n", i + j); "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);
}
} }
} }




Loading…
Cancel
Save