On 18/03/14 21:18, Luca Barbato wrote: > From: Enrique Arizón Benito <[email protected]> > > Useful to generate lists with absolute urls. > > Signed-off-by: Luca Barbato <[email protected]> > --- > > This version has some formatting nits removed and docs added, feel free > to clean up the documentation if it feels too terse. > > doc/muxers.texi | 3 +++ > libavformat/segment.c | 5 +++++ > 2 files changed, 8 insertions(+) > > diff --git a/doc/muxers.texi b/doc/muxers.texi > index 143e595..cf5e016 100644 > --- a/doc/muxers.texi > +++ b/doc/muxers.texi > @@ -480,6 +480,9 @@ Set segment duration to @var{t} seconds. > Generate also a listfile named @var{name}. > @item segment_list_size @var{size} > Overwrite the listfile once it reaches @var{size} entries. > +@item segment_list_entry_prefix @var{prefix} > +Prepend @var{prefix} to each entry. Useful to generate absolute paths, > +has the parser consuming it unable to use relative ones. > @item segment_wrap @var{limit} > Wrap around segment index once it reaches @var{limit}. > @end table > diff --git a/libavformat/segment.c b/libavformat/segment.c > index d79a327..390263c 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 }, > -- > 1.8.3.4 (Apple Git-47)
Ping. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
