21#include <emscripten.h>
22#include <emscripten/val.h>
23#include <emscripten/bind.h>
24#include <private/qstdweb_p.h>
25#include <private/qplatformmediarecorder_p.h>
43 bool open(QIODeviceBase::OpenMode mode)
override;
46 bool seek(qint64 pos)
override;
60 void streamError(QMediaRecorder::Error error,
const QString &errorMessage);
68 void audioDataAvailable(emscripten::val Blob,
double timeCodeDifference);
69 void setTrackContraints(QMediaEncoderSettings &settings, emscripten::val stream);
73 QMediaEncoderSettings m_mediaSettings;
74 bool m_needsCamera =
false;
75 bool m_needsAudio =
false;
80 QScopedPointer<qstdweb::EventCallback> m_mediaStreamDataAvailable;
81 QScopedPointer<qstdweb::EventCallback> m_mediaStreamStopped;
82 QScopedPointer<qstdweb::EventCallback> m_mediaStreamError;
83 QScopedPointer<qstdweb::EventCallback> m_mediaStreamStart;
84 QScopedPointer<qstdweb::EventCallback> m_mediaStreamPause;
85 QScopedPointer<qstdweb::EventCallback> m_mediaStreamResume;
119 void setupMediaStream(emscripten::val mStream);
121 bool m_needsAudio =
false;
122 bool m_needsVideo =
false;
123 bool m_active =
false;
124 QSize m_videoResolution;
125 float m_minFrameRate = 0;
126 float m_maxFrameRate = 0;
128 QScopedPointer<qstdweb::EventCallback> m_activeStreamEvent;
129 QScopedPointer<qstdweb::EventCallback> m_inactiveStreamEvent;
130 std::string m_deviceId;
Combined button and popup list for selecting options.
Q_GLOBAL_STATIC(QReadWriteLock, g_updateMutex)
JsMediaInputStream * stream