On Tue, Jan 7, 2020 at 3:12 PM Andreas Rheinhardt < andreas.rheinha...@gmail.com> wrote:
> On Wed, Jan 1, 2020 at 1:59 AM Andreas Rheinhardt < > andreas.rheinha...@gmail.com> wrote: > >> In order to indicate that the frames in a BlockGroup are not keyframes, >> one has to add a ReferenceBlock element containing the timestamp of a >> referenced Block that has already been written. The timestamp ought to be >> relative to the timestamp of the Block it is attached to. Yet the >> Matroska muxer used the relative timestamp of the preceding Block of the >> track, i.e. the timestamp of the preceding block relative to the >> timestamp of the Cluster containing said block (that need not be the >> Cluster containing the current Block). This has been fixed. >> >> Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> >> --- >> libavformat/matroskaenc.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c >> index 469b604de6..9cf840c9be 100644 >> --- a/libavformat/matroskaenc.c >> +++ b/libavformat/matroskaenc.c >> @@ -2167,9 +2167,9 @@ static void mkv_write_block(AVFormatContext *s, >> AVIOContext *pb, >> av_free(data); >> >> if (blockid == MATROSKA_ID_BLOCK && !keyframe) { >> - put_ebml_sint(pb, MATROSKA_ID_BLOCKREFERENCE, >> track->last_timestamp); >> + put_ebml_sint(pb, MATROSKA_ID_BLOCKREFERENCE, >> track->last_timestamp - ts); >> } >> - track->last_timestamp = ts - mkv->cluster_pts; >> + track->last_timestamp = ts; >> >> if (discard_padding) { >> put_ebml_sint(pb, MATROSKA_ID_DISCARDPADDING, discard_padding); >> -- >> 2.20.1 >> >> > Ping for the rest of this patchset. > > - Andreas > > Ping. - Andreas _______________________________________________ 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".