From b5fcfface151f778f296184522940af379a3ecf3 Mon Sep 17 00:00:00 2001 From: Alexander Kojevnikov Date: Wed, 27 Mar 2013 09:00:21 -0700 Subject: [PATCH] tests: AAC demuxing/decoding --- src/spek-audio.cc | 5 ++++- tests/samples/2ch-44100Hz-q100.m4a | Bin 0 -> 3513 bytes tests/test-audio-info.cc | 2 ++ tests/test-audio-read.cc | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 tests/samples/2ch-44100Hz-q100.m4a diff --git a/src/spek-audio.cc b/src/spek-audio.cc index e519b9c..f1daebb 100644 --- a/src/spek-audio.cc +++ b/src/spek-audio.cc @@ -134,9 +134,12 @@ std::unique_ptr Audio::open(const std::string& file_name) bits_per_sample = codec_context->bits_per_raw_sample; if (!bits_per_sample) { // APE uses bpcs, FLAC uses bprs. - // TODO: old comment, verify bits_per_sample = codec_context->bits_per_coded_sample; } + if (codec_context->codec_id == AV_CODEC_ID_AAC) { + // AAC decoder sets both bps and bitrate. + bits_per_sample = 0; + } if (bits_per_sample) { bit_rate = 0; } diff --git a/tests/samples/2ch-44100Hz-q100.m4a b/tests/samples/2ch-44100Hz-q100.m4a new file mode 100644 index 0000000000000000000000000000000000000000..deae3a148ab881330411620cfa9abf7a2634a3a0 GIT binary patch literal 3513 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 literal 0 HcmV?d00001 diff --git a/tests/test-audio-info.cc b/tests/test-audio-info.cc index aa55852..196c26b 100644 --- a/tests/test-audio-info.cc +++ b/tests/test-audio-info.cc @@ -50,6 +50,7 @@ static void test_file(const std::string& name, const FileInfo& info) void test_audio_info() { const double MP3_T = 5.0 * 1152 / 44100; // 5 frames * duration per mp3 frame + const double M4A_T = (10240 + 628) / 2.0 / 44100; std::map files = { {"1ch-96000Hz-24bps.flac", {"FLAC", 0, 96000, 24, 1, 0.1}}, @@ -63,6 +64,7 @@ void test_audio_info() {"2ch-44100Hz-320cbr.mp3", {"MP3", 320000, 44100, 0, 2, MP3_T}}, {"2ch-44100Hz-V0.mp3", {"MP3", 201329, 44100, 0, 2, MP3_T}}, {"2ch-44100Hz-V2.mp3", {"MP3", 150124, 44100, 0, 2, MP3_T}}, + {"2ch-44100Hz-q100.m4a", {"AAC", 159649, 44100, 0, 2, M4A_T}}, {"2ch-44100Hz-q5.ogg", {"Vorbis", 160000, 44100, 0, 2, 0.1}}, }; for (const auto& item : files) { diff --git a/tests/test-audio-read.cc b/tests/test-audio-read.cc index 503515c..c63257c 100644 --- a/tests/test-audio-read.cc +++ b/tests/test-audio-read.cc @@ -58,6 +58,7 @@ void test_audio_read() {"2ch-44100Hz-320cbr.mp3", 2 * 1152 * 4 + 94}, {"2ch-44100Hz-V0.mp3", 2 * 1152 * 4 + 94}, {"2ch-44100Hz-V2.mp3", 2 * 1152 * 4 + 94}, + {"2ch-44100Hz-q100.m4a", 10240}, {"2ch-44100Hz-q5.ogg", 2 * 1024 * 4 + 1152}, }; for (const auto& item : files) {