]> git.sesse.net Git - ffmpeg/commitdiff
avformat/hlsenc: Simplify setting base_output_dirname
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Fri, 8 May 2020 19:40:29 +0000 (21:40 +0200)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sun, 10 May 2020 20:30:43 +0000 (22:30 +0200)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavformat/hlsenc.c

index d80852739efb5c231870a4c323b1d80f3e1ba6fc..be54957e9dcbf9b3ff59d521b88463cf17f5a02e 100644 (file)
@@ -2908,24 +2908,18 @@ static int hls_init(AVFormatContext *s)
                         return ret;
                 }
 
-                fmp4_init_filename_len = strlen(vs->m3u8_name) +
-                    strlen(vs->fmp4_init_filename) + 1;
-
-                vs->base_output_dirname = av_malloc(fmp4_init_filename_len);
-                if (!vs->base_output_dirname)
-                    return AVERROR(ENOMEM);
-
-                av_strlcpy(vs->base_output_dirname, vs->m3u8_name,
-                           fmp4_init_filename_len);
-                p = strrchr(vs->base_output_dirname, '/');
+                p = strrchr(vs->m3u8_name, '/');
                 if (p) {
-                    *(p + 1) = '\0';
-                    av_strlcat(vs->base_output_dirname, vs->fmp4_init_filename,
-                               fmp4_init_filename_len);
+                    char tmp = *(++p);
+                    *p = '\0';
+                    vs->base_output_dirname = av_asprintf("%s%s", vs->m3u8_name,
+                                                          vs->fmp4_init_filename);
+                    *p = tmp;
                 } else {
-                    av_strlcpy(vs->base_output_dirname, vs->fmp4_init_filename,
-                               fmp4_init_filename_len);
+                    vs->base_output_dirname = av_strdup(vs->fmp4_init_filename);
                 }
+                if (!vs->base_output_dirname)
+                    return AVERROR(ENOMEM);
             }
         }