#ifndef CHANNEL_H #define CHANNEL_H #include "Link.h" #include #include class Channel : public QObject { Q_OBJECT public: explicit Channel(QObject* parent = nullptr); void init(); QString channelName; LinkObject* videoInput; LinkObject* videoEncoder; QVariantMap videoEncoderParams; LinkObject* videoOutput; static LinkObject* audioInput; static LinkObject* audioOutput; LinkObject* audioEncoder; QVariantMap audioEncoderParams; LinkObject* record; bool autoRecord = false; // 1 hour each video int duration = 1 * 60 * 1000; bool isRecord = false; LinkObject* snap; LinkObject* overLay; static LinkObject* file; static LinkObject* videoDecoder; static LinkObject* audioDecoder; bool isPlayback = false; bool isPause = false; static LinkObject* rtspServer; LinkObject* rtsp; QString pushCode; void startRecord(); void stopRecord(); void recordPause(); void startPlayback(QString fileName); void back(); void forward(); void togglePause(); int getDuration(QString fileName); void startPlayLive(); signals: void playEnd(); void signalInputed(QString name, int width, int height); private slots: void onTimeout(); private: // timer used to record segement QTimer* timer; private: QString writeCom(const QString& com); bool isMountDisk(); inline void setOverlay(QString str); }; inline void Channel::setOverlay(QString str) { QVariantMap dataOver; QVariantList lays; QVariantMap lay; lay["type"] = "text"; lay["enable"] = true; lay["font"] = "/link/res/font.ttf"; lay["content"] = str; lay["x"] = 0.1; lay["y"] = 0.1; lay["scale"] = 2; lay["color"] = "#669900"; lay["alpha"] = 1; lays << lay; dataOver["lays"] = lays; overLay->setData(dataOver); } #endif // CHANNEL_H