SmolRTSP 0.2.0
A small, portable, extensible RTSP 1.0 implementation in C99
Loading...
Searching...
No Matches
jpeg.h
Go to the documentation of this file.
1
9#pragma once
10
11#include <stdbool.h>
12#include <stdint.h>
13
14#include <smolrtsp/priv/compiler_attrs.h>
15
22#define SMOLRTSP_JPEG_MAIN_HEADER_SIZE 8
23
31#define SMOLRTSP_JPEG_QT_HEADER_SIZE 4
32
36#define SMOLRTSP_JPEG_QT_SIZE 64
37
45#define SMOLRTSP_JPEG_RESTART_HEADER_SIZE 4
46
55#define SMOLRTSP_JPEG_TYPE_RESTART 64
56
62#define SMOLRTSP_MAX_JPEG_PACKET_SIZE 1200
63
70#define SMOLRTSP_JPEG_Q_DYNAMIC 128
71
75#define SMOLRTSP_JPEG_TYPE_SPECIFIC_DEFAULT 0
76
90typedef struct {
100 uint8_t type;
105 uint8_t q;
111
120 SmolRTSP_JpegPayloadHeader self, uint8_t buffer[restrict]);
121
133typedef struct {
135 uint8_t mbz;
141 uint8_t precision;
146 uint16_t length;
148
157 SmolRTSP_JpegQtHeader self, uint8_t buffer[restrict]);
158
172typedef struct {
179 bool first;
181 bool last;
191
200 SmolRTSP_JpegRestartHeader self, uint8_t buffer[restrict]);
void SmolRTSP_JpegQtHeader_serialize(SmolRTSP_JpegQtHeader self, uint8_t buffer[restrict])
Serializes self into buffer in network byte order.
void SmolRTSP_JpegRestartHeader_serialize(SmolRTSP_JpegRestartHeader self, uint8_t buffer[restrict])
Serializes self into buffer in network byte order.
void SmolRTSP_JpegPayloadHeader_serialize(SmolRTSP_JpegPayloadHeader self, uint8_t buffer[restrict])
Serializes self into buffer in network byte order.
An RFC 2435 main JPEG header (§3.1).
Definition jpeg.h:90
uint8_t type
RTP/JPEG Type field (byte 4): subsampling + interlace flags.
Definition jpeg.h:100
uint8_t type_specific
Type-specific field (byte 0).
Definition jpeg.h:92
uint32_t fragment_offset
Fragment offset within the JPEG frame, in bytes (bytes 1..3, 24-bit big-endian).
Definition jpeg.h:98
uint8_t width_blocks
Picture width in 8-pixel units (byte 6).
Definition jpeg.h:107
uint8_t height_blocks
Picture height in 8-pixel units (byte 7).
Definition jpeg.h:109
uint8_t q
Quality factor (byte 5).
Definition jpeg.h:105
An RFC 2435 Quantization Table header (§3.1.8).
Definition jpeg.h:133
uint8_t mbz
MBZ (must be zero) field, byte 0.
Definition jpeg.h:135
uint16_t length
Total length in bytes of the quantization-table data that follows this header (bytes 2....
Definition jpeg.h:146
uint8_t precision
Per-table precision bitmap, byte 1.
Definition jpeg.h:141
An RFC 2435 Restart Marker header (§3.1.7).
Definition jpeg.h:172
uint16_t restart_interval
Number of MCUs between restart markers (bytes 0..1, big-endian) – the value of the JPEG DRI marker.
Definition jpeg.h:177
bool first
First bit (byte 2, bit 7): this packet begins a restart interval.
Definition jpeg.h:179
bool last
Last bit (byte 2, bit 6): this packet ends a restart interval.
Definition jpeg.h:181
uint16_t restart_count
Restart Count (14-bit, low 6 bits of byte 2 plus byte 3).
Definition jpeg.h:189