[FFmpeg-cvslog] latmenc: Check for LOAS sync word

James Almer git at videolan.org
Mon Feb 25 12:12:11 CET 2013


ffmpeg | branch: release/1.1 | James Almer <jamrial at gmail.com> | Wed Jan 16 18:27:14 2013 -0300| [8d3bc52acd647cbaffe250308bf548f495916520] | committer: James Almer

latmenc: Check for LOAS sync word

Write the packet unaltered if found.

Fixes ticket #1917

Signed-off-by: James Almer <jamrial at gmail.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit b454c64e0311d813fef9c22cf34f83c2ce77ab23)

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

 libavformat/latmenc.c |    9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/libavformat/latmenc.c b/libavformat/latmenc.c
index 233eab8..9dfb4e4 100644
--- a/libavformat/latmenc.c
+++ b/libavformat/latmenc.c
@@ -156,6 +156,15 @@ static int latm_write_packet(AVFormatContext *s, AVPacket *pkt)
         av_log(s, AV_LOG_ERROR, "ADTS header detected - ADTS will not be incorrectly muxed into LATM\n");
         return AVERROR_INVALIDDATA;
     }
+
+    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);
+        else
+            return AVERROR_INVALIDDATA;
+    }
+
     if (pkt->size > 0x1fff)
         goto too_large;
 



More information about the ffmpeg-cvslog mailing list