33 const std::string& inputDevice,
const std::string& format,
int w,
int h,
34 double fps,
int codec,
int pixelfmt)
noexcept;
36 bool start()
noexcept override;
37 void stop()
noexcept override;
39 AVFrame* dequeue_frame()
noexcept override;
40 void release_frame(AVFrame* frame)
noexcept override;
43 void buffer_thread()
noexcept;
44 void close_file()
noexcept;
45 AVFrame* read_frame_impl()
noexcept;
46 bool open_stream()
noexcept;
47 void close_stream()
noexcept;
48 ReadFrame read_one_frame(AVFramePointer frame, AVPacket& packet);
50 static const constexpr int frames_to_buffer = 1;
52 AVCodecID m_requestedCodec{AV_CODEC_ID_NONE};
53 AVPixelFormat m_requestedPixfmt{AV_PIX_FMT_NONE};
57 std::string m_inputKind;
58 std::string m_inputDevice;
60 std::atomic_bool m_running{};