mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Improve coverage for RAW AVC protocol.
This commit is contained in:
parent
23a1674ce0
commit
4a5323b054
1 changed files with 122 additions and 0 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue