3 #ifndef QT_CAM_MODE_P_H
4 #define QT_CAM_MODE_P_H
7 #include "qtcamdevice_p.h"
8 #include <gst/pbutils/encoding-profile.h>
9 #include <gst/pbutils/encoding-target.h>
11 class QtCamDevicePrivate;
12 class PreviewImageHandler;
15 class QtCamModePrivate {
17 QtCamModePrivate(QtCamDevicePrivate *d) : id(-1), dev(d) {}
18 virtual ~QtCamModePrivate() {}
20 int modeId(const char *mode) {
21 if (!dev->cameraBin) {
25 GParamSpec *pspec = g_object_class_find_property(G_OBJECT_GET_CLASS(dev->cameraBin),
31 if (!G_IS_PARAM_SPEC_ENUM(pspec)) {
35 GParamSpecEnum *e = (GParamSpecEnum *)pspec;
36 GEnumClass *klass = e->enum_class;
38 for (unsigned x = 0; x < klass->n_values; x++) {
39 if (QLatin1String(mode) == QLatin1String(klass->values[x].value_nick)) {
40 return klass->values[x].value;
47 GstEncodingProfile *loadProfile(const QString& path, const QString& name) {
50 GstEncodingTarget *target = gst_encoding_target_load_from_file(path.toUtf8().data(), &error);
52 qCritical() << "Failed to load encoding target from" << path << error->message;
57 GstEncodingProfile *profile = gst_encoding_target_get_profile(target, name.toUtf8().data());
59 qCritical() << "Failed to load encoding profile from" << path;
60 gst_encoding_target_unref(target);
64 gst_encoding_target_unref(target);
70 QtCamDevicePrivate *dev;
71 PreviewImageHandler *previewImageHandler;
72 DoneHandler *doneHandler;
75 #endif /* QT_CAM_MODE_P_H */