summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp')
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp b/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
index 47a61c9a3..cb479d8df 100644
--- a/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
@@ -160,18 +160,25 @@ QPair<int,int> CameraBinVideoEncoder::rateAsRational(qreal frameRate) const
GstEncodingProfile *CameraBinVideoEncoder::createProfile()
{
QString codec = m_actualVideoSettings.codec();
+ QString preset = m_actualVideoSettings.encodingOption(QStringLiteral("preset")).toString();
+
GstCaps *caps;
if (codec.isEmpty())
- caps = gst_caps_new_any();
+ caps = 0;
else
caps = gst_caps_from_string(codec.toLatin1());
- return (GstEncodingProfile *)gst_encoding_video_profile_new(
+ GstEncodingVideoProfile *profile = gst_encoding_video_profile_new(
caps,
- NULL, //preset
+ !preset.isEmpty() ? preset.toLatin1().constData() : NULL, //preset
NULL, //restriction
- 0); //presence
+ 1); //presence
+
+ gst_encoding_video_profile_set_pass(profile, 0);
+ gst_encoding_video_profile_set_variableframerate(profile, TRUE);
+
+ return (GstEncodingProfile *)profile;
}
QT_END_NAMESPACE