diff --git a/libavformat/sapenc.c b/libavformat/sapenc.c index 7abfd50d35..87e608298f 100644 --- a/libavformat/sapenc.c +++ b/libavformat/sapenc.c @@ -25,6 +25,7 @@ #include "libavutil/avstring.h" #include "libavutil/intreadwrite.h" #include "libavutil/time.h" +#include "libavutil/dict.h" #include "internal.h" #include "network.h" #include "os_support.h" @@ -76,6 +77,7 @@ static int sap_write_header(AVFormatContext *s) struct sockaddr_storage localaddr; socklen_t addrlen = sizeof(localaddr); int udp_fd; + AVDictionaryEntry* title = av_dict_get(s->metadata, "title", NULL, 0); if (!ff_network_init()) return AVERROR(EIO); @@ -158,6 +160,10 @@ static int sap_write_header(AVFormatContext *s) av_strlcpy(contexts[i]->filename, url, sizeof(contexts[i]->filename)); } + if (s->nb_streams > 0 && title) { + av_dict_set(&contexts[0]->metadata, "title", title->value, 0); + } + ff_url_join(url, sizeof(url), "udp", NULL, announce_addr, port, "?ttl=%d&connect=1", ttl); ret = ffurl_open(&sap->ann_fd, url, AVIO_FLAG_WRITE,