summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVignesh Venkatasubramanian <vigneshv@google.com>2013-08-30 10:52:36 -0700
committerMichael Niedermayer <michaelni@gmx.at>2013-09-10 01:45:38 +0200
commitd92b1b1babe69268971863649c225e1747358a74 (patch)
treec92a255b3966c34a2e9802a161a6d5cd633f2a79
parentbb47aa5850c8f31939a978d361c834d1f3a53960 (diff)
lavf/matroska: Adding support for Opus CodecDelay
In order to represent the codec delay accurately in Matroska, a new element CodecDelay has been introduced. It contains the overall delay added by the codec in nanoseconds. This patch adds support for muxing CodecDelay value in the container. Matroska spec for CodecDelay element can be found here: http://matroska.org/technical/specs/index.html#CodecDelay Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/matroska.h1
-rw-r--r--libavformat/matroskaenc.c5
-rw-r--r--libavformat/version.h2
3 files changed, 7 insertions, 1 deletions
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, \