[FFmpeg-devel] [PATCH] lavf/segment: compute max list segment duration

Clément Bœsch ubitux at gmail.com
Thu Aug 16 00:00:39 CEST 2012


On Wed, Aug 15, 2012 at 11:45:51PM +0200, Stefano Sabatini wrote:
> This is useful for the M3U8 format incoming patch.
> ---
>  libavformat/segment.c |   12 ++++++++++--
>  1 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/libavformat/segment.c b/libavformat/segment.c
> index ba5718d..78b304a 100644
> --- a/libavformat/segment.c
> +++ b/libavformat/segment.c
> @@ -49,6 +49,7 @@ typedef struct {
>      char *format;          ///< format to use for output segment files
>      char *list;            ///< filename for the segment list file
>      int   list_size;       ///< number of entries for the segment list file
> +    double list_max_segment_time; ///< max segment time in the current list
>      ListType list_type;    ///< set the list type
>      AVIOContext *list_pb;  ///< list file put-byte context
>      char *time_str;        ///< segment duration specification string
> @@ -112,8 +113,14 @@ fail:
>  static int segment_list_open(AVFormatContext *s)
>  {
>      SegmentContext *seg = s->priv_data;
> -    return avio_open2(&seg->list_pb, seg->list, AVIO_FLAG_WRITE,
> -                      &s->interrupt_callback, NULL);
> +    int ret;
> +
> +    ret = avio_open2(&seg->list_pb, seg->list, AVIO_FLAG_WRITE,
> +                     &s->interrupt_callback, NULL);
> +    if (ret < 0)
> +        return ret;
> +    seg->list_max_segment_time = 0;
> +    return ret;
>  }
>  
>  static void segment_list_close(AVFormatContext *s)
> @@ -147,6 +154,7 @@ static int segment_end(AVFormatContext *s)
>          } else if (seg->list_type == LIST_TYPE_EXT) {
>              avio_printf(seg->list_pb, "%s,%f,%f\n", oc->filename, seg->start_time, seg->end_time);
>          }
> +        seg->list_max_segment_time = FFMAX(seg->end_time - seg->start_time, seg->list_max_segment_time);
>          avio_flush(seg->list_pb);
>      }
>  

LGTM

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120816/976e4c7a/attachment.asc>


More information about the ffmpeg-devel mailing list