#include "FFNvDecoderManager.h" #include void postDecoded(const void * userPtr, AVFrame * gpuFrame){ FFNvDecoder* decoder = (FFNvDecoder*)userPtr; if (decoder!= nullptr) { cout << decoder->getName() << endl; const char* gpu_pixfmt = av_get_pix_fmt_name((AVPixelFormat)gpuFrame->format); cout << "pixfmt: " << gpu_pixfmt << endl; cout << "keyframe: " << gpuFrame->key_frame << " width: " << gpuFrame->width << " height: "<< gpuFrame->height << endl; cout << "decode successed ✿✿ヽ(°▽°)ノ✿ " << endl; } } int main(){ FFNvDecoderManager* pDecManager = FFNvDecoderManager::getInstance(); // FFNvDecoder* decoder = pDecManager->createDecoder("rtmp://192.168.10.56:1935/objecteye/1",postDecoded,"dec1"); // if (!decoder) // { // return 1; // } // pDecManager->setUserPtr("dec1", decoder); // pDecManager->startDecodeByName("dec1"); FFNvDecoder* dec2 = pDecManager->createDecoder("/home/cmhu/data/duan1.avi",postDecoded,"dec2"); if (!dec2) { return 1; } pDecManager->setUserPtr("dec2", dec2); pDecManager->startDecodeByName("dec2"); while (getchar() != 'q'); // pDecManager->closeDecoderByName("dec1"); // pDecManager->pauseDecoder("dec1"); pDecManager->pauseDecoder("dec2"); while (getchar() != 'q'); // pDecManager->resumeDecoder("dec1"); pDecManager->resumeDecoder("dec2"); while (getchar() != 'q'); pDecManager->closeAllDecoder(); }