[FFmpeg-devel] [PATCH] remove the hls_wrap option
Bodecs Bela
bodecsb at vivanet.hu
Sat Mar 26 19:42:28 CET 2016
2016.03.26. 15:10 keltezéssel, Steven Liu írta:
> Because the hls_flags use delete_segments flag can delete the old
>
> segment files and instead of the hls_wrap option, so remove it.
>
I suggest to leave hls_wrap option to be available. If you use this
option, the set of output file names is the same as the value of
hls_wrap, so it depends on you and sometimes it is very convinent.
Mainly when you use ffmpeg in scripting environment.
> Signed-off-by: LiuQi <liuqi at gosun.com>
>
> ---
>
> doc/muxers.texi | 9 ---------
>
> libavformat/hlsenc.c | 8 +++-----
>
> 2 files changed, 3 insertions(+), 14 deletions(-)
>
>
> diff --git a/doc/muxers.texi b/doc/muxers.texi
>
> index c36c72c..4dabfd1 100644
>
> --- a/doc/muxers.texi
>
> +++ b/doc/muxers.texi
>
> @@ -284,15 +284,6 @@ Set output format options using a :-separated list of
> key=value
>
> parameters. Values containing @code{:} special characters must be
>
> escaped.
>
>
>
> - at item hls_wrap @var{wrap}
>
> -Set the number after which the segment filename number (the number
>
> -specified in each segment file) wraps. If set to 0 the number will be
>
> -never wrapped. Default value is 0.
>
> -
>
> -This option is useful to avoid to fill the disk with many segment
>
> -files, and limits the maximum number of segment files written to disk
>
> -to @var{wrap}.
>
> -
>
> @item start_number @var{number}
>
> Start the playlist sequence number from @var{number}. Default value is
>
> 0.
>
> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
>
> index fd36b21..a22543a 100644
>
> --- a/libavformat/hlsenc.c
>
> +++ b/libavformat/hlsenc.c
>
> @@ -84,7 +84,6 @@ typedef struct HLSContext {
>
>
>
> float time; // Set by a private option.
>
> int max_nb_segments; // Set by a private option.
>
> - int wrap; // Set by a private option.
>
> uint32_t flags; // enum HLSFlags
>
> uint32_t pl_type; // enum PlaylistType
>
> char *segment_filename;
>
> @@ -373,7 +372,7 @@ static int hls_append_segment(struct AVFormatContext
> *s, HLSContext *hls, double
>
> en = hls->segments;
>
> hls->segments = en->next;
>
> if (en && hls->flags & HLS_DELETE_SEGMENTS &&
>
> - !(hls->flags & HLS_SINGLE_FILE || hls->wrap)) {
>
> + !(hls->flags & HLS_SINGLE_FILE)) {
>
> en->next = hls->old_segments;
>
> hls->old_segments = en;
>
> if ((ret = hls_delete_old_segments(hls)) < 0)
>
> @@ -561,13 +560,13 @@ static int hls_start(AVFormatContext *s)
>
> av_free(fn_copy);
>
> }
>
> } else if (av_get_frame_filename(oc->filename,
> sizeof(oc->filename),
>
> - c->basename, c->wrap ? c->sequence %
> c->wrap : c->sequence) < 0) {
>
> + c->basename, c->sequence) < 0) {
>
> av_log(oc, AV_LOG_ERROR, "Invalid segment filename template
> '%s' you can try use -use_localtime 1 with it\n", c->basename);
>
> return AVERROR(EINVAL);
>
> }
>
> if( c->vtt_basename) {
>
> if (av_get_frame_filename(vtt_oc->filename,
> sizeof(vtt_oc->filename),
>
> - c->vtt_basename, c->wrap ? c->sequence %
> c->wrap : c->sequence) < 0) {
>
> + c->vtt_basename, c->sequence) < 0) {
>
> av_log(vtt_oc, AV_LOG_ERROR, "Invalid segment filename
> template '%s'\n", c->vtt_basename);
>
> return AVERROR(EINVAL);
>
> }
>
> @@ -911,7 +910,6 @@ static const AVOption options[] = {
>
> {"hls_list_size", "set maximum number of playlist entries",
> OFFSET(max_nb_segments), AV_OPT_TYPE_INT, {.i64 = 5}, 0, INT_MAX,
> E},
>
> {"hls_ts_options","set hls mpegts list of options for the container
> format used for hls", OFFSET(format_options_str), AV_OPT_TYPE_STRING, {.str
> = NULL}, 0, 0, E},
>
> {"hls_vtt_options","set hls vtt list of options for the container
> format used for hls", OFFSET(vtt_format_options_str), AV_OPT_TYPE_STRING,
> {.str = NULL}, 0, 0, E},
>
> - {"hls_wrap", "set number after which the index wraps",
> OFFSET(wrap), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, E},
>
> {"hls_allow_cache", "explicitly set whether the client MAY (1) or MUST
> NOT (0) cache media segments", OFFSET(allowcache), AV_OPT_TYPE_INT, {.i64 =
> -1}, INT_MIN, INT_MAX, E},
>
> {"hls_base_url", "url to prepend to each playlist entry",
> OFFSET(baseurl), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E},
>
> {"hls_segment_filename", "filename template for segment files",
> OFFSET(segment_filename), AV_OPT_TYPE_STRING, {.str = NULL},
> 0, 0, E},
>
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
bb
More information about the ffmpeg-devel
mailing list