From ceedee9a933697ef6a3db758adb57e03f42189eb Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Thu, 23 Mar 2017 18:23:35 +0100 Subject: GStreamer: improve the list of default recording formats Add some common codec combinations such as MP4/H.264/AAC or with alternative audio codecs such as MP3 or AC-3. Change-Id: If67c68112d0f170a1391bef750e2bc8fc0d246de Reviewed-by: Christian Stromme --- .../gstreamer/camerabin/camerabinrecorder.cpp | 35 ++++++++++++++++++++-- 1 file 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 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]) && -- cgit v1.2.3