[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