> On Mar 25, 2016, at 09:45, Stefano Sabatini <stefa...@gmail.com> wrote:
> 
> On date Sunday 2016-03-06 20:49:23 -0600, Rodger Combs encoded:
>> This reduces some code duplication, and ensures that cur_entry.last_duration 
>> is
>> always set.
>> ---
>> libavformat/segment.c | 12 +++++++-----
>> 1 file changed, 7 insertions(+), 5 deletions(-)
>> 
>> diff --git a/libavformat/segment.c b/libavformat/segment.c
>> index 818c0c9..6ad991f 100644
>> --- a/libavformat/segment.c
>> +++ b/libavformat/segment.c
>> @@ -824,11 +824,13 @@ static int seg_write_packet(AVFormatContext *s, 
>> AVPacket *pkt)
>>         seg->cur_entry.index = seg->segment_idx + seg->segment_idx_wrap * 
>> seg->segment_idx_wrap_nb;
>>         seg->cur_entry.start_time = (double)pkt->pts * av_q2d(st->time_base);
>>         seg->cur_entry.start_pts = av_rescale_q(pkt->pts, st->time_base, 
>> AV_TIME_BASE_Q);
> 
>> -        seg->cur_entry.end_time = seg->cur_entry.start_time +
>> -            pkt->pts != AV_NOPTS_VALUE ? (double)(pkt->pts + pkt->duration) 
>> * av_q2d(st->time_base) : 0;
> 
> Unrelated, this looks wrong

Reading over the deleted code again, this confuses me a lot. In the 
segment-breaking case, if pkt->pts != AV_NOPTS_VALUE, we previously effectively 
set `seg->cur_entry.end_time = (double)(pkt->pts * 2 + pkt->duration) * 
av_q2d(st->time_base)`, if I understand correctly, and that doesn't seem to 
make any sense.

> 
>> -    } else if (pkt->pts != AV_NOPTS_VALUE && pkt->stream_index == 
>> seg->reference_stream_index) {
>> -        seg->cur_entry.end_time =
>> -            FFMAX(seg->cur_entry.end_time, (double)(pkt->pts + 
>> pkt->duration) * av_q2d(st->time_base));
>> +        seg->cur_entry.end_time = seg->cur_entry.start_time;
>> +    }
>> +
>> +    if (pkt->stream_index == seg->reference_stream_index) {
>> +        if (pkt->pts != AV_NOPTS_VALUE)
>> +            seg->cur_entry.end_time =
>> +                FFMAX(seg->cur_entry.end_time, (double)(pkt->pts + 
>> pkt->duration) * av_q2d(st->time_base));
>>         seg->cur_entry.last_duration = pkt->duration;
> 
> LGTM (and fixes the defect), thanks.
> -- 
> FFmpeg = Formidable and Fascinating Multimedia Powered Elegant Gnome
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org <mailto:ffmpeg-devel@ffmpeg.org>
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel 
> <http://ffmpeg.org/mailman/listinfo/ffmpeg-devel>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to