diff --git a/libavformat/matroska.h b/libavformat/matroska.h index 002fc4cbc9..0c3dc29e19 100644 --- a/libavformat/matroska.h +++ b/libavformat/matroska.h @@ -91,6 +91,7 @@ #define MATROSKA_ID_CODECINFOURL 0x3B4040 #define MATROSKA_ID_CODECDOWNLOADURL 0x26B240 #define MATROSKA_ID_CODECDECODEALL 0xAA +#define MATROSKA_ID_CODECDELAY 0x56AA #define MATROSKA_ID_SEEKPREROLL 0x56BB #define MATROSKA_ID_TRACKNAME 0x536E #define MATROSKA_ID_TRACKLANGUAGE 0x22B59C diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 973076103a..13523f800f 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -653,7 +653,12 @@ static int mkv_write_tracks(AVFormatContext *s) } if (codec->codec_id == AV_CODEC_ID_OPUS) { + uint64_t codec_delay =av_rescale_q(codec->delay, + (AVRational){1, codec->sample_rate}, + (AVRational){1, 1000000000}); + put_ebml_uint(pb, MATROSKA_ID_CODECDELAY, codec_delay); put_ebml_uint(pb, MATROSKA_ID_SEEKPREROLL, OPUS_SEEK_PREROLL); + } if (mkv->mode == MODE_WEBM && !(codec->codec_id == AV_CODEC_ID_VP8 || diff --git a/libavformat/version.h b/libavformat/version.h index 8ae40ab3ca..4f59ff33a6 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -31,7 +31,7 @@ #define LIBAVFORMAT_VERSION_MAJOR 55 #define LIBAVFORMAT_VERSION_MINOR 16 -#define LIBAVFORMAT_VERSION_MICRO 101 +#define LIBAVFORMAT_VERSION_MICRO 102 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \