main.cpp
1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "FFNvDecoderManager.h"
#include <iostream>
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/test.mp4",postDecoded,"dec2");
if (!dec2)
{
return 1;
}
pDecManager->setUserPtr("dec2", dec2);
pDecManager->startDecodeByName("dec2");
while (getchar() != 'q');
// pDecManager->closeDecoderByName("dec1");
pDecManager->pauseDecoder("dec1");
while (getchar() != 'q');
pDecManager->resumeDecoder("dec1");
while (getchar() != 'q');
pDecManager->closeAllDecoder();
}