[FFmpeg-devel] [PATCH 2/2] avformat/hlsenc: fix missing first segment bug in fmp4 mode
Steven Liu
lq at chinaffmpeg.org
Thu Oct 26 02:54:49 EEST 2017
fix ticket id: #6776
fix code logic error, need not check first segment.
Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
---
libavformat/hlsenc.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 55ce800c5a..caced6a3dd 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -1080,15 +1080,16 @@ static int hls_window(AVFormatContext *s, int last)
avio_printf(out, ",BYTERANGE=\"%"PRId64"@%"PRId64"\"", en->size, en->pos);
}
avio_printf(out, "\n");
- } else {
- if (hls->flags & HLS_ROUND_DURATIONS)
- avio_printf(out, "#EXTINF:%ld,\n", lrint(en->duration));
- else
- avio_printf(out, "#EXTINF:%f,\n", en->duration);
- if (byterange_mode)
- avio_printf(out, "#EXT-X-BYTERANGE:%"PRId64"@%"PRId64"\n",
- en->size, en->pos);
}
+
+ if (hls->flags & HLS_ROUND_DURATIONS)
+ avio_printf(out, "#EXTINF:%ld,\n", lrint(en->duration));
+ else
+ avio_printf(out, "#EXTINF:%f,\n", en->duration);
+ if (byterange_mode)
+ avio_printf(out, "#EXT-X-BYTERANGE:%"PRId64"@%"PRId64"\n",
+ en->size, en->pos);
+
if (hls->flags & HLS_PROGRAM_DATE_TIME) {
time_t tt, wrongsecs;
int milli;
@@ -1113,11 +1114,10 @@ static int hls_window(AVFormatContext *s, int last)
avio_printf(out, "#EXT-X-PROGRAM-DATE-TIME:%s.%03d%s\n", buf0, milli, buf1);
prog_date_time += en->duration;
}
- if (!((hls->segment_type == SEGMENT_TYPE_FMP4) && (en == hls->segments))) {
- if (hls->baseurl)
- avio_printf(out, "%s", hls->baseurl);
- avio_printf(out, "%s\n", en->filename);
- }
+
+ if (hls->baseurl)
+ avio_printf(out, "%s", hls->baseurl);
+ avio_printf(out, "%s\n", en->filename);
}
if (last && (hls->flags & HLS_OMIT_ENDLIST)==0)
--
2.11.0 (Apple Git-81)
More information about the ffmpeg-devel
mailing list