47 void start(QMediaEncoderSettings &settings,
const QUrl &outputLocation);
48 void stop(
bool error =
false);
58 m_mediaEncoder->stateChanged(state);
63 m_mediaEncoder->durationChanged(position);
68 m_mediaEncoder->actualLocationChanged(location);
73 m_mediaEncoder->updateError(QMediaRecorder::Error(error), errorString);
78 void onCameraOpened();
80 void onError(
int what,
int extra);
81 void onInfo(
int what,
int extra);
84 void applySettings(QMediaEncoderSettings &settings);
86 struct CaptureProfile {
88 QString outputFileExtension;
90 AndroidMediaRecorder::AudioEncoder audioEncoder;
98 QSize videoResolution;
104 , outputFileExtension(QLatin1String(
"mp4"))
105 , audioEncoder(AndroidMediaRecorder::DefaultAudioEncoder)
106 , audioBitRate(128000)
108 , audioSampleRate(44100)
112 , videoResolution(1280, 720)
117 CaptureProfile getProfile(
int id);
119 void restartViewfinder();
120 void updateStreamingState();
123 std::shared_ptr<AndroidMediaRecorder> m_mediaRecorder;
126 QPlatformAudioInput *m_audioInput =
nullptr;
127 QPlatformAudioOutput *m_audioOutput =
nullptr;
129 QElapsedTimer m_elapsedTime;
130 QTimer m_notifyTimer;
134 QUrl m_usedOutputLocation;
135 bool m_outputLocationIsStandard =
false;
137 CaptureProfile m_defaultSettings;
139 QMediaEncoderSettings m_encoderSettings;
141 AndroidMediaRecorder::AudioEncoder m_audioEncoder;
144 QList<QSize> m_supportedResolutions;
145 QList<qreal> m_supportedFramerates;
147 QMetaObject::Connection m_audioInputChanged;
148 QMetaObject::Connection m_audioOutputChanged;
149 QMetaObject::Connection m_connOpenCamera;
150 QMetaObject::Connection m_connActiveChangedCamera;
152 void setKeepAlive(
bool keepAlive);