SmolRTSP 0.2.0
A small, portable, extensible RTSP 1.0 implementation in C99
Loading...
Searching...
No Matches
jpegxs_transport.h
Go to the documentation of this file.
1
9#pragma once
10
11#include <smolrtsp/droppable.h>
12#include <smolrtsp/jpegxs.h>
14
15#include <stdbool.h>
16#include <stddef.h>
17#include <stdint.h>
18
19#include <slice99.h>
20
21#include <smolrtsp/priv/compiler_attrs.h>
22
30#define SMOLRTSP_MAX_JPEGXS_PACKET_SIZE 1200
31
58
64SmolRTSP_JpegXsTransportConfig_default(void) SMOLRTSP_PRIV_MUST_USE;
65
70
80
94 SmolRTSP_JpegXsTransportConfig config) SMOLRTSP_PRIV_MUST_USE;
95
123 SmolRTSP_JpegXsTransport *self, SmolRTSP_RtpTimestamp ts,
124 SmolRTSP_JpegXsInterlace interlace, bool is_frame_end,
125 U8Slice99 codestream) SMOLRTSP_PRIV_MUST_USE;
126
145 SmolRTSP_JpegXsTransport *self, SmolRTSP_RtpTimestamp ts,
146 SmolRTSP_JpegXsInterlace interlace,
147 U8Slice99 header_segment) SMOLRTSP_PRIV_MUST_USE;
148
170 SmolRTSP_JpegXsTransport *self, SmolRTSP_RtpTimestamp ts,
171 SmolRTSP_JpegXsInterlace interlace, uint16_t slice_index, bool is_frame_end,
172 U8Slice99 slice) SMOLRTSP_PRIV_MUST_USE;
173
181
182bool SmolRTSP_JpegXsTransport_is_full(SmolRTSP_JpegXsTransport *self);
Droppable types support.
JPEG XS RTP payload-header types and serialization.
SmolRTSP_JpegXsPackMode
JPEG XS packetization mode – the K bit of the payload header (RFC 9134 §4.3).
Definition jpegxs.h:25
SmolRTSP_JpegXsInterlace
Interlaced-scan information – the I field (2 bits) of the payload header (RFC 9134 §4....
Definition jpegxs.h:38
int SmolRTSP_JpegXsTransport_send_header_segment(SmolRTSP_JpegXsTransport *self, SmolRTSP_RtpTimestamp ts, SmolRTSP_JpegXsInterlace interlace, U8Slice99 header_segment) SMOLRTSP_PRIV_MUST_USE
Sends the header-segment packetization unit in slice mode (K=1).
struct SmolRTSP_JpegXsTransport SmolRTSP_JpegXsTransport
An RTP/JPEG XS data transport.
Definition jpegxs_transport.h:69
int SmolRTSP_JpegXsTransport_send_slice(SmolRTSP_JpegXsTransport *self, SmolRTSP_RtpTimestamp ts, SmolRTSP_JpegXsInterlace interlace, uint16_t slice_index, bool is_frame_end, U8Slice99 slice) SMOLRTSP_PRIV_MUST_USE
Sends a single slice as its own packetization unit in slice mode (K=1).
declImplExtern99(SmolRTSP_Droppable, SmolRTSP_JpegXsTransport)
Implements SmolRTSP_Droppable_IFACE for SmolRTSP_JpegXsTransport.
SmolRTSP_JpegXsTransport * SmolRTSP_JpegXsTransport_new(SmolRTSP_RtpTransport *t) SMOLRTSP_PRIV_MUST_USE
Creates a new RTP/JPEG XS transport with the default configuration.
SmolRTSP_JpegXsTransport * SmolRTSP_JpegXsTransport_new_with_config(SmolRTSP_RtpTransport *t, SmolRTSP_JpegXsTransportConfig config) SMOLRTSP_PRIV_MUST_USE
Creates a new RTP/JPEG XS transport with a custom configuration.
int SmolRTSP_JpegXsTransport_send_codestream(SmolRTSP_JpegXsTransport *self, SmolRTSP_RtpTimestamp ts, SmolRTSP_JpegXsInterlace interlace, bool is_frame_end, U8Slice99 codestream) SMOLRTSP_PRIV_MUST_USE
Sends a JPEG XS packetization unit in codestream mode (K=0).
SmolRTSP_JpegXsTransportConfig SmolRTSP_JpegXsTransportConfig_default(void) SMOLRTSP_PRIV_MUST_USE
Returns the default SmolRTSP_JpegXsTransportConfig: codestream packetization mode,...
An RTP data transport.
struct SmolRTSP_RtpTransport SmolRTSP_RtpTransport
An RTP data transport.
Definition rtp_transport.h:22
The configuration structure for SmolRTSP_JpegXsTransport.
Definition jpegxs_transport.h:35
size_t max_packet_size
Maximum size in bytes of the RTP payload (i.e.
Definition jpegxs_transport.h:56
SmolRTSP_JpegXsPackMode pack_mode
Packetization mode (the K bit) used by every packet emitted by this transport.
Definition jpegxs_transport.h:40
bool sequential
Transmission-order mode (the T bit).
Definition jpegxs_transport.h:47