Applying the aac_adtstoasc bitstream filter unconditionally could destroy AAC audio streams on FFmpeg 3.2+
==========================================================================================================
`processor/ffmpeg.py` uses the `aac_adtstoasc` bitstream filter of FFmpeg unconditionally in several places, e.g., `ffmpeg_concat_mp4_to_mp4`. I noticed that this is destroying AAC audio streams with FFmpeg 3.2 or later. That is, when I try to play the concatenated audio (with mpv), the audio cannot be decoded:
```
[ffmpeg/audio] aac: Number of scalefactor bands in group (45) exceeds limit (41).
Error decoding audio.
```
A specific example is https://v.qq.com/x/cover/8w2h5lfps31j3ou.html. The problem can be boiled down to each single audio segment, so I extracted the audio of the first segment for testing: https://www.princeton.edu/~zhimingw/sample.m4a (3611108 bytes, md5: `3860640d7b9b9253a5278b539e559072`). In case your package manager doesn't ship FFmpeg 3.2 yet, you can find static Linux builds of v3.2 and latest git snapshot at https://www.johnvansickle.com/ffmpeg/. With FFmpeg 3.2+ and `sample.m4a` at hand, simply
```
ffmpeg -y -i sample.m4a -c copy -bsf:a aac_adtstoasc out.m4a
```
and try
```
ffprobe -show_frames out.m4a
```
to see the decoding errors. The same can't be reproduced on FFmpeg 3.1.5.
It's not clear to me whether this is an FFmpeg regression — will need to invest a bit of time into this. It very well could be, but applying the filter to a non-ADTS stream is kind of undefined to begin with. One thing is clear though: **it's no longer safe to apply the `aac_adtstoasc` bitstream filter unconditionally.**