[FFmpeg-cvslog] avformat/dtsdec: Extend DTS core sync word

foo86 git at videolan.org
Tue Apr 28 19:41:31 CEST 2015


ffmpeg | branch: master | foo86 <foobaz86 at gmail.com> | Tue Apr 28 17:47:53 2015 +0300| [191dd219d9c955a379cf52b18731c334ae70e475] | committer: Michael Niedermayer

avformat/dtsdec: Extend DTS core sync word

Check extended sync word for 16-bit LE and BE core streams to reduce
probability of alias sync detection. Previously sync word extension was
checked only for 14-bit streams.

This follows up the similar change in avcodec/dca_parser.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=191dd219d9c955a379cf52b18731c334ae70e475
---

 libavformat/dtsdec.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavformat/dtsdec.c b/libavformat/dtsdec.c
index 50b14c6..da0fb61 100644
--- a/libavformat/dtsdec.c
+++ b/libavformat/dtsdec.c
@@ -50,9 +50,11 @@ static int dts_probe(AVProbeData *p)
             diff += FFABS(((int16_t)AV_RL16(buf)) - (int16_t)AV_RL16(buf-4));
 
         /* regular bitstream */
-        if (state == DCA_SYNCWORD_CORE_BE)
+        if (state == DCA_SYNCWORD_CORE_BE &&
+            (bytestream_get_be16(&bufp) & 0xFC00) == 0xFC00)
             marker = 0;
-        else if (state == DCA_SYNCWORD_CORE_LE)
+        else if (state == DCA_SYNCWORD_CORE_LE &&
+                 (bytestream_get_be16(&bufp) & 0x00FC) == 0x00FC)
             marker = 1;
 
         /* 14 bits big-endian bitstream */



More information about the ffmpeg-cvslog mailing list