[FFmpeg-devel] [PATCH] lavf/oggparseopus: Setting seek_preroll in AVCodecContext

Vignesh Venkatasubramanian vigneshv at google.com
Wed Feb 5 02:18:00 CET 2014


Setting seek_preroll value in AVCodecContext for Opus streams
embedded in ogg container. This is already being done in
matroskadec. Doing this to achieve consistency so that decoders
can rely upon this field being populated for opus streams in both
matroska and ogg containers.

Signed-off-by: Vignesh Venkatasubramanian <vigneshv at google.com>
---
 libavformat/oggparseopus.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavformat/oggparseopus.c b/libavformat/oggparseopus.c
index 553ddb0..8dde1e9 100644
--- a/libavformat/oggparseopus.c
+++ b/libavformat/oggparseopus.c
@@ -32,6 +32,7 @@ struct oggopus_private {
     int64_t cur_dts;
 };
 
+#define OPUS_SEEK_PREROLL 80000000
 #define OPUS_HEAD_SIZE 19
 
 static int opus_header(AVFormatContext *avf, int idx)
@@ -66,6 +67,10 @@ static int opus_header(AVFormatContext *avf, int idx)
         memcpy(st->codec->extradata, packet, os->psize);
 
         st->codec->sample_rate = 48000;
+        av_codec_set_seek_preroll(st->codec,
+                                  av_rescale_q(OPUS_SEEK_PREROLL,
+                                               (AVRational){1, 1000000000},
+                                               (AVRational){1, st->codec->sample_rate}));
         avpriv_set_pts_info(st, 64, 1, 48000);
         priv->need_comments = 1;
         return 1;
-- 
1.9.0.rc1.175.g0b1dcb5



More information about the ffmpeg-devel mailing list