#11600 closed defect (fixed)

Ffprobe/Ffmpeg with libfdk-aac doesn't recognize AAC-HE(v2) livestreams

Reported by: Radu Motrescu Owned by: Michael Niedermayer <michael@niedermayer.cc>
Priority: normal Component: undetermined
Version: git-master Keywords: AAC libfdk-aac aac
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
How to reproduce:

% ffprobe http://ais-edge78-181fm-dal03.cdnstream.com:7080/181-yachtrock_64k.aac
ffprobe version N-119615-gf414038779 Copyright (c) 2007-2025 the FFmpeg developers
  built with gcc 14 (GCC)
  configuration: --enable-libfdk-aac --enable-nonfree --enable-gpl --disable-x86asm --enable-libmp3lame --enable-ffplay
  libavutil      60.  2.100 / 60.  2.100
  libavcodec     62.  3.101 / 62.  3.101
  libavformat    62.  0.102 / 62.  0.102
  libavdevice    62.  0.100 / 62.  0.100
  libavfilter    11.  0.100 / 11.  0.100
  libswscale      9.  0.100 /  9.  0.100
  libswresample   6.  0.100 /  6.  0.100
Input #0, aac, from 'http://ais-edge78-181fm-dal03.cdnstream.com:7080/181-yachtrock_64k.aac':
  Metadata:
    icy-br          : 64
    icy-name        : 181.FM YACHT ROCK
    icy-private     : 0
    icy-pub         : 1
    icy-url         : http://www.181.fm
    StreamTitle     : Honey Drippers - Sea Of Love
  Duration: N/A, bitrate: 64 kb/s
  Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 64 kb/s

After some digging, I found that commit 64bb91fd3b5a00a8849531c7e8dd207f2a626096 introduced this line of code:
avctx->profile = hdr.object_type - 1;
which forces the profile to always be set to 1 (AAC-LC). Commenting this line in any version past the commit mentioned above fixes the issue. Commits before the one mentioned above correctly identify the livestream as AAC-HE.
It also affects the release 7.1.1.

Change History (1)

comment:1 by Michael Niedermayer <michael@niedermayer.cc>, 11 months ago

Owner: set to Michael Niedermayer <michael@niedermayer.cc>
Resolution: fixed
Status: newclosed

In f24474d/ffmpeg:

avcodec/aac_ac3_parser: do not override the profile set by the decoder

Parsing the ADTS header is not enough to detect HE-AAC v1/v2.

Regression since 64bb91fd3b5a00a8849531c7e8dd207f2a626096.

Fixes #11600

Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>

Note: See TracTickets for help on using tickets.