mirror of https://git.ffmpeg.org/ffmpeg.git
In mov and flv muxer, check aac bitstream validity.
This commit is contained in:
parent
77f6b4d58e
commit
c22f2527ed
|
@ -18,6 +18,8 @@
|
||||||
* License along with FFmpeg; if not, write to the Free Software
|
* License along with FFmpeg; if not, write to the Free Software
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "libavutil/intreadwrite.h"
|
||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
#include "flv.h"
|
#include "flv.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
@ -402,6 +404,10 @@ static int flv_write_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
}
|
}
|
||||||
if (!flv->delay && pkt->dts < 0)
|
if (!flv->delay && pkt->dts < 0)
|
||||||
flv->delay = -pkt->dts;
|
flv->delay = -pkt->dts;
|
||||||
|
} else if (enc->codec_id == CODEC_ID_AAC && pkt->size > 2 &&
|
||||||
|
(AV_RB16(pkt->data) & 0xfff0) == 0xfff0) {
|
||||||
|
av_log(s, AV_LOG_ERROR, "malformated aac bitstream, use -absf aac_adtstoasc\n");
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ts = pkt->dts + flv->delay; // add delay to force positive dts
|
ts = pkt->dts + flv->delay; // add delay to force positive dts
|
||||||
|
|
|
@ -1993,6 +1993,10 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
/* from x264 or from bytestream h264 */
|
/* from x264 or from bytestream h264 */
|
||||||
/* nal reformating needed */
|
/* nal reformating needed */
|
||||||
size = ff_avc_parse_nal_units(pb, pkt->data, pkt->size);
|
size = ff_avc_parse_nal_units(pb, pkt->data, pkt->size);
|
||||||
|
} else if (enc->codec_id == CODEC_ID_AAC && pkt->size > 2 &&
|
||||||
|
(AV_RB16(pkt->data) & 0xfff0) == 0xfff0) {
|
||||||
|
av_log(s, AV_LOG_ERROR, "malformated aac bitstream, use -absf aac_adtstoasc\n");
|
||||||
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
avio_write(pb, pkt->data, size);
|
avio_write(pb, pkt->data, size);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue