libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
v4l2videoencoder.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_V4L2
13#include <promeki/namespace.h>
15#include <promeki/videocodec.h>
16#include <promeki/uniqueptr.h>
17#include <promeki/list.h>
18#include <promeki/error.h>
19
20PROMEKI_NAMESPACE_BEGIN
21
22class MediaConfig;
23class Frame;
24
67class V4l2VideoEncoder : public VideoEncoder {
68 public:
73 explicit V4l2VideoEncoder(VideoCodec::ID codecId);
74 ~V4l2VideoEncoder() override;
75
83 static List<int> supportedInputList();
84
85 Error submitFrame(const Frame &frame) override;
86 Frame receiveFrame() override;
87 Error flush() override;
88 Error reset() override;
89 void requestKeyframe() override;
90
91 protected:
92 void onConfigure(const MediaConfig &config) override;
93
94 private:
95 struct Impl;
96 using ImplPtr = UniquePtr<Impl>;
97 ImplPtr _impl;
98 bool _requestKey = false;
99};
100
101PROMEKI_NAMESPACE_END
102
103#endif // PROMEKI_ENABLE_V4L2