avformat/rtsp: Put strings instead of pointers to strings into array
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Fri, 3 Apr 2020 13:02:07 +0000 (15:02 +0200)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Mon, 20 Apr 2020 16:21:39 +0000 (18:21 +0200)
In this example, the difference in length between the shortest and
longest string is three, so that not using pointers to strings saves
space even on 32bit systems.

Moreover, there is no need to use a sentinel here; it can be replaced
with FF_ARRAY_ELEMS.

Reviewed-by: Ross Nicholson <phunkyfish@gmail.com>
Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavformat/rtsp.c

index 0a64620..b2b3f32 100644 (file)
@@ -2526,10 +2526,11 @@ static int rtp_read_header(AVFormatContext *s)
 
     p = strchr(s->url, '?');
     if (p) {
-        static const char *filters[][2] = {{"sources", "incl"}, {"block", "excl"}, {NULL, NULL}};
+        static const char filters[][2][8] = { { "sources", "incl" },
+                                              { "block",   "excl" } };
         int i;
         char *q;
-        for (i = 0; filters[i][0]; i++) {
+        for (i = 0; i < FF_ARRAY_ELEMS(filters); i++) {
             if (av_find_info_tag(filters_buf, sizeof(filters_buf), filters[i][0], p)) {
                 q = filters_buf;
                 while ((q = strchr(q, ',')) != NULL)