#include "NvDecoderApi.h" #include "FFNvDecoder.h" NvDecoderApi::NvDecoderApi(){ m_pDecoder = nullptr; } NvDecoderApi::~NvDecoderApi(){ if(m_pDecoder != nullptr){ delete m_pDecoder; m_pDecoder = nullptr; } } bool NvDecoderApi::init(FFDecConfig& cfg){ m_pDecoder = new FFNvDecoder(); if(m_pDecoder != nullptr){ return m_pDecoder->init(cfg); } return false; } void NvDecoderApi::close(){ if(m_pDecoder != nullptr){ return m_pDecoder->close(); } } bool NvDecoderApi::start(){ if(m_pDecoder != nullptr){ return m_pDecoder->start(); } return false; } void NvDecoderApi::pause(){ if(m_pDecoder != nullptr){ return m_pDecoder->pause(); } } void NvDecoderApi::resume(){ if(m_pDecoder != nullptr){ return m_pDecoder->resume(); } } void NvDecoderApi::setDecKeyframe(bool bKeyframe){ if(m_pDecoder != nullptr){ return m_pDecoder->setDecKeyframe(bKeyframe); } } bool NvDecoderApi::isRunning(){ if(m_pDecoder != nullptr){ return m_pDecoder->isRunning(); } return false; } bool NvDecoderApi::isFinished(){ if(m_pDecoder != nullptr){ return m_pDecoder->isFinished(); } return false; } bool NvDecoderApi::isPausing(){ if(m_pDecoder != nullptr){ return m_pDecoder->isPausing(); } return false; } bool NvDecoderApi::getResolution(int &width, int &height){ if(m_pDecoder != nullptr){ return m_pDecoder->getResolution(width, height); } return false; } bool NvDecoderApi::isSurport(FFDecConfig& cfg){ if(m_pDecoder != nullptr){ return m_pDecoder->isSurport(cfg); } return false; } float NvDecoderApi::fps(){ if(m_pDecoder != nullptr){ return m_pDecoder->fps(); } return 0.0; } int NvDecoderApi::getCachedQueueLength(){ if(m_pDecoder != nullptr){ return m_pDecoder->getCachedQueueLength(); } return 0; } void NvDecoderApi::setName(string nm){ if(m_pDecoder != nullptr){ return m_pDecoder->setName(nm); } } string NvDecoderApi::getName(){ if(m_pDecoder != nullptr){ return m_pDecoder->getName(); } return nullptr; } FFImgInfo* NvDecoderApi::snapshot(){ if(m_pDecoder != nullptr){ return m_pDecoder->snapshot(); } return nullptr; } void NvDecoderApi::setPostDecArg(const void* postDecArg){ if(m_pDecoder != nullptr){ return m_pDecoder->setPostDecArg(postDecArg); } } void NvDecoderApi::setFinishedDecArg(const void* finishedDecArg){ if(m_pDecoder != nullptr){ return m_pDecoder->setFinishedDecArg(finishedDecArg); } }