MediaX v1.0.0rc7 [7e6cb74]
Video streaming for military vehicles
Loading...
Searching...
No Matches
mediax::rtp Namespace Reference

The Real Time Protocol (RTP) namespace. More...

Namespaces

namespace  h264
 The H.264 video compression namespace.
 
namespace  uncompressed
 The Astute Systems media streaming namespace.
 

Data Structures

struct  float4
 4 byte float More...
 
struct  Resolution
 Resolution of a video stream. More...
 
struct  Rgb
 RGB. More...
 
class  RtpDepayloader
 Manage an RTP stream. More...
 
struct  RtpFrameData
 The RTP callback data. More...
 
struct  RtpHeader
 RTP packet structure. More...
 
struct  RtpHeaderData
 12 byte RTP Raw video header More...
 
struct  RtpLineHeader
 Line header. More...
 
struct  RtpPacket
 RTP packet structure. More...
 
class  RtpPayloader
 Manage an RTP stream. More...
 
struct  RtpPayloadHeader
 RTP Payload header. More...
 
struct  RtpPortType
 Store common port information for ingress and egress ports. More...
 
struct  StreamInformation
 Struct capturing all stream information. More...
 
struct  TxData
 Transmit data structure. More...
 

Typedefs

using RtpCallback = std::function< void(const RtpDepayloader &depay, RtpFrameData frame)>
 The RTP frame callback.
 

Enumerations

enum class  StreamState { kClosed , kOpen , kStarted , kStopped }
 The stream state. More...
 
enum class  SettingsMask {
  hostname = 0b00000001 , port = 0b00000010 , name = 0b00000100 , height = 0b00001000 ,
  width = 0b00010000 , framerate = 0b00100000 , encoding = 0b01000000 , all = 0b01111111
}
 The RTP stream information valid mask.
 
enum class  StatusCode { kStatusOk = 0 , kStatusError }
 The status code.
 
enum class  ColourspaceType {
  kColourspaceRgb24 = 0 , kColourspaceYuv422 , kColourspaceYuv420p , kColourspaceMono8 ,
  kColourspaceMono16 , kColourspaceRgba , kColourspaceBgra , kColourspaceNv12 ,
  kColourspaceJpeg2000 , kColourspaceH264Part4 , kColourspaceH264Part10 , kColourspaceH265 ,
  kColourspaceAv1 , kColourspaceUndefined
}
 Supported colour spaces.
 

Variables

constexpr const char *const kIpaddr = "224.2.127.254"
 SAP/SDP constants.
 
const uint16_t kSapPort = 9875
 SAP/SDP port.
 
const uint32_t kRtpVersion = 0x2
 RFC 1889 Version 2.
 
const uint32_t kRtpExtension = 0x0
 RTP Extension bit.
 
const uint32_t kRtpMarker = 0x0
 RTP marker bit.
 
const uint32_t kRtpPayloadType = 0x60
 96 Dynamic Type
 
const uint32_t kRtpSource = 0x12345678
 Should be unique.
 
const uint32_t kRtpFramerate = 25
 25 frames per second
 
const uint32_t Hz90 = 90000
 90KHz clock
 
const uint32_t kNumberLinesPerPacket = 10
 can have more that one line in a packet
 
const uint32_t kMaximumBufferSize = 1280 * 3
 allow for RGB data upto 1280 pixels wide
 
const uint32_t kMaxUdpData = kMaximumBufferSize + 100
 enough space for three lines of UDP data MTU size should be checked
 
const uint32_t kRtpCheck = 0
 0 to disable RTP header checking
 
const uint32_t kRtpThreaded = 1
 transmit and recieve in a thread. RX thread blocks TX does not
 
const uint32_t kPitch = 4
 RGBX processing kPitch.
 
const std::map< ColourspaceType, uint8_t > kColourspaceBytes
 The bits per pixel.
 
const std::map< ColourspaceType, std::string > kRtpMap
 SDP encoding type.
 
const std::map< ColourspaceType, std::string > kColourspace
 SDP colourspace if applicable.
 

Detailed Description

The Real Time Protocol (RTP) namespace.

Enumeration Type Documentation

◆ StreamState

enum class mediax::rtp::StreamState
strong

The stream state.

Enumerator
kClosed 

The stream is closed.

kOpen 

The stream is open.

kStarted 

The stream is started.

kStopped 

The stream is stopped.

Variable Documentation

◆ kColourspace

const std::map<ColourspaceType, std::string> mediax::rtp::kColourspace
Initial value:
= {
{ColourspaceType::kColourspaceUndefined, "unknown"},
{ColourspaceType::kColourspaceRgb24, "RGB"},
{ColourspaceType::kColourspaceYuv422, "YCbCr-4:2:2"},
{ColourspaceType::kColourspaceMono8, "GRAYSCALE"},
{ColourspaceType::kColourspaceMono16, "GRAYSCALE"},
{ColourspaceType::kColourspaceJpeg2000, "YCbCr-4:2:2"},
{ColourspaceType::kColourspaceH264Part4, "H264 (Part 4)"},
{ColourspaceType::kColourspaceH264Part10, "H264 (Part 10)"}}

SDP colourspace if applicable.

◆ kColourspaceBytes

const std::map<ColourspaceType, uint8_t> mediax::rtp::kColourspaceBytes
Initial value:
= {
{ColourspaceType::kColourspaceUndefined, 0}, {ColourspaceType::kColourspaceRgb24, 3},
{ColourspaceType::kColourspaceYuv422, 2}, {ColourspaceType::kColourspaceYuv420p, 3},
{ColourspaceType::kColourspaceMono8, 1}, {ColourspaceType::kColourspaceMono16, 2},
{ColourspaceType::kColourspaceJpeg2000, 3}, {ColourspaceType::kColourspaceH264Part4, 3},
{ColourspaceType::kColourspaceH264Part10, 3}}

The bits per pixel.

◆ kRtpMap

const std::map<ColourspaceType, std::string> mediax::rtp::kRtpMap
Initial value:
= {
{ColourspaceType::kColourspaceUndefined, "unknown"}, {ColourspaceType::kColourspaceRgb24, "raw"},
{ColourspaceType::kColourspaceYuv422, "raw"}, {ColourspaceType::kColourspaceMono8, "raw"},
{ColourspaceType::kColourspaceMono16, "raw"}, {ColourspaceType::kColourspaceJpeg2000, "jpeg2000"},
{ColourspaceType::kColourspaceH264Part4, "nv12"}, {ColourspaceType::kColourspaceH264Part10, "nv12"}}

SDP encoding type.