2#include <Media/Libav.hpp>
4#if defined(__EMSCRIPTEN__) && SCORE_HAS_LIBAV
5#include <Video/ExternalInput.hpp>
6#include <Video/FrameQueue.hpp>
8#include <score_plugin_media_export.h>
22SCORE_PLUGIN_MEDIA_EXPORT
void webCameraScan() noexcept;
26SCORE_PLUGIN_MEDIA_EXPORT
int webCameraScanGeneration() noexcept;
30SCORE_PLUGIN_MEDIA_EXPORT
std::vector<WebCameraDevice> webCameraDevices() noexcept;
39class SCORE_PLUGIN_MEDIA_EXPORT WebCameraInput final : public ExternalInput
42 WebCameraInput() noexcept;
43 ~WebCameraInput() noexcept override;
45 bool load(const
std::
string& deviceId,
int w,
int h,
double fps) noexcept;
47 bool start() noexcept override;
48 void stop() noexcept override;
50 AVFrame* dequeue_frame() noexcept override;
51 void release_frame(AVFrame* frame) noexcept override;
54 void fetch() noexcept;
57 std::
string m_deviceId;
58 int m_requestedWidth{};
59 int m_requestedHeight{};
60 double m_requestedFps{};
62 bool m_reportedError{};