libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
v4l2videodecoder.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
58class V4l2VideoDecoder : public VideoDecoder {
59 public:
64 explicit V4l2VideoDecoder(VideoCodec::ID codecId);
65 ~V4l2VideoDecoder() override;
66
72 static List<int> supportedOutputList();
73
74 Error submitFrame(const Frame &frame) override;
75 Frame receiveFrame() override;
76 Error flush() override;
77 Error reset() override;
78
79 protected:
80 void onConfigure(const MediaConfig &config) override;
81
82 private:
83 struct Impl;
84 using ImplPtr = UniquePtr<Impl>;
85 ImplPtr _impl;
86};
87
88PROMEKI_NAMESPACE_END
89
90#endif // PROMEKI_ENABLE_V4L2