|
|
|
|
@ -36,6 +36,9 @@ int main(void) {
|
|
|
|
|
REQUIRE(in.duration_ms == 1000 && strlen(in.waveform) == 100 && !attachment_validate(&in)); |
|
|
|
|
FILE* file = fopen(path, "rb"); REQUIRE(file != NULL); |
|
|
|
|
uint8_t header[12]; REQUIRE(fread(header, 1, 12, file) == 12); |
|
|
|
|
uint32_t magic, rate; uint16_t channels, frame; |
|
|
|
|
memcpy(&magic, header, 4); memcpy(&rate, header + 4, 4); memcpy(&channels, header + 8, 2); memcpy(&frame, header + 10, 2); |
|
|
|
|
REQUIRE(magic == 0x5355504f && rate == 48000 && channels == 1 && frame == 960); |
|
|
|
|
opus_codec_decoder_t* decoder = opus_codec_decoder_create(48000, 1); REQUIRE(decoder != NULL); |
|
|
|
|
uint8_t packet[4000]; int16_t decoded[960]; unsigned frames = 0; |
|
|
|
|
for (;;) { |
|
|
|
|
@ -45,7 +48,11 @@ int main(void) {
|
|
|
|
|
REQUIRE(opus_codec_decode(decoder, packet, n, decoded, 960) == 960); frames++; |
|
|
|
|
} |
|
|
|
|
REQUIRE(frames == 50 && fgetc(file) == EOF); |
|
|
|
|
fclose(file); remove(path); opus_codec_decoder_destroy(decoder); u_free(pcm); |
|
|
|
|
fclose(file); remove(path); opus_codec_decoder_destroy(decoder); |
|
|
|
|
REQUIRE(voice_file_encode(pcm, 23999, 48000, 1, 1, path, &in) < 0); |
|
|
|
|
REQUIRE(voice_file_encode(pcm, 48000, 48000, 1, 3, path, &in) < 0); |
|
|
|
|
REQUIRE(voice_file_encode(pcm, 48000, 44100, 1, 1, path, &in) < 0); |
|
|
|
|
u_free(pcm); |
|
|
|
|
printf("test_attachment: strict metadata and shared Opus encode/decode PASS\n"); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|