On Wed, Oct 09, 2019 at 10:32:40AM +0800, Steven Liu wrote: > > > > 在 2019年10月9日,09:37,lance.lmw...@gmail.com 写道: > > > > From: Limin Wang <lance.lmw...@gmail.com> > > > > Signed-off-by: Limin Wang <lance.lmw...@gmail.com> > > --- > > libavformat/hlsenc.c | 16 ++++++++++------ > > 1 file changed, 10 insertions(+), 6 deletions(-) > > > > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c > > index cd4320114d..74f5e08729 100644 > > --- a/libavformat/hlsenc.c > > +++ b/libavformat/hlsenc.c > > @@ -478,6 +478,12 @@ static void reflush_dynbuf(VariantStream *vs, int > > *range_length) > > avio_write(vs->out, vs->temp_buffer, *range_length);; > > } > > > > +#if HAVE_DOS_PATHS > > +#define SEPARATOR '\\' > > +#else > > +#define SEPARATOR '/' > > +#endif > > + > > static int hls_delete_old_segments(AVFormatContext *s, HLSContext *hls, > > VariantStream *vs) > > { > > @@ -544,7 +550,7 @@ static int hls_delete_old_segments(AVFormatContext *s, > > HLSContext *hls, > > while (segment) { > > av_log(hls, AV_LOG_DEBUG, "deleting old segment %s\n", > > segment->filename); > > - path_size = (hls->use_localtime_mkdir ? 0 : strlen(dirname)) + > > strlen(segment->filename) + 1; > > + path_size = (hls->use_localtime_mkdir ? 0 : strlen(dirname)+1) + > > strlen(segment->filename) + 1; > > path = av_malloc(path_size); > > if (!path) { > > ret = AVERROR(ENOMEM); > > @@ -554,8 +560,7 @@ static int hls_delete_old_segments(AVFormatContext *s, > > HLSContext *hls, > > if (hls->use_localtime_mkdir) > > av_strlcpy(path, segment->filename, path_size); > > else { // segment->filename contains basename only > > - av_strlcpy(path, dirname, path_size); > > - av_strlcat(path, segment->filename, path_size); > > + snprintf(path, path_size, "%s%c%s", dirname, SEPARATOR, > > segment->filename); > > } > > > > proto = avio_find_protocol_name(s->url); > > @@ -575,15 +580,14 @@ static int hls_delete_old_segments(AVFormatContext > > *s, HLSContext *hls, > > if ((segment->sub_filename[0] != '\0')) { > > char *vtt_dirname_r = av_strdup(vs->vtt_avf->url); > > vtt_dirname = (char*)av_dirname(vtt_dirname_r); > > - sub_path_size = strlen(segment->sub_filename) + 1 + > > strlen(vtt_dirname); > > + sub_path_size = strlen(segment->sub_filename) + 1 + > > strlen(vtt_dirname) + 1; > > sub_path = av_malloc(sub_path_size); > > if (!sub_path) { > > ret = AVERROR(ENOMEM); > > goto fail; > > } > > > > - av_strlcpy(sub_path, vtt_dirname, sub_path_size); > > - av_strlcat(sub_path, segment->sub_filename, sub_path_size); > > + snprintf(sub_path, sub_path_size, "%s%c%s", vtt_dirname, > > SEPARATOR, segment->sub_filename); > > > > if (hls->method || (proto && !av_strcasecmp(proto, "http"))) { > > av_dict_set(&options, "method", "DELETE", 0); > > -- > > 2.21.0 > > > > _______________________________________________ > > ffmpeg-devel mailing list > > ffmpeg-devel@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > > To unsubscribe, visit link above, or email > > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > Tested passed > > lgtm
ping, please help to push it if other comment by other developer. > > Thanks > Steven > > > > > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".