fix(player): show AAC instead of mp4a.40.2 in ExoPlayer track labels
ExoPlayer reports RFC 6381 codec IDs (mp4a.40.2, ec-3, dtsc) where mpv reports ffmpeg names, so the audio track picker and performance overlay showed raw identifiers instead of friendly names on the ExoPlayer path. Normalize RFC 6381 audio IDs in CodecUtils.formatAudioCodec, route the performance overlay's audio codec through it, and cover the video IDs (hvc1/hev1, av01, vp09) that fell through the overlay's matcher. close #1899
This commit is contained in:
@@ -162,6 +162,29 @@ void main() {
|
||||
expect(CodecUtils.formatAudioCodec('dts-hd'), 'DTS-HD');
|
||||
});
|
||||
|
||||
test('RFC 6381 codec IDs from ExoPlayer map to friendly names', () {
|
||||
// AAC-LC as reported for MP4/HLS direct play (#1899).
|
||||
expect(CodecUtils.formatAudioCodec('mp4a.40.2'), 'AAC');
|
||||
expect(CodecUtils.formatAudioCodec('MP4A.40.2'), 'AAC');
|
||||
expect(CodecUtils.formatAudioCodec('mp4a.40.5'), 'AAC');
|
||||
expect(CodecUtils.formatAudioCodec('mp4a.40.29'), 'AAC');
|
||||
expect(CodecUtils.formatAudioCodec('mp4a'), 'AAC');
|
||||
// MPEG layer audio object types under the mp4a prefix.
|
||||
expect(CodecUtils.formatAudioCodec('mp4a.69'), 'MP3');
|
||||
expect(CodecUtils.formatAudioCodec('mp4a.6B'), 'MP3');
|
||||
// Dolby and DTS sample entry names.
|
||||
expect(CodecUtils.formatAudioCodec('ac-3'), 'AC3');
|
||||
expect(CodecUtils.formatAudioCodec('ec-3'), 'E-AC3');
|
||||
expect(CodecUtils.formatAudioCodec('ac-4'), 'AC4');
|
||||
expect(CodecUtils.formatAudioCodec('ac-4.02.01.01'), 'AC4');
|
||||
expect(CodecUtils.formatAudioCodec('mlpa'), 'TrueHD');
|
||||
expect(CodecUtils.formatAudioCodec('dtsc'), 'DTS');
|
||||
expect(CodecUtils.formatAudioCodec('dtse'), 'DTS');
|
||||
expect(CodecUtils.formatAudioCodec('dtsh'), 'DTS-HD');
|
||||
expect(CodecUtils.formatAudioCodec('dtsl'), 'DTS-HD');
|
||||
expect(CodecUtils.formatAudioCodec('dtsx'), 'DTS:X');
|
||||
});
|
||||
|
||||
test('mp3 aliases', () {
|
||||
expect(CodecUtils.formatAudioCodec('mp3'), 'MP3');
|
||||
expect(CodecUtils.formatAudioCodec('mp3float'), 'MP3');
|
||||
|
||||
Reference in New Issue
Block a user