[FFmpeg-devel] [PATCH] avformat/rtsp: Put strings instead of pointers to strings into array

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Mon Apr 20 04:42:04 EEST 2020


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.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
---
I have to admit that this is untested.

 libavformat/rtsp.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 0a6462000d..b2b3f32011 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -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)
-- 
2.20.1



More information about the ffmpeg-devel mailing list