Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
custommediainputsnippets.cpp
Go to the documentation of this file.
1
// Copyright (C) 2024 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
4
#
include
"custommediainputsnippets.h"
5
6
void
CustomMediaInputSnippets
::setupAndRecordVideo()
7
{
8
//! [QVideoFrameInput setup]
9
QMediaCaptureSession session;
10
QMediaRecorder recorder;
11
QVideoFrameInput videoInput;
12
13
session.setRecorder(&recorder);
14
session.setVideoFrameInput(&videoInput);
15
16
MediaGenerator
generator;
// Custom class providing video frames
17
18
connect(&videoInput, &QVideoFrameInput::readyToSendVideoFrame,
19
&generator, &MediaGenerator::nextVideoFrame);
20
connect(&generator, &MediaGenerator::videoFrameReady,
21
&videoInput, &QVideoFrameInput::sendVideoFrame);
22
23
recorder.record();
24
//! [QVideoFrameInput setup]
25
26
// Start event loop here to keep objects alive and make the snippets runnable without crashing
27
QTimer::singleShot(1000, qApp, &QCoreApplication::quit);
// Close the app after 1 second
28
qApp->exec();
29
}
30
31
void
CustomMediaInputSnippets
::
setupAndRecordAudio
()
32
{
33
//! [QAudioBufferInput setup]
34
QMediaCaptureSession session;
35
QMediaRecorder recorder;
36
QAudioBufferInput audioInput;
37
38
session.setRecorder(&recorder);
39
session.setAudioBufferInput(&audioInput);
40
41
MediaGenerator
generator;
// Custom class providing audio buffers
42
43
connect(&audioInput, &QAudioBufferInput::readyToSendAudioBuffer,
44
&generator, &
MediaGenerator
::
nextAudioBuffer
);
45
connect(&generator, &MediaGenerator::audioBufferReady,
46
&audioInput, &QAudioBufferInput::sendAudioBuffer);
47
48
recorder.record();
49
//! [QAudioBufferInput setup]
50
51
// Start event loop here to keep objects alive and make the snippets runnable without crashing
52
QTimer::singleShot(1000, qApp, &QCoreApplication::quit);
// Close the app after 1 second
53
qApp->exec();
54
}
55
56
//! [nextVideoFrame()]
57
void
MediaGenerator
::nextVideoFrame()
58
{
59
QVideoFrame frame = nextFrame();
60
emit videoFrameReady(frame);
61
}
62
//! [nextVideoFrame()]
63
64
//! [nextAudioBuffer()]
65
void
MediaGenerator
::
nextAudioBuffer
()
66
{
67
QAudioBuffer buffer = nextBuffer();
68
emit audioBufferReady(buffer);
69
}
70
//! [nextAudioBuffer()]
71
72
QVideoFrame
MediaGenerator
::nextFrame()
73
{
74
// Create mock video frame which is not interpretet as empty by the recorder
75
QVideoFrameFormat format(QSize(1080, 720), QVideoFrameFormat::Format_NV12);
76
QVideoFrame frame(format);
77
return
frame;
78
}
79
80
QAudioBuffer
MediaGenerator
::nextBuffer()
81
{
82
// Create mock audio buffer which is not interpretet as empty by the recorder
83
QAudioFormat format;
84
format.setSampleRate(48000);
85
format.setChannelCount(2);
86
format.setSampleFormat(QAudioFormat::Float);
87
int
bufferSize = format.bytesPerSample() * 128;
88
QByteArray byteArray(bufferSize, 0);
89
return
QAudioBuffer(byteArray, format);
90
}
CustomMediaInputSnippets
Definition
custommediainputsnippets.h:34
CustomMediaInputSnippets::setupAndRecordAudio
void setupAndRecordAudio()
Definition
custommediainputsnippets.cpp:31
MediaGenerator
Definition
custommediainputsnippets.h:17
MediaGenerator::nextAudioBuffer
void nextAudioBuffer()
[nextVideoFrame()]
Definition
custommediainputsnippets.cpp:65
qtmultimedia
src
multimedia
doc
snippets
custommediainputsnippets
custommediainputsnippets.cpp
Generated on
for Qt by
1.18.0