libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
jpegxsvideocodec.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_JPEGXS
13#include <promeki/namespace.h>
16#include <promeki/pixelformat.h>
17#include <promeki/deque.h>
18#include <promeki/frame.h>
19#include <promeki/uniqueptr.h>
20
21PROMEKI_NAMESPACE_BEGIN
22
62class JpegXsVideoEncoder : public VideoEncoder {
63 public:
67 static constexpr int DefaultBpp = 3;
68
72 static constexpr int DefaultDecomposition = 5;
73
74 JpegXsVideoEncoder();
75 ~JpegXsVideoEncoder() override;
76
84 static List<int> supportedInputList();
85
86 void onConfigure(const MediaConfig &config) override;
87 Error submitFrame(const Frame &frame) override;
88 Frame receiveFrame() override;
89 Error flush() override;
90 Error reset() override;
91
93 int bpp() const { return _bpp; }
94
96 int decomposition() const { return _decomposition; }
97
98 private:
105 struct Impl;
106 using ImplPtr = UniquePtr<Impl>;
107 ImplPtr _impl;
108
109 int _bpp = DefaultBpp;
110 int _decomposition = DefaultDecomposition;
111 PixelFormat _outputPd;
112 int _capacity = 8;
113 Deque<Frame> _queue;
114 bool _capacityWarned = false;
115};
116
130class JpegXsVideoDecoder : public VideoDecoder {
131 public:
132 JpegXsVideoDecoder();
133 ~JpegXsVideoDecoder() override;
134
140 static List<int> supportedOutputList();
141
142 void onConfigure(const MediaConfig &config) override;
143 Error submitFrame(const Frame &frame) override;
144 Frame receiveFrame() override;
145 Error flush() override;
146 Error reset() override;
147
148 private:
152 struct Impl;
153 using ImplPtr = UniquePtr<Impl>;
154 ImplPtr _impl;
155
156 PixelFormat _outputPd;
157 int _capacity = 8;
158 Deque<Frame> _queue;
159 bool _capacityWarned = false;
160};
161
162PROMEKI_NAMESPACE_END
163
164#endif // PROMEKI_ENABLE_JPEGXS