summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/camerabin
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-04-18 22:03:42 +0200
committerLiang Qi <liang.qi@qt.io>2017-04-18 22:03:42 +0200
commit7caf543280bf8bdb0d3ea18d6c1a2537fdccfe6e (patch)
tree5c18b1ca8df1f39bb71cb1b579852f7b39894f1c /src/plugins/gstreamer/camerabin
parent6de2c8aca6736550d87057b0a3f025464bf21246 (diff)
parentd5d7dcfb15c0b5c5e9009b83fba922ea0b7e86f5 (diff)
Merge remote-tracking branch 'origin/5.8' into 5.9
Diffstat (limited to 'src/plugins/gstreamer/camerabin')
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinrecorder.cpp35
1 files changed, 32 insertions, 3 deletions
diff --git a/src/plugins/gstreamer/camerabin/camerabinrecorder.cpp b/src/plugins/gstreamer/camerabin/camerabinrecorder.cpp
index e9e8e0f71..b3505231b 100644
--- a/src/plugins/gstreamer/camerabin/camerabinrecorder.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinrecorder.cpp
@@ -153,12 +153,41 @@ void CameraBinRecorder::applySettings()
videoEncoderControl->videoSettings().codec().isEmpty()) {
QList<QStringList> candidates;
+
+ // By order of preference
+
+ // .mp4 (h264, AAC)
+ candidates.append(QStringList() << "video/quicktime, variant=(string)iso" << "video/x-h264" << "audio/mpeg, mpegversion=(int)4");
+
+ // .mp4 (h264, AC3)
+ candidates.append(QStringList() << "video/quicktime, variant=(string)iso" << "video/x-h264" << "audio/x-ac3");
+
+ // .mp4 (h264, MP3)
+ candidates.append(QStringList() << "video/quicktime, variant=(string)iso" << "video/x-h264" << "audio/mpeg, mpegversion=(int)1, layer=(int)3");
+
+ // .mkv (h264, AAC)
candidates.append(QStringList() << "video/x-matroska" << "video/x-h264" << "audio/mpeg, mpegversion=(int)4");
+
+ // .mkv (h264, AC3)
+ candidates.append(QStringList() << "video/x-matroska" << "video/x-h264" << "audio/x-ac3");
+
+ // .mkv (h264, MP3)
+ candidates.append(QStringList() << "video/x-matroska" << "video/x-h264" << "audio/mpeg, mpegversion=(int)1, layer=(int)3");
+
+ // .mov (h264, AAC)
+ candidates.append(QStringList() << "video/quicktime" << "video/x-h264" << "audio/mpeg, mpegversion=(int)4");
+
+ // .mov (h264, MP3)
+ candidates.append(QStringList() << "video/quicktime" << "video/x-h264" << "audio/mpeg, mpegversion=(int)1, layer=(int)3");
+
+ // .webm (VP8, Vorbis)
candidates.append(QStringList() << "video/webm" << "video/x-vp8" << "audio/x-vorbis");
+
+ // .ogg (Theora, Vorbis)
candidates.append(QStringList() << "application/ogg" << "video/x-theora" << "audio/x-vorbis");
- candidates.append(QStringList() << "video/quicktime" << "video/x-h264" << "audio/mpeg, mpegversion=(int)4");
- candidates.append(QStringList() << "video/quicktime" << "video/x-h264" << "audio/mpeg");
- candidates.append(QStringList() << "video/x-msvideo" << "video/x-divx" << "audio/mpeg");
+
+ // .avi (DivX, MP3)
+ candidates.append(QStringList() << "video/x-msvideo" << "video/x-divx" << "audio/mpeg, mpegversion=(int)1, layer=(int)3");
for (const QStringList &candidate : qAsConst(candidates)) {
if (containerControl->supportedContainers().contains(candidate[0]) &&