[FFmpeg-devel] [PATCH] latmenc: Check for LOAS sync word

James Almer jamrial at gmail.com
Wed Jan 16 20:50:19 CET 2013


Write the packet unaltered if found.

Fixes ticket #1917

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavformat/latmenc.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/libavformat/latmenc.c b/libavformat/latmenc.c
index 233eab8..d6bdf62 100644
--- a/libavformat/latmenc.c
+++ b/libavformat/latmenc.c
@@ -152,8 +152,14 @@ static int latm_write_packet(AVFormatContext *s, AVPacket *pkt)
     if (s->streams[0]->codec->codec_id == AV_CODEC_ID_AAC_LATM)
         return ff_raw_write_packet(s, pkt);
 
-    if (pkt->size > 2 && pkt->data[0] == 0xff && (pkt->data[1] >> 4) == 0xf) {
+    if (!s->streams[0]->codec->extradata) {
+        if (pkt->size > 2 && pkt->data[0] == 0x56 && (pkt->data[1] >> 4) == 0xe &&
+            (AV_RB16(pkt->data + 1) & 0x1FFF) + 3 == pkt->size)
+            return ff_raw_write_packet(s, pkt);
+
+    if (pkt->size > 2 && pkt->data[0] == 0xff && (pkt->data[1] >> 4) == 0xf)
         av_log(s, AV_LOG_ERROR, "ADTS header detected - ADTS will not be incorrectly muxed into LATM\n");
+
         return AVERROR_INVALIDDATA;
     }
     if (pkt->size > 0x1fff)
-- 
1.7.8.6



More information about the ffmpeg-devel mailing list