examples: Make examples work with SCL

This commit is contained in:
Joni Räsänen 2022-03-31 15:15:55 +03:00
parent 43d186a895
commit ef887b1025
6 changed files with 32 additions and 2 deletions

View File

@ -70,8 +70,13 @@ int main(void)
{
std::cout << "Sending frame " << i + 1 << '/' << AMOUNT_OF_PACKETS << std::endl;
// uvgRTP mandates the existance of NAL units so we fake some
std::unique_ptr<uint8_t[]> dummy_frame =
std::unique_ptr<uint8_t[]>(new uint8_t[PAYLOAD_LEN]);
memset(dummy_frame.get(), 'a', PAYLOAD_LEN); // payload
memset(dummy_frame.get(), 0, 3);
memset(dummy_frame.get() + 3, 1, 1);
memset(dummy_frame.get() + 4, 1, (19 << 1)); // Intra frame NAL type
if (send->push_frame(std::move(dummy_frame), PAYLOAD_LEN, RTP_NO_FLAGS) != RTP_OK)
{

View File

@ -92,6 +92,10 @@ int main(void)
for (int i = 0; i < SEND_TEST_PACKETS; ++i)
{
auto buffer = std::unique_ptr<uint8_t[]>(new uint8_t[PAYLOAD_LEN]);
memset(buffer.get(), 'a', PAYLOAD_LEN);
memset(buffer.get(), 0, 3);
memset(buffer.get() + 3, 1, 1);
memset(buffer.get() + 4, 1, (19 << 1)); // Intra frame
if ((i+1)%10 == 0 || i == 0) // print every 10 frames and first
std::cout << "Sending frame " << i + 1 << '/' << SEND_TEST_PACKETS << std::endl;

View File

@ -75,6 +75,11 @@ int main(void)
for (int i = 0; i < SEND_TEST_PACKETS; ++i)
{
auto buffer = std::unique_ptr<uint8_t[]>(new uint8_t[PAYLOAD_LEN]);
memset(buffer.get(), 'a', PAYLOAD_LEN);
memset(buffer.get(), 0, 3); // start code prefix
memset(buffer.get() + 3, 1, 1);
memset(buffer.get() + 4, 1, (19 << 1)); // Intra frame
// fake timestamp. This way the receiver can play the frames at a lower pace, even if
// we generate them really fast.

View File

@ -82,6 +82,10 @@ int main(void)
uint8_t buffer[PAYLOAD_LEN] = { 0 };
memset(buffer, 'a', PAYLOAD_LEN);
memset(buffer, 0, 3);
memset(buffer + 3, 1, 1);
memset(buffer + 4, 1, (19 << 1)); // Intra frame
std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();
for (unsigned int i = 0; i < SEND_TEST_PACKETS; ++i)

View File

@ -53,6 +53,10 @@ int main(void)
for (int i = 0; i < AMOUNT_OF_TEST_PACKETS; ++i)
{
std::unique_ptr<uint8_t[]> dummy_frame = std::unique_ptr<uint8_t[]>(new uint8_t[PAYLOAD_LEN]);
memset(dummy_frame.get(), 'a', PAYLOAD_LEN); // NAL payload
memset(dummy_frame.get(), 0, 3);
memset(dummy_frame.get() + 3, 1, 1);
memset(dummy_frame.get() + 4, 1, (19 << 1)); // Intra frame NAL type
if ((i+1)%10 == 0 || i == 0) // print every 10 frames and first
std::cout << "Sending frame " << i + 1 << '/' << AMOUNT_OF_TEST_PACKETS << std::endl;

View File

@ -183,9 +183,17 @@ void sender_function(uvgrtp::session* sender_session, int flags, std::shared_ptr
print_mutex->unlock();
*/
std::unique_ptr<uint8_t[]> dummy_audio_frame = std::unique_ptr<uint8_t[]>(new uint8_t[payload_size]);
std::unique_ptr<uint8_t[]> dummy_frame = std::unique_ptr<uint8_t[]>(new uint8_t[payload_size]);
if (sender_audio_strm->push_frame(std::move(dummy_audio_frame), payload_size, RTP_NO_FLAGS) != RTP_OK)
if (format == RTP_FORMAT_H265 && payload_size >= 5)
{
memset(dummy_frame.get(), 'a', payload_size); // data
memset(dummy_frame.get(), 0, 3);
memset(dummy_frame.get() + 3, 1, 1);
memset(dummy_frame.get() + 4, 1, (19 << 1)); // Intra frame NAL type
}
if (sender_audio_strm->push_frame(std::move(dummy_frame), payload_size, RTP_NO_FLAGS) != RTP_OK)
{
std::cerr << "Failed to send frame" << std::endl;
}