"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "libavcodec/aacdec.c" between
libav-12.tar.gz and libav-12.1.tar.gz

About: libav provides cross-platform tools ("avconv") and libraries to convert, manipulate and stream a wide range of multimedia (audio and video) formats and protocols.

aacdec.c  (libav-12):aacdec.c  (libav-12.1)
skipping to change at line 3230 skipping to change at line 3230
GetBitContext *gb) GetBitContext *gb)
{ {
int err; int err;
uint8_t use_same_mux = get_bits(gb, 1); uint8_t use_same_mux = get_bits(gb, 1);
if (!use_same_mux) { if (!use_same_mux) {
if ((err = read_stream_mux_config(latmctx, gb)) < 0) if ((err = read_stream_mux_config(latmctx, gb)) < 0)
return err; return err;
} else if (!latmctx->aac_ctx.avctx->extradata) { } else if (!latmctx->aac_ctx.avctx->extradata) {
av_log(latmctx->aac_ctx.avctx, AV_LOG_DEBUG, av_log(latmctx->aac_ctx.avctx, AV_LOG_DEBUG,
"no decoder config found\n"); "no decoder config found\n");
return AVERROR(EAGAIN); return 1;
} }
if (latmctx->audio_mux_version_A == 0) { if (latmctx->audio_mux_version_A == 0) {
int mux_slot_length_bytes = read_payload_length_info(latmctx, gb); int mux_slot_length_bytes = read_payload_length_info(latmctx, gb);
if (mux_slot_length_bytes * 8 > get_bits_left(gb)) { if (mux_slot_length_bytes * 8 > get_bits_left(gb)) {
av_log(latmctx->aac_ctx.avctx, AV_LOG_ERROR, "incomplete frame\n"); av_log(latmctx->aac_ctx.avctx, AV_LOG_ERROR, "incomplete frame\n");
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} else if (mux_slot_length_bytes * 8 + 256 < get_bits_left(gb)) { } else if (mux_slot_length_bytes * 8 + 256 < get_bits_left(gb)) {
av_log(latmctx->aac_ctx.avctx, AV_LOG_ERROR, av_log(latmctx->aac_ctx.avctx, AV_LOG_ERROR,
"frame length mismatch %d << %d\n", "frame length mismatch %d << %d\n",
mux_slot_length_bytes * 8, get_bits_left(gb)); mux_slot_length_bytes * 8, get_bits_left(gb));
skipping to change at line 3266 skipping to change at line 3266
// check for LOAS sync word // check for LOAS sync word
if (get_bits(&gb, 11) != LOAS_SYNC_WORD) if (get_bits(&gb, 11) != LOAS_SYNC_WORD)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
muxlength = get_bits(&gb, 13) + 3; muxlength = get_bits(&gb, 13) + 3;
// not enough data, the parser should have sorted this // not enough data, the parser should have sorted this
if (muxlength > avpkt->size) if (muxlength > avpkt->size)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
if ((err = read_audio_mux_element(latmctx, &gb)) < 0) if ((err = read_audio_mux_element(latmctx, &gb)))
return err; return (err < 0) ? err : avpkt->size;
if (!latmctx->initialized) { if (!latmctx->initialized) {
if (!avctx->extradata) { if (!avctx->extradata) {
*got_frame_ptr = 0; *got_frame_ptr = 0;
return avpkt->size; return avpkt->size;
} else { } else {
push_output_configuration(&latmctx->aac_ctx); push_output_configuration(&latmctx->aac_ctx);
if ((err = decode_audio_specific_config( if ((err = decode_audio_specific_config(
&latmctx->aac_ctx, avctx, &latmctx->aac_ctx.oc[1].m4ac, &latmctx->aac_ctx, avctx, &latmctx->aac_ctx.oc[1].m4ac,
avctx->extradata, avctx->extradata_size*8, 1)) < 0) { avctx->extradata, avctx->extradata_size*8, 1)) < 0) {
 End of changes. 2 change blocks. 
3 lines changed or deleted 3 lines changed or added

Home  |  About  |  All  |  Newest  |  Fossies Dox  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTPS