mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-21 16:45:44 +00:00
40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
#include "Sound/FlacDecoder.h"
|
|
|
|
#include <catch2/catch_test_macros.hpp>
|
|
#include <catch2/generators/catch_generators.hpp>
|
|
|
|
namespace flac
|
|
{
|
|
TEST_CASE("FlacDecoder: Ensure properly decodes flac stream info", "[sound][flac]")
|
|
{
|
|
// clang-format off
|
|
constexpr uint8_t testData[]
|
|
{
|
|
// Magic
|
|
'f', 'L', 'a', 'C',
|
|
|
|
// Block header
|
|
0x00, 0x00, 0x00, 0x22,
|
|
|
|
// StreamInfo block
|
|
0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xB8, 0x02, 0xF0, 0x00,
|
|
0x02, 0xF9, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
// clang-format on
|
|
|
|
FlacMetaData metaData;
|
|
const auto result = GetFlacMetaData(testData, sizeof(testData), metaData);
|
|
|
|
REQUIRE(result == true);
|
|
REQUIRE(metaData.m_minimum_block_size == 1024);
|
|
REQUIRE(metaData.m_maximum_block_size == 1024);
|
|
REQUIRE(metaData.m_minimum_frame_size == 0);
|
|
REQUIRE(metaData.m_maximum_frame_size == 0);
|
|
REQUIRE(metaData.m_sample_rate == 48000);
|
|
REQUIRE(metaData.m_number_of_channels == 2);
|
|
REQUIRE(metaData.m_bits_per_sample == 16);
|
|
REQUIRE(metaData.m_total_samples == 194870);
|
|
}
|
|
} // namespace flac
|