[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