[FFmpeg-devel] [PATCH] avformat/rtpproto: Move dscp into context & AVOptions

Thomas Volkert silvo at gmx.net
Sat Apr 11 19:11:17 CEST 2015


Am 11.04.2015 um 19:00 schrieb Michael Niedermayer:
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
>   libavformat/rtpproto.c |   17 ++++++++---------
>   1 file changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/libavformat/rtpproto.c b/libavformat/rtpproto.c
> index 0f294fb..d3e2ca0 100644
> --- a/libavformat/rtpproto.c
> +++ b/libavformat/rtpproto.c
> @@ -55,6 +55,7 @@ typedef struct RTPContext {
>       int rtcp_port, local_rtpport, local_rtcpport;
>       int connect;
>       int pkt_size;
> +    int dscp;
>       char *sources;
>       char *block;
>   } RTPContext;
> @@ -71,6 +72,7 @@ static const AVOption options[] = {
>       { "connect",            "Connect socket",                                                   OFFSET(connect),         AV_OPT_TYPE_INT,    { .i64 =  0 },     0, 1,       .flags = D|E },
>       { "write_to_source",    "Send packets to the source address of the latest received packet", OFFSET(write_to_source), AV_OPT_TYPE_INT,    { .i64 =  0 },     0, 1,       .flags = D|E },
>       { "pkt_size",           "Maximum packet size",                                              OFFSET(pkt_size),        AV_OPT_TYPE_INT,    { .i64 = -1 },    -1, INT_MAX, .flags = D|E },
> +    { "dscp",               "DSCP class",                                                       OFFSET(dscp),            AV_OPT_TYPE_INT,    { .i64 = -1 },    -1, INT_MAX, .flags = D|E },
>       { "sources",            "Source list",                                                      OFFSET(sources),         AV_OPT_TYPE_STRING, { .str = NULL },               .flags = D|E },
>       { "block",              "Block list",                                                       OFFSET(block),           AV_OPT_TYPE_STRING, { .str = NULL },               .flags = D|E },
>       { NULL }
> @@ -225,7 +227,6 @@ static void build_udp_url(RTPContext *s,
>                             char *buf, int buf_size,
>                             const char *hostname,
>                             int port, int local_port,
> -                          int dscp,
>                             const char *include_sources,
>                             const char *exclude_sources)
>   {
> @@ -240,8 +241,8 @@ static void build_udp_url(RTPContext *s,
>           url_add_option(buf, buf_size, "pkt_size=%d", s->pkt_size);
>       if (s->connect)
>           url_add_option(buf, buf_size, "connect=1");
> -    if (dscp >= 0)
> -        url_add_option(buf, buf_size, "dscp=%d", dscp);
> +    if (s->dscp >= 0)
> +        url_add_option(buf, buf_size, "dscp=%d", s->dscp);
>       url_add_option(buf, buf_size, "fifo_size=0");
>       if (include_sources && include_sources[0])
>           url_add_option(buf, buf_size, "sources=%s", include_sources);
> @@ -316,7 +317,6 @@ static int rtp_open(URLContext *h, const char *uri, int flags)
>   {
>       RTPContext *s = h->priv_data;
>       int rtp_port;
> -    int dscp;
>       char hostname[256], include_sources[1024] = "", exclude_sources[1024] = "";
>       char *sources = include_sources, *block = exclude_sources;
>       char buf[1024];
> @@ -327,7 +327,6 @@ static int rtp_open(URLContext *h, const char *uri, int flags)
>       av_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &rtp_port,
>                    path, sizeof(path), uri);
>       /* extract parameters */
> -    dscp = -1;
>       if (s->rtcp_port < 0)
>           s->rtcp_port = rtp_port + 1;
>   
> @@ -358,7 +357,7 @@ static int rtp_open(URLContext *h, const char *uri, int flags)
>               s->write_to_source = strtol(buf, NULL, 10);
>           }
>           if (av_find_info_tag(buf, sizeof(buf), "dscp", p)) {
> -            dscp = strtol(buf, NULL, 10);
> +            s->dscp = strtol(buf, NULL, 10);
>           }
>           if (av_find_info_tag(buf, sizeof(buf), "sources", p)) {
>               av_strlcpy(include_sources, buf, sizeof(include_sources));
> @@ -380,7 +379,7 @@ static int rtp_open(URLContext *h, const char *uri, int flags)
>       for (i = 0; i < max_retry_count; i++) {
>           build_udp_url(s, buf, sizeof(buf),
>                         hostname, rtp_port, s->local_rtpport,
> -                      dscp, sources, block);
> +                      sources, block);
>           if (ffurl_open(&s->rtp_hd, buf, flags, &h->interrupt_callback, NULL) < 0)
>               goto fail;
>           s->local_rtpport = ff_udp_get_local_port(s->rtp_hd);
> @@ -392,7 +391,7 @@ static int rtp_open(URLContext *h, const char *uri, int flags)
>               s->local_rtcpport = s->local_rtpport + 1;
>               build_udp_url(s, buf, sizeof(buf),
>                             hostname, s->rtcp_port, s->local_rtcpport,
> -                          dscp, sources, block);
> +                          sources, block);
>               if (ffurl_open(&s->rtcp_hd, buf, flags, &h->interrupt_callback, NULL) < 0) {
>                   s->local_rtpport = s->local_rtcpport = -1;
>                   continue;
> @@ -401,7 +400,7 @@ static int rtp_open(URLContext *h, const char *uri, int flags)
>           }
>           build_udp_url(s, buf, sizeof(buf),
>                         hostname, s->rtcp_port, s->local_rtcpport,
> -                      dscp, sources, block);
> +                      sources, block);
>           if (ffurl_open(&s->rtcp_hd, buf, flags, &h->interrupt_callback, NULL) < 0)
>               goto fail;
>           break;

LGTM.

Best regards,
Thomas.


More information about the ffmpeg-devel mailing list