summaryrefslogtreecommitdiff
path: root/libavformat/segment.c
diff options
context:
space:
mode:
authorEnrique Arizón Benito <enrique.arizonbenito@gmail.com>2014-03-18 21:18:59 +0100
committerLuca Barbato <lu_zero@gentoo.org>2014-04-29 12:14:00 +0200
commit5c08ae4f37281441188447cd04dcaf7cd7ce031f (patch)
treef48e96ccb932fe926e5883508d628a63f17dd759 /libavformat/segment.c
parenta61c2115fb936d50b8b0328d00562fe529a7c46a (diff)
segment: Add an option to prepend a string to the list entries
Useful to generate lists with absolute urls. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diffstat (limited to 'libavformat/segment.c')
-rw-r--r--libavformat/segment.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/segment.c b/libavformat/segment.c
index d79a32798e..390263cdd2 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -37,6 +37,7 @@ typedef struct {
AVFormatContext *avf;
char *format; /**< Set by a private option. */
char *list; /**< Set by a private option. */
+ char *entry_prefix; /**< Set by a private option. */
int list_type; /**< Set by a private option. */
float time; /**< Set by a private option. */
int size; /**< Set by a private option. */
@@ -97,6 +98,9 @@ static int segment_hls_window(AVFormatContext *s, int last)
for (i = FFMAX(0, seg->number - seg->size);
i < seg->number; i++) {
avio_printf(seg->pb, "#EXTINF:%d,\n", (int)seg->time);
+ if (seg->entry_prefix != NULL) {
+ avio_printf(seg->pb, "%s", seg->entry_prefix);
+ }
av_get_frame_filename(buf, sizeof(buf), s->filename, i);
avio_printf(seg->pb, "%s\n", buf);
}
@@ -363,6 +367,7 @@ static const AVOption options[] = {
{ "flat", "plain list (default)", 0, AV_OPT_TYPE_CONST, {.i64 = LIST_FLAT}, 0, 0, E, "list_type" },
{ "hls", "Apple HTTP Live Streaming compatible", 0, AV_OPT_TYPE_CONST, {.i64 = LIST_HLS}, 0, 0, E, "list_type" },
{ "segment_wrap", "number after which the index wraps", OFFSET(wrap), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, E },
+ { "segment_list_entry_prefix", "base url prefix for segments", OFFSET(entry_prefix), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E },
{ "individual_header_trailer", "write header/trailer to each segment", OFFSET(individual_header_trailer), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, E },
{ "write_header_trailer", "write a header to the first segment and a trailer to the last one", OFFSET(write_header_trailer), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, E },
{ NULL },