<div dir="ltr">diff --git a/modules/access/srt.c b/modules/access/srt.c<br>index 499a300196..ae8ba2a84f 100644<br>--- a/modules/access/srt.c<br>+++ b/modules/access/srt.c<br>@@ -97,6 +97,8 @@ static bool srt_schedule_reconnect(stream_t *p_stream)<br>     int stat;<br>     char *psz_passphrase = var_InheritString( p_stream, SRT_PARAM_PASSPHRASE );<br>     bool passphrase_needs_free = true;<br>+    char *psz_streamid = var_InheritString( p_stream, SRT_PARAM_STREAMID );<br>+    bool streamid_needs_free = true;<br>     char *url = NULL;<br>     srt_params_t params;<br>     struct addrinfo hints = {<br>@@ -145,6 +147,11 @@ static bool srt_schedule_reconnect(stream_t *p_stream)<br>                 passphrase_needs_free = false;<br>                 psz_passphrase = (char *) params.passphrase;<br>             }<br>+            if (params.streamid != NULL ) {<br>+                free( psz_streamid );<br>+                streamid_needs_free = false;<br>+         psz_streamid = (char *) params.streamid;<br>+         }<br>         }<br>     }<br> <br>@@ -164,7 +171,7 @@ static bool srt_schedule_reconnect(stream_t *p_stream)<br> <br>     /* Set latency */<br>     srt_set_socket_option( strm_obj, SRT_PARAM_LATENCY, p_sys->sock,<br>-            SRTO_TSBPDDELAY, &i_latency, sizeof(i_latency) );<br>+            SRTO_LATENCY, &i_latency, sizeof(i_latency) );<br> <br>     /* set passphrase */<br>     if (psz_passphrase != NULL && psz_passphrase[0] != '\0') {<br>@@ -177,6 +184,12 @@ static bool srt_schedule_reconnect(stream_t *p_stream)<br>                 SRTO_PASSPHRASE, psz_passphrase, strlen(psz_passphrase) );<br>     }<br> <br>+    /* set stream id */<br>+    if (psz_streamid != NULL && psz_streamid[0] != '\0') {<br>+        srt_set_socket_option( strm_obj, SRT_PARAM_STREAMID, p_sys->sock,<br>+                SRTO_STREAMID, psz_streamid, strlen(psz_streamid) );<br>+    }<br>+<br>     /* set maximum payload size */<br>     srt_set_socket_option( strm_obj, SRT_PARAM_PAYLOAD_SIZE, p_sys->sock,<br>             SRTO_PAYLOADSIZE, &i_payload_size, sizeof(i_payload_size) );<br>@@ -211,6 +224,8 @@ out:<br> <br>     if (passphrase_needs_free)<br>         free( psz_passphrase );<br>+    if (streamid_needs_free)<br>+ free( psz_streamid );<br>     freeaddrinfo( res );<br>     free( url );<br> <br>@@ -429,6 +444,9 @@ vlc_module_begin ()<br>     add_integer( SRT_PARAM_KEY_LENGTH, SRT_DEFAULT_KEY_LENGTH,<br>             SRT_KEY_LENGTH_TEXT, SRT_KEY_LENGTH_TEXT, false )<br>     change_integer_list( srt_key_lengths, srt_key_length_names )<br>+    add_string(SRT_PARAM_STREAMID, "",<br>+            N_(" SRT Stream ID"), NULL, false)<br>+    change_safe()<br> <br>     set_capability("access", 0)<br>     add_shortcut("srt")<br>diff --git a/modules/access/srt_common.c b/modules/access/srt_common.c<br>index be6a9732cb..c1b6dc3751 100644<br>--- a/modules/access/srt_common.c<br>+++ b/modules/access/srt_common.c<br>@@ -107,6 +107,7 @@ bool srt_parse_url(char* url, srt_params_t* params)<br>     params->key_length = -1;<br>     params->payload_size = -1;<br>     params->bandwidth_overhead_limit = -1;<br>+    params->streamid = NULL;<br> <br>     /* Parse URL parameters */<br>     query = find( url, '?' );<br>@@ -127,6 +128,9 @@ bool srt_parse_url(char* url, srt_params_t* params)<br>                 } else if (strcmp( local_params[i].key, SRT_PARAM_PASSPHRASE )<br>                         == 0) {<br>                     params->passphrase = val;<br>+                } else if (strcmp( local_params[i].key, SRT_PARAM_STREAMID )<br>+                        == 0) {<br>+                    params->streamid = val;<br>                 } else if (strcmp( local_params[i].key, SRT_PARAM_PAYLOAD_SIZE )<br>                         == 0) {<br>                     int temp = atoi( val );<br>diff --git a/modules/access/srt_common.h b/modules/access/srt_common.h<br>index c2322d5755..5f2a11a242 100644<br>--- a/modules/access/srt_common.h<br>+++ b/modules/access/srt_common.h<br>@@ -39,6 +39,7 @@<br> #define SRT_PARAM_CHUNK_SIZE                  "chunk-size"<br> #define SRT_PARAM_POLL_TIMEOUT                "poll-timeout"<br> #define SRT_PARAM_KEY_LENGTH                  "key-length"<br>+#define SRT_PARAM_STREAMID                    "streamid"<br> <br> <br> #define SRT_DEFAULT_BANDWIDTH_OVERHEAD_LIMIT 25<br>@@ -68,6 +69,7 @@ typedef struct srt_params {<br>     int key_length;<br>     int payload_size;<br>     int bandwidth_overhead_limit;<br>+    const char* streamid;<br> } srt_params_t;<br> <br> bool srt_parse_url(char* url, srt_params_t* params);<br>diff --git a/modules/access_output/srt.c b/modules/access_output/srt.c<br>index 0b66f24a8a..afd11dc484 100644<br>--- a/modules/access_output/srt.c<br>+++ b/modules/access_output/srt.c<br>@@ -68,6 +68,8 @@ static bool srt_schedule_reconnect(sout_access_out_t *p_access)<br>     int i_payload_size = var_InheritInteger( p_access, SRT_PARAM_PAYLOAD_SIZE );<br>     char *psz_passphrase = var_InheritString( p_access, SRT_PARAM_PASSPHRASE );<br>     bool passphrase_needs_free = true;<br>+    char *psz_streamid = var_InheritString( p_access, SRT_PARAM_STREAMID );<br>+    bool streamid_needs_free = true;<br>     int i_max_bandwidth_limit =<br>     var_InheritInteger( p_access, SRT_PARAM_BANDWIDTH_OVERHEAD_LIMIT );<br>     char *url = NULL;<br>@@ -136,6 +138,11 @@ static bool srt_schedule_reconnect(sout_access_out_t *p_access)<br>                 passphrase_needs_free = false;<br>                 psz_passphrase = (char *) params.passphrase;<br>             }<br>+         if (params.streamid != NULL) {<br>+                free( psz_streamid );<br>+                streamid_needs_free = false;<br>+                psz_streamid = (char *) params.streamid;<br>+            }<br>         }<br>     }<br> <br>@@ -155,7 +162,7 @@ static bool srt_schedule_reconnect(sout_access_out_t *p_access)<br> <br>     /* Set latency */<br>     srt_set_socket_option( access_obj, SRT_PARAM_LATENCY, p_sys->sock,<br>-            SRTO_TSBPDDELAY, &i_latency, sizeof(i_latency) );<br>+            SRTO_LATENCY, &i_latency, sizeof(i_latency) );<br> <br>     /* set passphrase */<br>     if (psz_passphrase != NULL && psz_passphrase[0] != '\0') {<br>@@ -168,6 +175,12 @@ static bool srt_schedule_reconnect(sout_access_out_t *p_access)<br>                 SRTO_PASSPHRASE, psz_passphrase, strlen(psz_passphrase) );<br>     }<br> <br>+    /* set streamid */<br>+    if (psz_streamid != NULL && psz_streamid[0] != '\0') {<br>+        srt_set_socket_option( access_obj, SRT_PARAM_STREAMID, p_sys->sock,<br>+                SRTO_STREAMID, psz_streamid, strlen(psz_streamid) );<br>+    }<br>+<br>     /* set maximumu payload size */<br>     srt_set_socket_option( access_obj, SRT_PARAM_PAYLOAD_SIZE, p_sys->sock,<br>             SRTO_PAYLOADSIZE, &i_payload_size, sizeof(i_payload_size) );<br>@@ -204,6 +217,8 @@ out:<br> <br>     if (passphrase_needs_free)<br>         free( psz_passphrase );<br>+    if (streamid_needs_free)<br>+        free( psz_streamid );<br>     free( psz_dst_addr );<br>     free( url );<br>     freeaddrinfo( res );<br>@@ -444,6 +459,9 @@ vlc_module_begin()<br>     add_integer( SRT_PARAM_KEY_LENGTH, SRT_DEFAULT_KEY_LENGTH, SRT_KEY_LENGTH_TEXT,<br>             SRT_KEY_LENGTH_TEXT, false )<br>     change_integer_list( srt_key_lengths, srt_key_length_names )<br>+    add_string(SRT_PARAM_STREAMID, "",<br>+            N_(" SRT Stream ID"), NULL, false)<br>+    change_safe()<br> <br>     set_capability( "sout access", 0 )<br>     add_shortcut( "srt" )<br></div>