On Tue, Sep 17, 2013 at 1:02 AM, Alex Converse <[email protected]>wrote:
> This does not add support for any error resiliance tools.
> ---
> Changelog | 1 +
> libavcodec/aacdec.c | 116
> +++++++++++++++++++++++++++++++++++++++++++++++-----
> 2 files changed, 107 insertions(+), 10 deletions(-)
>
> diff --git a/Changelog b/Changelog
> index 7e210a7..5261c18 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -33,6 +33,7 @@ version 10:
> - avconv -t option can now be used for inputs, to limit the duration of
> data read from an input file
> - incomplete Voxware MetaSound decoder
> +- Error Resiliant AAC syntax (ER AAC LC) decoding
>
>
> version 9:
> diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
> index 62246b6..4a18946 100644
> --- a/libavcodec/aacdec.c
> +++ b/libavcodec/aacdec.c
> @@ -706,7 +706,7 @@ static int decode_ga_specific_config(AACContext *ac,
> AVCodecContext *avctx,
> MPEG4AudioConfig *m4ac,
> int channel_config)
> {
> - int extension_flag, ret;
> + int extension_flag, ret, ep_config, res_flags;
> uint8_t layout_map[MAX_ELEM_ID*4][3];
> int tags = 0;
>
> @@ -752,14 +752,30 @@ static int decode_ga_specific_config(AACContext *ac,
> AVCodecContext *avctx,
> case AOT_ER_AAC_LTP:
> case AOT_ER_AAC_SCALABLE:
> case AOT_ER_AAC_LD:
> - skip_bits(gb, 3); /* aacSectionDataResilienceFlag
> - * aacScalefactorDataResilienceFlag
> - * aacSpectralDataResilienceFlag
> - */
> + res_flags = get_bits(gb, 3);
> + if (res_flags) {
> + av_log(avctx, AV_LOG_ERROR,
> + "AAC data resiliance not supported (flags %x)\n",
> + res_flags);
> + return AVERROR_PATCHWELCOME;
> + }
> break;
> }
> skip_bits1(gb); // extensionFlag3 (TBD in version 3)
>
Hm, does this happen in normal aac streams?
The code previously completely ignored the flags, so whats the worst thing
that can happen if the flags are set and you don't support it? Does it
require completely bailing out and stopping decoding?
- Hendrik
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel