// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #pragma once #include "codec.hpp" /** * @brief The TrivialCodec class represents a codec with no properties */ class TrivialCodec : public Codec { Q_OBJECT public: explicit TrivialCodec(QWidget* const parent = nullptr) : Codec(parent) {} virtual void setup() override {} virtual bool hasConfiguration() const override { return false; } virtual VideoStitch::Ptv::Value* getOutputConfig() const override { VideoStitch::Ptv::Value* outputConfig = VideoStitch::Ptv::Value::emptyObject(); return outputConfig; } virtual bool setFromOutputConfig(const VideoStitch::Ptv::Value* config) override { Q_UNUSED(config) return true; } }; class RawCodec : public TrivialCodec { Q_OBJECT public: explicit RawCodec(QWidget* const parent = nullptr) : TrivialCodec(parent) {} virtual QString getKey() const override { return QStringLiteral("raw"); } }; class NullCodec : public TrivialCodec { Q_OBJECT public: explicit NullCodec(QWidget* const parent = nullptr) : TrivialCodec(parent) {} virtual QString getKey() const override { return QStringLiteral("null"); } }; class PamCodec : public TrivialCodec { Q_OBJECT public: explicit PamCodec(QWidget* const parent = nullptr) : TrivialCodec(parent) {} virtual QString getKey() const { return QStringLiteral("pam"); } }; class PpmCodec : public TrivialCodec { Q_OBJECT public: explicit PpmCodec(QWidget* const parent = nullptr) : TrivialCodec(parent) {} virtual QString getKey() const override { return QStringLiteral("ppm"); } }; class PngCodec : public TrivialCodec { Q_OBJECT public: explicit PngCodec(QWidget* const parent = nullptr) : TrivialCodec(parent) {} virtual QString getKey() const override { return QStringLiteral("png"); } }; class Yuv420Codec : public TrivialCodec { Q_OBJECT public: explicit Yuv420Codec(QWidget* const parent = nullptr) : TrivialCodec(parent) {} virtual QString getKey() const override { return QStringLiteral("yuv420p"); } };