Can I have _any_ response please? It was more than a week of silence... :( Thanks, Vasily
чт, 10 окт. 2019 г., 13:05 Vasily <just.one....@yandex.ru>: > Anything else I have to do to make this patch eventually taken in? > > Thanks, > Vasily > > пн, 7 окт. 2019 г. в 15:54, <just.one....@yandex.ru>: > >> When incoming media has non-zero start PTS, >> segment muxer would fail to correctly calculate >> the point where to chunk segments, as it always >> assumed that media starts with PTS==0. >> >> This change removes this assumption by remembering >> the PTS of the very first frame passed through the muxer. >> >> Also fix starting points of first segment >> --- >> libavformat/segment.c | 12 +++++++++++- >> 1 file changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/libavformat/segment.c b/libavformat/segment.c >> index e308206..8b985df 100644 >> --- a/libavformat/segment.c >> +++ b/libavformat/segment.c >> @@ -87,6 +87,7 @@ typedef struct SegmentContext { >> int64_t last_val; ///< remember last time for wrap around >> detection >> int cut_pending; >> int header_written; ///< whether we've already called >> avformat_write_header >> + int64_t start_pts; ///< pts of the very first packet processed, >> used to compute correct segment length >> >> char *entry_prefix; ///< prefix to add to list entry filenames >> int list_type; ///< set the list type >> @@ -702,6 +703,7 @@ static int seg_init(AVFormatContext *s) >> if ((ret = parse_frames(s, &seg->frames, &seg->nb_frames, >> seg->frames_str)) < 0) >> return ret; >> } else { >> + seg->start_pts = AV_NOPTS_VALUE; >> /* set default value if not specified */ >> if (!seg->time_str) >> seg->time_str = av_strdup("2"); >> @@ -914,7 +916,15 @@ calc_times: >> seg->cut_pending = 1; >> seg->last_val = wrapped_val; >> } else { >> - end_pts = seg->time * (seg->segment_count + 1); >> + if (seg->start_pts != AV_NOPTS_VALUE) { >> + end_pts = seg->start_pts + seg->time * >> (seg->segment_count + 1); >> + } else if (pkt->stream_index == seg->reference_stream_index >> && pkt->pts != AV_NOPTS_VALUE) { >> + // this is the first packet of the reference stream we >> see, initialize start point >> + seg->start_pts = av_rescale_q(pkt->pts, st->time_base, >> AV_TIME_BASE_Q); >> + seg->cur_entry.start_time = (double)pkt->pts * >> av_q2d(st->time_base); >> + seg->cur_entry.start_pts = seg->start_pts; >> + end_pts = seg->start_pts + seg->time * >> (seg->segment_count + 1); >> + } >> } >> } >> >> -- >> 1.7.9.5 >> >> Now I tried to re-format as Nicolas George said, hopefully this is okay >> and won't make a third entry in patchwork (if it does - how do I stop it >> from doing so?) >> >> 07.10.2019, 15:15, "Nicolas George" <geo...@nsup.org>: >> > just.one....@yandex.ru (12019-10-07): >> >> Updated patch >> > >> > This should be after the triple dash, because it does not belong in the >> > commit message. >> > >> >> --- >> >> >> >> When incoming media has non-zero start PTS, >> >> segment muxer would fail to correctly calculate >> >> the point where to chunk segments, as it always >> >> assumed that media starts with PTS==0. >> >> >> >> This change removes this assumption by remembering >> >> the PTS of the very first frame passed through the muxer. >> >> >> >> Also fix starting points of first segment >> >> --- >> > >> > This should be before the triple dash, because it does belong in the >> > commit message. >> > >> > I did not look at the code. >> > >> > Regards, >> > >> > -- >> > Nicolas George >> > , >> > >> > _______________________________________________ >> > ffmpeg-devel mailing list >> > ffmpeg-devel@ffmpeg.org >> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > >> > To unsubscribe, visit link above, or email >> > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". >> _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".