<div dir="auto"><div>Hi,<br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mer. 28 oct. 2020 à 10:35, Marvin Scholz <<a href="mailto:epirat07@gmail.com" target="_blank" rel="noreferrer">epirat07@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
On 28 Oct 2020, at 0:57, Ÿnérant wrote:<br>
<br>
> 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 <br>
> *p_stream)<br>
>      int stat;<br>
>      char *psz_passphrase = var_InheritString( p_stream,<br>
> SRT_PARAM_PASSPHRASE );<br>
>      bool passphrase_needs_free = true;<br>
> +    char *psz_streamid = var_InheritString( p_stream, <br>
> SRT_PARAM_STREAMID );<br>
> +    bool streamid_needs_free = true;<br>
<br>
Instead of a separate bool for this, maybe just always strdup?</blockquote></div></div><div dir="auto"><br></div><div dir="auto"></div><div dir="auto">I copied what was written for the passphrase, I don't know if we could write better. I am not a C programmer, so I don't know how to optimize memory, I'm sorry.</div><div dir="auto"></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<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 <br>
> *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 <br>
> *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>
This change seems unrelated to this patch?</blockquote></div></div><div dir="auto"><br></div><div dir="auto"></div><div dir="auto">Hum yeah, but without this change, the code is not compiling, since it uses deprecated SRT api. I left it since it is only one line...</div><div dir="auto"></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<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 <br>
> *p_stream)<br>
>                  SRTO_PASSPHRASE, psz_passphrase, <br>
> 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, <br>
> 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, <br>
> p_sys->sock,<br>
>              SRTO_PAYLOADSIZE, &i_payload_size, sizeof(i_payload_size) <br>
> );<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* <br>
> 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* <br>
> params)<br>
>                  } else if (strcmp( local_params[i].key,<br>
> SRT_PARAM_PASSPHRASE )<br>
>                          == 0) {<br>
>                      params->passphrase = val;<br>
> +                } else if (strcmp( local_params[i].key, <br>
> SRT_PARAM_STREAMID<br>
> )<br>
> +                        == 0) {<br>
> +                    params->streamid = val;<br>
>                  } else if (strcmp( local_params[i].key,<br>
> 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<br>
> *p_access)<br>
>      int i_payload_size = var_InheritInteger( p_access,<br>
> SRT_PARAM_PAYLOAD_SIZE );<br>
>      char *psz_passphrase = var_InheritString( p_access,<br>
> SRT_PARAM_PASSPHRASE );<br>
>      bool passphrase_needs_free = true;<br>
> +    char *psz_streamid = var_InheritString( p_access, <br>
> 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>
> );<br>
>      char *url = NULL;<br>
> @@ -136,6 +138,11 @@ static bool <br>
> srt_schedule_reconnect(sout_access_out_t<br>
> *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 <br>
> srt_schedule_reconnect(sout_access_out_t<br>
> *p_access)<br>
><br>
>      /* Set latency */<br>
>      srt_set_socket_option( access_obj, SRT_PARAM_LATENCY, <br>
> 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 <br>
> srt_schedule_reconnect(sout_access_out_t<br>
> *p_access)<br>
>                  SRTO_PASSPHRASE, psz_passphrase, <br>
> 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, <br>
> 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, <br>
> p_sys->sock,<br>
>              SRTO_PAYLOADSIZE, &i_payload_size, sizeof(i_payload_size) <br>
> );<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,<br>
> 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>
> _______________________________________________<br>
> vlc-devel mailing list<br>
> To unsubscribe or modify your subscription options:<br>
> <a href="https://mailman.videolan.org/listinfo/vlc-devel" rel="noreferrer noreferrer noreferrer" target="_blank">https://mailman.videolan.org/listinfo/vlc-devel</a><br>
_______________________________________________<br>
vlc-devel mailing list<br>
To unsubscribe or modify your subscription options:<br>
<a href="https://mailman.videolan.org/listinfo/vlc-devel" rel="noreferrer noreferrer noreferrer" target="_blank">https://mailman.videolan.org/listinfo/vlc-devel</a></blockquote></div></div></div>