mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2025-02-26 23:26:40 +00:00
avformat/hlsenc: support multi level path in m3u8 with filename
before patch: localhost:osx liuqi$ tree 20160926/ 20160926/ └── file-20160909 └── 26 └── 16 └── 15 ├── 46 │ ├── 13.ts │ ├── 25.ts │ ├── 36.ts │ ├── 45.ts │ └── 54.ts └── 47 ├── 04.ts ├── 14.ts ├── 24.ts └── 35.ts 6 directories, 9 files localhost:osx liuqi$ cat out.m3u8 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:12 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:11.360000, 13.ts #EXTINF:10.800000, 25.ts #EXTINF:9.120000, 36.ts #EXTINF:8.760000, 45.ts #EXTINF:10.200000, 54.ts #EXTINF:10.720000, 04.ts #EXTINF:9.600000, 14.ts #EXTINF:10.600000, 24.ts #EXTINF:8.760000, 35.ts #EXT-X-ENDLIST after patch: localhost:osx liuqi$ tree 20160926/ 20160926/ └── file-20160909 └── 26 └── 16 └── 15 ├── 46 │ ├── 13.ts │ ├── 25.ts │ ├── 36.ts │ ├── 45.ts │ └── 54.ts └── 47 ├── 04.ts ├── 14.ts ├── 24.ts └── 35.ts 6 directories, 9 files localhost:osx liuqi$ cat out.m3u8 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:12 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:11.360000, 20160926/file-20160909/26/16/15/46/13.ts #EXTINF:10.800000, 20160926/file-20160909/26/16/15/46/25.ts #EXTINF:9.120000, 20160926/file-20160909/26/16/15/46/36.ts #EXTINF:8.760000, 20160926/file-20160909/26/16/15/46/45.ts #EXTINF:10.200000, 20160926/file-20160909/26/16/15/46/54.ts #EXTINF:10.720000, 20160926/file-20160909/26/16/15/47/04.ts #EXTINF:9.600000, 20160926/file-20160909/26/16/15/47/14.ts #EXTINF:10.600000, 20160926/file-20160909/26/16/15/47/24.ts #EXTINF:8.760000, 20160926/file-20160909/26/16/15/47/35.ts #EXT-X-ENDLIST Signed-off-by: Steven Liu <lingjiujianke@gmail.com>
This commit is contained in:
parent
d0be0cbebc
commit
be1d32492e
@ -364,8 +364,7 @@ static int hls_append_segment(struct AVFormatContext *s, HLSContext *hls, double
|
||||
int64_t pos, int64_t size)
|
||||
{
|
||||
HLSSegment *en = av_malloc(sizeof(*en));
|
||||
char *tmp, *p;
|
||||
const char *pl_dir, *filename;
|
||||
const char *filename;
|
||||
int ret;
|
||||
|
||||
if (!en)
|
||||
@ -374,19 +373,7 @@ static int hls_append_segment(struct AVFormatContext *s, HLSContext *hls, double
|
||||
filename = av_basename(hls->avf->filename);
|
||||
|
||||
if (hls->use_localtime_mkdir) {
|
||||
/* Possibly prefix with mkdir'ed subdir, if playlist share same
|
||||
* base path. */
|
||||
tmp = av_strdup(s->filename);
|
||||
if (!tmp) {
|
||||
av_free(en);
|
||||
return AVERROR(ENOMEM);
|
||||
}
|
||||
|
||||
pl_dir = av_dirname(tmp);
|
||||
p = hls->avf->filename;
|
||||
if (strstr(p, pl_dir) == p)
|
||||
filename = hls->avf->filename + strlen(pl_dir) + 1;
|
||||
av_free(tmp);
|
||||
filename = hls->avf->filename;
|
||||
}
|
||||
av_strlcpy(en->filename, filename, sizeof(en->filename));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user