6#include <private/qmediastoragelocation_p.h>
7#include <private/qplatformcamera_p.h>
8#include <private/qplatformsurfacecapture_p.h>
46 const auto hasVideo = !videoSources.empty();
47 const auto hasAudio = !audioInputs.empty();
49 if (!hasVideo && !hasAudio) {
56 <<
"Both outputDevice and outputLocation has been set to QMediaRecorder";
59 qCWarning(qLcMediaEncoder) <<
"Output device has been set but not it's not writable";
62 auto formatContext = std::make_unique<QFFmpeg::EncodingFormatContext>(
settings.fileFormat());
72 qCDebug(qLcMediaEncoder) <<
"requested format:" <<
settings.fileFormat()
75 if (!formatContext->isAVIOOpen()) {
77 QMediaRecorder::tr(
"Cannot open the output location for writing"));
82 m_recordingEngine->setMetaData(m_metaData);
84 &QFFmpegMediaRecorder::newDuration);
86 &QFFmpegMediaRecorder::finalizationDone);
88 &QFFmpegMediaRecorder::handleSessionError);
92 qCWarning(qLcMediaEncoder) <<
"Stream initialization error:" << description;
97 handleStreamInitializationError);
103 m_recordingEngine->initialize(audioInputs, videoSources);
112 m_recordingEngine->setPaused(
true);
123 m_recordingEngine->setPaused(
false);
135 qCDebug(qLcMediaEncoder) <<
"stop";
137 m_recordingEngine.reset();
140void QFFmpegMediaRecorder::finalizationDone()
159 auto *captureSession = session;
160 if (m_session == captureSession)
166 m_session = captureSession;
171void QFFmpegMediaRecorder::RecordingEngineDeleter::operator()(
172 RecordingEngine *recordingEngine)
const
176 recordingEngine->finalize();
181#include "moc_qffmpegmediarecorder_p.cpp"
void sessionError(QMediaRecorder::Error code, const QString &description)
void durationChanged(qint64 duration)
void streamInitializationError(QMediaRecorder::Error code, const QString &description)
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QUrl fromLocalFile(const QString &localfile)
Returns a QUrl representation of localFile, interpreted as a local file.
Combined button and popup list for selecting options.
#define Q_LOGGING_CATEGORY(name,...)
#define qCWarning(category,...)
#define qCDebug(category,...)
GLenum GLenum GLenum input
QSettings settings("MySoft", "Star Runner")
[0]