Skip to content

Commit

Permalink
Adding RGBA to depayloaders
Browse files Browse the repository at this point in the history
  • Loading branch information
ross-newman committed May 13, 2024
1 parent e6a7b98 commit ba74c34
Show file tree
Hide file tree
Showing 6 changed files with 467 additions and 78 deletions.
8 changes: 2 additions & 6 deletions src/h264/gst/open/rtp_h264_depayloader.cc
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,7 @@ namespace mediax::rtp::h264::gst::open {

RtpH264GstOpenDepayloader::RtpH264GstOpenDepayloader() {
// Set this for empty video buffers
if (rgb_) {
SetColourSpace(mediax::rtp::ColourspaceType::kColourspaceRgb24);
} else {
SetColourSpace(mediax::rtp::ColourspaceType::kColourspaceNv12);
}
SetColourSpace(mediax::rtp::ColourspaceType::kColourspaceRgba);
}

RtpH264GstOpenDepayloader::~RtpH264GstOpenDepayloader() = default;
Expand All @@ -51,7 +47,7 @@ RtpH264GstOpenDepayloader &RtpH264GstOpenDepayloader::operator=(const RtpH264Gst

void RtpH264GstOpenDepayloader::SetStreamInfo(const ::mediax::rtp::StreamInformation &stream_information) {
::mediax::rtp::RtpPortType &stream = GetStream();
stream.encoding = ::mediax::rtp::ColourspaceType::kColourspaceNv12;
stream.encoding = ::mediax::rtp::ColourspaceType::kColourspaceRgba;
stream.height = stream_information.height;
stream.width = stream_information.width;
stream.framerate = stream_information.framerate;
Expand Down
8 changes: 2 additions & 6 deletions src/h264/gst/vaapi/rtp_h264_depayloader.cc
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,7 @@ namespace mediax::rtp::h264::gst::vaapi {

RtpH264GstVaapiDepayloader::RtpH264GstVaapiDepayloader() {
// Set this for empty video buffers
if (rgb_) {
SetColourSpace(mediax::rtp::ColourspaceType::kColourspaceRgb24);
} else {
SetColourSpace(mediax::rtp::ColourspaceType::kColourspaceNv12);
}
SetColourSpace(mediax::rtp::ColourspaceType::kColourspaceRgba);
}

RtpH264GstVaapiDepayloader::~RtpH264GstVaapiDepayloader() = default;
Expand All @@ -51,7 +47,7 @@ RtpH264GstVaapiDepayloader &RtpH264GstVaapiDepayloader::operator=(const RtpH264G

void RtpH264GstVaapiDepayloader::SetStreamInfo(const ::mediax::rtp::StreamInformation &stream_information) {
::mediax::rtp::RtpPortType &stream = GetStream();
stream.encoding = ::mediax::rtp::ColourspaceType::kColourspaceNv12;
stream.encoding = ::mediax::rtp::ColourspaceType::kColourspaceRgba;
stream.height = stream_information.height;
stream.width = stream_information.width;
stream.framerate = stream_information.framerate;
Expand Down
4 changes: 3 additions & 1 deletion tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ set(SOURCES
rtp_av1_gst_depayloader_tests.cc
rtp_raw_depayloader_tests.cc
rtp_jpeg_gst_depayloader_tests.cc
rtp_h264_gst_depayloader_tests.cc
rtp_h264_gst_vaapi_depayloader_tests.cc
rtp_h264_gst_open_depayloader_tests.cc
rtp_h264_gst_nvidia_depayloader_tests.cc
sap_announcer_tests.cc
sap_listener_tests.cc
sap_utils_tests.cc
Expand Down
54 changes: 54 additions & 0 deletions tests/rtp_h264_gst_nvidia_depayloader_tests.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
//
// Copyright (c) 2023, DefenceX PTY LTD
//
// This file is part of the VivoeX project developed by DefenceX.
//
// Licensed under the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
// License. See the LICENSE file in the project root for full license details.
//
///
/// \file rtp_h264_depayloader_tests.cc
///

#include <glog/logging.h>
#include <gtest/gtest.h>
#include <unistd.h>

#include <chrono>
#include <thread>

#include "h264/gst/nvidia/rtp_h264_depayloader.h"
#include "rtp/rtp_utils.h"
#include "uncompressed/rtp_uncompressed_payloader.h"
#include "util_tests.h"
#include "utils/colourspace_cpu.h"

TEST(RtpH264VaapiDepayloaderTest, StateCheckNvidia) {
mediax::rtp::h264::gst::nvidia::RtpH264GstNvidiaDepayloader rtp;
mediax::rtp::StreamInformation stream_info = {"test_session_name",
"127.0.0.1",
5004,
640,
480,
25,
mediax::rtp::ColourspaceType::kColourspaceH264Part10,
false};

EXPECT_EQ(rtp.GetState(), ::mediax::rtp::StreamState::kClosed);
EXPECT_EQ(rtp.GetColourSpace(), ::mediax::rtp::ColourspaceType::kColourspaceNv12);
rtp.SetStreamInfo(stream_info);
EXPECT_EQ(rtp.GetState(), ::mediax::rtp::StreamState::kClosed);
EXPECT_EQ(rtp.GetColourSpace(), ::mediax::rtp::ColourspaceType::kColourspaceNv12);
rtp.Open();
EXPECT_EQ(rtp.GetState(), ::mediax::rtp::StreamState::kOpen);
EXPECT_EQ(rtp.GetColourSpace(), ::mediax::rtp::ColourspaceType::kColourspaceNv12);
rtp.Start();
EXPECT_EQ(rtp.GetState(), ::mediax::rtp::StreamState::kStarted);
EXPECT_EQ(rtp.GetColourSpace(), ::mediax::rtp::ColourspaceType::kColourspaceNv12);
rtp.Stop();
EXPECT_EQ(rtp.GetState(), ::mediax::rtp::StreamState::kStopped);
EXPECT_EQ(rtp.GetColourSpace(), ::mediax::rtp::ColourspaceType::kColourspaceNv12);
rtp.Close();
EXPECT_EQ(rtp.GetState(), ::mediax::rtp::StreamState::kClosed);
EXPECT_EQ(rtp.GetColourSpace(), ::mediax::rtp::ColourspaceType::kColourspaceNv12);
}
Loading

0 comments on commit ba74c34

Please sign in to comment.