libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
jxsmarker.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NETWORK
13#include <cstddef>
14#include <cstdint>
15#include <promeki/list.h>
16#include <promeki/namespace.h>
17
18PROMEKI_NAMESPACE_BEGIN
19
65class JxsMarker {
66 public:
71 enum Code : uint16_t {
72 Soc = 0xFF10,
73 Eoc = 0xFF11,
74 Cap = 0xFF50,
75 Pih = 0xFF12,
76 Cdt = 0xFF13,
77 Wgt = 0xFF14,
78 Com = 0xFF15,
79 Nlt = 0xFF16,
80 Cwd = 0xFF17,
81 Cts = 0xFF18,
82 Crg = 0xFF19,
83 Slh = 0xFF20,
84 };
85
94 struct SliceRange {
96 size_t offset = 0;
97
101 size_t size = 0;
102 };
103
106 struct ParseResult {
109 bool valid = false;
110
120 size_t mainHeaderSize = 0;
121
126 List<SliceRange> slices;
127
133 size_t eocOffset = 0;
134 };
135
154 static ParseResult parse(const void *data, size_t size);
155};
156
157PROMEKI_NAMESPACE_END
158
159#endif // PROMEKI_ENABLE_NETWORK