[FFmpeg-trac] #5973(ffmpeg:open): Regression: aac_adtstoasc bitstream filter leads to malformed AAC stream

FFmpeg trac at avcodec.org
Tue Nov 22 02:27:00 EET 2016


#5973: Regression: aac_adtstoasc bitstream filter leads to malformed AAC stream
------------------------------------+----------------------------------
             Reporter:  zmwangx     |                    Owner:
                 Type:  defect      |                   Status:  open
             Priority:  important   |                Component:  ffmpeg
              Version:  git-master  |               Resolution:
             Keywords:  regression  |               Blocked By:
             Blocking:              |  Reproduced by developer:  1
Analyzed by developer:  0           |
------------------------------------+----------------------------------

Comment (by zmwangx):

 Replying to [comment:2 cehoyos]:

 > Then why did you provide console output for an old version?

 Sorry, no particular reason, they're the same — the problematic part of
 `ffmpeg.c` hasn't changed since 5ef1959, and I forgot to use output from
 the head build when creating the ticket. Here they are, if you insist:

 {{{
 % ffmpeg -y -i aac_adtstoasc_bsf_breaks_aac_stream.m4a -c copy -bsf:a
 aac_adtstoasc filtered.m4a
 ffmpeg version N-82595-gf242e0a Copyright (c) 2000-2016 the FFmpeg
 developers
   built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
   configuration:
   libavutil      55. 40.100 / 55. 40.100
   libavcodec     57. 66.106 / 57. 66.106
   libavformat    57. 58.100 / 57. 58.100
   libavdevice    57.  2.100 / 57.  2.100
   libavfilter     6. 67.100 /  6. 67.100
   libswscale      4.  3.101 /  4.  3.101
   libswresample   2.  4.100 /  2.  4.100
 Splitting the commandline.
 Reading option '-y' ... matched as option 'y' (overwrite output files)
 with argument '1'.
 Reading option '-i' ... matched as input file with argument
 'aac_adtstoasc_bsf_breaks_aac_stream.m4a'.
 Reading option '-c' ... matched as option 'c' (codec name) with argument
 'copy'.
 Reading option '-bsf:a' ... matched as option 'bsf' (A comma-separated
 list of bitstream filters) with argument 'aac_adtstoasc'.
 Reading option 'filtered.m4a' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option y (overwrite output files) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input file
 aac_adtstoasc_bsf_breaks_aac_stream.m4a.
 Successfully parsed a group of options.
 Opening an input file: aac_adtstoasc_bsf_breaks_aac_stream.m4a.
 [file @ 0x7fda92f00000] Setting default whitelist 'file,crypto'
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fda93004000] Format mov,mp4,m4a,3gp,3g2,mj2
 probed with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fda93004000] ISO: File Type Major Brand: M4A
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fda93004000] Unknown dref type 0x08206c7275
 size 12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fda93004000] Processing st: 0, edit list 0 -
 media time: 0, duration: 10272
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fda93004000] Before
 avformat_find_stream_info() pos: 2499 bytes read:2499 seeks:0 nb_streams:1
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fda93004000] All info found
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fda93004000] After
 avformat_find_stream_info() pos: 78 bytes read:2499 seeks:0 frames:1
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
 'aac_adtstoasc_bsf_breaks_aac_stream.m4a':
   Metadata:
     major_brand     : M4A
     minor_version   : 512
     compatible_brands: isomiso2
     encoder         : Lavf57.56.100
   Duration: 00:00:00.21, start: 0.000000, bitrate: 93 kb/s
     Stream #0:0(und), 1, 1/48000: Audio: aac (HE-AAC) (mp4a / 0x6134706D),
 48000 Hz, stereo, fltp, 65 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 Successfully opened the file.
 Parsing a group of options: output file filtered.m4a.
 Applying option c (codec name) with argument copy.
 Applying option bsf:a (A comma-separated list of bitstream filters) with
 argument aac_adtstoasc.
 Successfully parsed a group of options.
 Opening an output file: filtered.m4a.
 [file @ 0x7fda92e00f80] Setting default whitelist 'file,crypto'
 Successfully opened the file.
 Output #0, ipod, to 'filtered.m4a':
   Metadata:
     major_brand     : M4A
     minor_version   : 512
     compatible_brands: isomiso2
     encoder         : Lavf57.58.100
     Stream #0:0(und), 0, 1/48000: Audio: aac (HE-AAC) (mp4a / 0x6134706D),
 48000 Hz, stereo, fltp, 65 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 Press [q] to stop, [?] for help
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 No more output streams to write to, finishing.
 size=       2kB time=00:00:00.17 bitrate= 117.0kbits/s speed=1.03e+03x
 video:0kB audio:2kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 43.721199%
 Input file #0 (aac_adtstoasc_bsf_breaks_aac_stream.m4a):
   Input stream #0:0 (audio): 5 packets read (1736 bytes);
   Total: 5 packets (1736 bytes) demuxed
 Output file #0 (filtered.m4a):
   Output stream #0:0 (audio): 5 packets muxed (1736 bytes);
   Total: 5 packets (1736 bytes) muxed
 0 frames successfully decoded, 0 decoding errors
 [AVIOContext @ 0x7fda92e010a0] Statistics: 30 seeks, 28 writeouts
 [AVIOContext @ 0x7fda92f001c0] Statistics: 2499 bytes read, 0 seeks
 }}}

 {{{
 % ffprobe -show_frames filtered.m4a
 ffprobe version N-82595-gf242e0a Copyright (c) 2007-2016 the FFmpeg
 developers
   built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
   configuration:
   libavutil      55. 40.100 / 55. 40.100
   libavcodec     57. 66.106 / 57. 66.106
   libavformat    57. 58.100 / 57. 58.100
   libavdevice    57.  2.100 / 57.  2.100
   libavfilter     6. 67.100 /  6. 67.100
   libswscale      4.  3.101 /  4.  3.101
   libswresample   2.  4.100 /  2.  4.100
 [file @ 0x7feaf8c01280] Setting default whitelist 'file,crypto'
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7feaf9000a00] Format mov,mp4,m4a,3gp,3g2,mj2
 probed with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7feaf9000a00] ISO: File Type Major Brand: M4A
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7feaf9000a00] Unknown dref type 0x08206c7275
 size 12
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7feaf9000a00] Processing st: 0, edit list 0 -
 media time: 0, duration: 10272
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7feaf9000a00] Before
 avformat_find_stream_info() pos: 2495 bytes read:2495 seeks:0 nb_streams:1
 [aac @ 0x7feafa811a00] noise_facs_q 254 is invalid
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7feaf9000a00] All info found
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7feaf9000a00] After
 avformat_find_stream_info() pos: 78 bytes read:2495 seeks:0 frames:1
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'filtered.m4a':
   Metadata:
     major_brand     : M4A
     minor_version   : 512
     compatible_brands: isomiso2
     encoder         : Lavf57.58.100
   Duration: 00:00:00.21, start: 0.000000, bitrate: 93 kb/s
     Stream #0:0(und), 1, 1/48000: Audio: aac (HE-AAC) (mp4a / 0x6134706D),
 96000 Hz, stereo, fltp, 64 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 Processing read interval id:0 start:N/A end:N/A
 [aac @ 0x7feafa801000] Number of scalefactor bands in group (45) exceeds
 limit (41).
 [aac @ 0x7feafa801000] Number of scalefactor bands in group (45) exceeds
 limit (41).
 [aac @ 0x7feafa801000] Number of scalefactor bands in group (45) exceeds
 limit (41).
 [aac @ 0x7feafa801000] Number of scalefactor bands in group (45) exceeds
 limit (41).
 [aac @ 0x7feafa801000] Number of scalefactor bands in group (14) exceeds
 limit (12).
 [AVIOContext @ 0x7feaf8c013c0] Statistics: 2495 bytes read, 0 seeks
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/5973#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list