Can anyone answer me?.. :( чт, 17 окт. 2019 г., 12:24 Vasily <just.one....@yandex.ru>:
> 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".