[FFmpeg-devel] [PATCH] avformat/segment: remove last_cut check when detecting a new segment

Marton Balint cus at passwd.hu
Mon Jan 30 21:39:04 EET 2017



On Thu, 26 Jan 2017, Marton Balint wrote:

> Not starting a new segment if the elapsed microsecs since the start of the day
> equals the the elapsed microsecs since the start of the day at the time of the
> last cut seems plain wrong to me, Deti do you remember the original reason
> behind this check?
>
> Signed-off-by: Marton Balint <cus at passwd.hu>
> ---
> libavformat/segment.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/libavformat/segment.c b/libavformat/segment.c
> index 9d47148..8ec3653 100644
> --- a/libavformat/segment.c
> +++ b/libavformat/segment.c
> @@ -87,7 +87,6 @@ typedef struct SegmentContext {
>     int64_t clocktime_offset; //< clock offset for cutting the segments at regular clock time
>     int64_t clocktime_wrap_duration; //< wrapping duration considered for starting a new segment
>     int64_t last_val;      ///< remember last time for wrap around detection
> -    int64_t last_cut;      ///< remember last cut
>     int cut_pending;
>     int header_written;    ///< whether we've already called avformat_write_header
> 
> @@ -870,10 +869,8 @@ calc_times:
>             localtime_r(&sec, &ti);
>             usecs = (int64_t)(ti.tm_hour * 3600 + ti.tm_min * 60 + ti.tm_sec) * 1000000 + (avgt % 1000000);
>             wrapped_val = (usecs + seg->clocktime_offset) % seg->time;
> -            if (seg->last_cut != usecs && wrapped_val < seg->last_val && wrapped_val < seg->clocktime_wrap_duration) {
> +            if (wrapped_val < seg->last_val && wrapped_val < seg->clocktime_wrap_duration)
>                 seg->cut_pending = 1;
> -                seg->last_cut = usecs;
> -            }
>             seg->last_val = wrapped_val;
>         } else {
>             end_pts = seg->time * (seg->segment_count + 1);
> --

Ping...

Thanks,
Marton


More information about the ffmpeg-devel mailing list