libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
x264videoencoder.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_X264
13#include <promeki/namespace.h>
15#include <promeki/uniqueptr.h>
16#include <promeki/list.h>
17#include <promeki/error.h>
18
19PROMEKI_NAMESPACE_BEGIN
20
21class MediaConfig;
22class Frame;
23
59class X264VideoEncoder : public VideoEncoder {
60 public:
61 X264VideoEncoder();
62 ~X264VideoEncoder() override;
63
73 static List<int> supportedInputList();
74
75 Error submitFrame(const Frame &frame) override;
76 Frame receiveFrame() override;
77 Error flush() override;
78 Error reset() override;
79 void requestKeyframe() override;
80
81 protected:
82 void onConfigure(const MediaConfig &config) override;
83
84 private:
85 struct Impl;
86 using ImplPtr = UniquePtr<Impl>;
87 ImplPtr _impl;
88 bool _requestKey = false;
89};
90
91PROMEKI_NAMESPACE_END
92
93#endif // PROMEKI_ENABLE_X264