yes, maybe CDVDAudioCodecFFmpeg::ConvertToFloat() should be improved; from my avcodec.h:

```
#define AV_NUM_DATA_POINTERS 8
    /**
     * pointer to the picture/channel planes.
     * This might be different from the first allocated byte
     * - encoding: Set by user
     * - decoding: set by AVCodecContext.get_buffer()
     */
    uint8_t *data[AV_NUM_DATA_POINTERS];

    /**
     * pointers to the data planes/channels.
     *
     * For video, this should simply point to data[].
     *
     * For planar audio, each channel has a separate data pointer, and
     * linesize[0] contains the size of each channel buffer.
     * For packed audio, there is just one data pointer, and linesize[0]
     * contains the total size of the buffer for all channels.
     *
     * Note: Both data and extended_data will always be set by get_buffer(),
     * but for planar audio with more channels that can fit in data,
     * extended_data must be used by the decoder in order to access all
     * channels.
     *
     * encoding: unused
     * decoding: set by AVCodecContext.get_buffer()
     */
    uint8_t **extended_data;

```

so, actually, ConvertToFloat will likely fail for audio with more than 8 channels. IIRC this function will be called for AAC audio, so if you can find such a file with more than 8 channels you can try :)

Though, the comment is something different: for packed audio, it will only try to access (&input)[0] = input, it would be wrong to feed it with something that is not a pointer array for planar audio.