|
|
|
@@ -38,7 +38,8 @@ typedef struct ListEntry { |
|
|
|
|
|
|
|
typedef struct HLSContext { |
|
|
|
const AVClass *class; // Class for private options. |
|
|
|
int number; |
|
|
|
unsigned number; |
|
|
|
int64_t sequence; |
|
|
|
AVOutputFormat *oformat; |
|
|
|
AVFormatContext *avf; |
|
|
|
float time; // Set by a private option. |
|
|
|
@@ -105,6 +106,8 @@ static int append_entry(HLSContext *hls, uint64_t duration) |
|
|
|
} else |
|
|
|
hls->nb_entries++; |
|
|
|
|
|
|
|
hls->sequence++; |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -138,8 +141,8 @@ static int hls_window(AVFormatContext *s, int last) |
|
|
|
avio_printf(hls->pb, "#EXTM3U\n"); |
|
|
|
avio_printf(hls->pb, "#EXT-X-VERSION:3\n"); |
|
|
|
avio_printf(hls->pb, "#EXT-X-TARGETDURATION:%d\n", target_duration); |
|
|
|
avio_printf(hls->pb, "#EXT-X-MEDIA-SEQUENCE:%d\n", |
|
|
|
FFMAX(0, hls->number - hls->size)); |
|
|
|
avio_printf(hls->pb, "#EXT-X-MEDIA-SEQUENCE:%"PRId64"\n", |
|
|
|
FFMAX(0, hls->sequence - hls->size)); |
|
|
|
|
|
|
|
for (en = hls->list; en; en = en->next) { |
|
|
|
avio_printf(hls->pb, "#EXTINF:%d,\n", en->duration); |
|
|
|
|