MediaX v1.0.0rc7 [7e6cb74]
Video streaming for military vehicles
Loading...
Searching...
No Matches
rtp_utils.h
Go to the documentation of this file.
1//
2// Copyright (c) 2025, Astute Systems PTY LTD
3//
4// This file is part of the VivoeX project developed by Astute Systems.
5//
6// Licensed under the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
7// License. See the LICENSE file in the project root for full license details.
8//
13
14#ifndef RTP_RTP_UTILS_H_
15#define RTP_RTP_UTILS_H_
16
17#ifdef _WIN32
18#include <winsock2.h>
19// Swap bytes in 16 bit value.
20#define __bswap_constant_16(x) ((((x) >> 8) & 0xffu) | (((x)&0xffu) << 8))
21// Swap bytes in 32 bit value.
22#define __bswap_constant_32(x) \
23 ((((x) >> 24) & 0xffu) | (((x)&0xff0000u) >> 8) | (((x)&0xff00u) << 8) | (((x)&0xffu) << 24))
24#define __bswap_16(x) __bswap_constant_16(x)
25#else
26#include <byteswap.h>
27#include <netdb.h>
28#include <netinet/in.h>
29#include <sys/socket.h>
30#include <sys/types.h>
31#endif
32#include <string>
33#include <string_view>
34
35#include "rtp/rtp_types.h"
36
37namespace mediax {
38
45void InitRtp(int argc, char *argv[]);
46
53bool IsRtpInitialised();
54
59void RtpCleanup();
60
67
74
82
91
92} // namespace mediax
93
100void EndianSwap32(uint32_t *data, unsigned int length);
101
108void EndianSwap16(uint16_t *data, unsigned int length);
109
116void DumpHex(const void *data, size_t size);
117
126void CreateColourBarEbuTestCard(uint8_t *data, uint32_t width, uint32_t height,
127 mediax::rtp::ColourspaceType colourspace);
136void CreateColourBarTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace);
137
146void CreateGreyScaleBarTestCard(uint8_t *data, uint32_t width, uint32_t height,
147 mediax::rtp::ColourspaceType colourspace);
148
157void CreateQuadTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace);
158
167void CreateCheckeredTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace);
168
180void CreateSolidTestCard(uint8_t *data, uint32_t width, uint32_t height, uint8_t red, uint8_t green, uint8_t blue,
181 mediax::rtp::ColourspaceType colourspace);
182
191void CreateWhiteNoiseTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace);
192
201void CreateBouncingBallTestCard(uint8_t *data, uint32_t width, uint32_t height,
202 mediax::rtp::ColourspaceType colourspace);
203
204#endif // RTP_RTP_UTILS_H_
ColourspaceType
Supported colour spaces.
Definition rtp_types.h:102
The Astute Systems (MediaX) library for video streaming.
Definition rtp_av1_depayloader.cc:34
std::string ColourspaceTypeToString(rtp::ColourspaceType colourspace)
Convert enum to string.
Definition rtp_utils.cc:55
uint8_t BitsPerPixel(rtp::ColourspaceType mode)
Get the number of bits per pixel for a given colour space.
Definition rtp_utils.cc:115
uint8_t BytesPerPixel(rtp::ColourspaceType mode)
Get the number of bytes per pixel for a given colour space.
Definition rtp_utils.cc:144
rtp::ColourspaceType ColourspaceTypeFromString(std::string_view str)
Convert string to enum.
Definition rtp_utils.cc:87
void InitRtp(int argc, char *argv[])
Initialize the RTP library, mainly needed for GStreamer support.
Definition rtp_utils.cc:33
void RtpCleanup()
Finalise the RTP library, mainly needed for GStreamer support.
Definition rtp_utils.cc:48
bool IsRtpInitialised()
Check if the RTP library has been initialized.
Definition rtp_utils.cc:40
RTP streaming video types.
void CreateWhiteNoiseTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace)
Create a White Noise Test Card object.
Definition rtp_utils.cc:472
void EndianSwap16(uint16_t *data, unsigned int length)
Swap the endianness of a 16-bit integer.
Definition rtp_utils.cc:167
void CreateColourBarTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace)
Create a Colour Bar Test Card object.
Definition rtp_utils.cc:340
void CreateCheckeredTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace)
Create a Checkerd Test Card object.
Definition rtp_utils.cc:439
void DumpHex(const void *data, size_t size)
Dump a hex representation of a buffer.
Definition rtp_utils.cc:180
void CreateColourBarEbuTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace)
Create a Colour Bar Ebu Test Card object.
Definition rtp_utils.cc:281
void EndianSwap32(uint32_t *data, unsigned int length)
Swap the endianness of a 32-bit integer.
Definition rtp_utils.cc:150
void CreateSolidTestCard(uint8_t *data, uint32_t width, uint32_t height, uint8_t red, uint8_t green, uint8_t blue, mediax::rtp::ColourspaceType colourspace)
Create a Solid Test Card object.
Definition rtp_utils.cc:462
void CreateBouncingBallTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace)
Create a Bouncing Ball Test Card object.
Definition rtp_utils.cc:500
void CreateQuadTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace)
Create a Smtpe Test Card object.
Definition rtp_utils.cc:407
void CreateGreyScaleBarTestCard(uint8_t *data, uint32_t width, uint32_t height, mediax::rtp::ColourspaceType colourspace)
Create a Grey Scale Bar Test Card object.
Definition rtp_utils.cc:390