Improve coverage for RAW AVC protocol.

pull/1568/head
winlin 5 years ago
parent 23a1674ce0
commit 4a5323b054

@ -449,3 +449,125 @@ VOID TEST(SrsAVCTest, AACMuxSequenceHeader)
}
}
VOID TEST(SrsAVCTest, AACMuxToFLV)
{
srs_error_t err;
// For MP3 frame.
if (true) {
SrsRawAacStream h;
string frame("Hello"); SrsRawAacStreamCodec codec;
char* flv = NULL; int nb_flv = 0;
codec.sound_format = SrsAudioCodecIdMP3;
codec.sound_rate = 0; codec.sound_size = 1; codec.sound_type = 1;
codec.aac_packet_type = 4;
HELPER_ASSERT_SUCCESS(h.mux_aac2flv((char*)frame.data(), frame.length(), &codec, 0, &flv, &nb_flv));
EXPECT_EQ(6, nb_flv);
EXPECT_EQ(0x23, (uint8_t)flv[0]);
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+1,5).c_str());
srs_freep(flv);
}
// For Opus frame.
if (true) {
SrsRawAacStream h;
string frame("Hello"); SrsRawAacStreamCodec codec;
char* flv = NULL; int nb_flv = 0;
codec.sound_format = SrsAudioCodecIdOpus;
codec.sound_rate = 0; codec.sound_size = 1; codec.sound_type = 1;
codec.aac_packet_type = 4;
HELPER_ASSERT_SUCCESS(h.mux_aac2flv((char*)frame.data(), frame.length(), &codec, 0, &flv, &nb_flv));
EXPECT_EQ(6, nb_flv);
EXPECT_EQ(0xd3, (uint8_t)flv[0]);
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+1,5).c_str());
srs_freep(flv);
}
// For Speex frame.
if (true) {
SrsRawAacStream h;
string frame("Hello"); SrsRawAacStreamCodec codec;
char* flv = NULL; int nb_flv = 0;
codec.sound_format = SrsAudioCodecIdSpeex;
codec.sound_rate = 0; codec.sound_size = 1; codec.sound_type = 1;
codec.aac_packet_type = 4;
HELPER_ASSERT_SUCCESS(h.mux_aac2flv((char*)frame.data(), frame.length(), &codec, 0, &flv, &nb_flv));
EXPECT_EQ(6, nb_flv);
EXPECT_EQ(0xb3, (uint8_t)flv[0]);
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+1,5).c_str());
srs_freep(flv);
}
// For AAC frame.
if (true) {
SrsRawAacStream h;
string frame("Hello"); SrsRawAacStreamCodec codec;
char* flv = NULL; int nb_flv = 0;
codec.sound_format = SrsAudioCodecIdAAC;
codec.sound_rate = 0; codec.sound_size = 1; codec.sound_type = 1;
codec.aac_packet_type = 4;
HELPER_ASSERT_SUCCESS(h.mux_aac2flv((char*)frame.data(), frame.length(), &codec, 0, &flv, &nb_flv));
EXPECT_EQ(7, nb_flv);
EXPECT_EQ(0xa3, (uint8_t)flv[0]);
EXPECT_EQ(0x04, (uint8_t)flv[1]);
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
srs_freep(flv);
}
if (true) {
SrsRawAacStream h;
string frame("Hello"); SrsRawAacStreamCodec codec;
char* flv = NULL; int nb_flv = 0;
codec.sound_format = SrsAudioCodecIdAAC;
codec.sound_rate = 1; codec.sound_size = 1; codec.sound_type = 0;
codec.aac_packet_type = 4;
HELPER_ASSERT_SUCCESS(h.mux_aac2flv((char*)frame.data(), frame.length(), &codec, 0, &flv, &nb_flv));
EXPECT_EQ(7, nb_flv);
EXPECT_EQ(0xa6, (uint8_t)flv[0]);
EXPECT_EQ(0x04, (uint8_t)flv[1]);
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
srs_freep(flv);
}
if (true) {
SrsRawAacStream h;
string frame("Hello"); SrsRawAacStreamCodec codec;
char* flv = NULL; int nb_flv = 0;
codec.sound_format = SrsAudioCodecIdAAC;
codec.sound_rate = 1; codec.sound_size = 0; codec.sound_type = 1;
codec.aac_packet_type = 4;
HELPER_ASSERT_SUCCESS(h.mux_aac2flv((char*)frame.data(), frame.length(), &codec, 0, &flv, &nb_flv));
EXPECT_EQ(7, nb_flv);
EXPECT_EQ(0xa5, (uint8_t)flv[0]);
EXPECT_EQ(0x04, (uint8_t)flv[1]);
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
srs_freep(flv);
}
if (true) {
SrsRawAacStream h;
string frame("Hello"); SrsRawAacStreamCodec codec;
char* flv = NULL; int nb_flv = 0;
codec.sound_format = SrsAudioCodecIdAAC;
codec.sound_rate = 1; codec.sound_size = 1; codec.sound_type = 1;
codec.aac_packet_type = 4;
HELPER_ASSERT_SUCCESS(h.mux_aac2flv((char*)frame.data(), frame.length(), &codec, 0, &flv, &nb_flv));
EXPECT_EQ(7, nb_flv);
EXPECT_EQ(0xa7, (uint8_t)flv[0]);
EXPECT_EQ(0x04, (uint8_t)flv[1]);
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
srs_freep(flv);
}
if (true) {
SrsRawAacStream h;
string frame("Hello"); SrsRawAacStreamCodec codec;
char* flv = NULL; int nb_flv = 0;
codec.sound_format = SrsAudioCodecIdAAC;
codec.sound_rate = 3; codec.sound_size = 1; codec.sound_type = 1;
codec.aac_packet_type = 4;
HELPER_ASSERT_SUCCESS(h.mux_aac2flv((char*)frame.data(), frame.length(), &codec, 0, &flv, &nb_flv));
EXPECT_EQ(7, nb_flv);
EXPECT_EQ(0xaf, (uint8_t)flv[0]);
EXPECT_EQ(0x04, (uint8_t)flv[1]);
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
srs_freep(flv);
}
}

Loading…
Cancel
Save