/**
 * 视频流解码引擎
 * */

#ifndef VIDEODECODEENGINE_H
#define VIDEODECODEENGINE_H

#include <iostream>
#include <chrono>
#include <cmath>
#include <utility>
#include <thread>
#include <chrono>
#include <functional>
#include <atomic>
#include <time.h>
#include <sys/time.h>
#include <unistd.h>
#include <queue>
#include <mutex>
#include <semaphore.h>
#include <algorithm>
#include <string>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <vector>
#include <memory>

#include "EngineBase.h"
#include "EngineFactory.h"
#include "AppCommon.h"

#include "HardDecode.h"
class VideoDecodeEngine : public ai_matrix::EngineBase
{
public:
    VideoDecodeEngine();
    ~VideoDecodeEngine();

    APP_ERROR Init() override;
    APP_ERROR DeInit() override;
    APP_ERROR Process() override;

private:
    std::string strPort0_;


    HardDecode* harddecoder_ = nullptr;

    ai_matrix::DataSourceConfig dataSourceConfig_;
    bool bUseEngine_;

};

ENGINE_REGIST(VideoDecodeEngine)

#endif
