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 _______________________________________________ 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".