avcodec/opus: set skip_samples
authorPaul B Mahol <onemda@gmail.com>
Tue, 27 Nov 2018 14:16:36 +0000 (15:16 +0100)
committerPaul B Mahol <onemda@gmail.com>
Wed, 28 Nov 2018 09:26:07 +0000 (10:26 +0100)
Also update fate test. Fixes #5258.

libavcodec/opus.c
tests/fate/opus.mak

index aa827b6..22cda64 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "opus_celt.h"
 #include "opustab.h"
+#include "internal.h"
 #include "vorbis.h"
 
 static const uint16_t opus_frame_duration[32] = {
@@ -325,7 +326,7 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx,
         return AVERROR_PATCHWELCOME;
     }
 
-    avctx->delay = AV_RL16(extradata + 10);
+    avctx->delay = avctx->internal->skip_samples = AV_RL16(extradata + 10);
 
     channels = avctx->extradata ? extradata[9] : (avctx->channels == 1) ? 1 : 2;
     if (!channels) {
index 7f28945..c50d88f 100644 (file)
@@ -36,6 +36,7 @@ fate-opus-testvector09:      CMP_TARGET = 0
 fate-opus-testvector10:      CMP_TARGET = 38
 fate-opus-testvector11:      CMP_TARGET = 0
 fate-opus-testvector12:      CMP_TARGET = 160
+fate-opus-tron.6ch.tinypkts: CMP_SHIFT = 1440
 fate-opus-tron.6ch.tinypkts: CMP_TARGET = 0
 
 $(FATE_OPUS_CELT): CMP = oneoff