Blame view

src/FFNvDecoderManager.h 1.11 KB
aac5773f   hucm   功能基本完成,接口待打磨
1
2
3
4
5
6
7
  #include "FFNvDecoder.h"
  #include<iostream>
  #include<vector>
  #include<map>
  
  using namespace std;
  
7319ea36   Hu Chunming   多显卡设置
8
9
10
11
12
13
  struct MgrDecConfig
  {
      FFDecConfig cfg;
      string name{""};
  };
  
aac5773f   hucm   功能基本完成,接口待打磨
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  class FFNvDecoderManager{
  public:
      static FFNvDecoderManager* getInstance(){
  		static FFNvDecoderManager* singleton = nullptr;
  		if (singleton == nullptr){
  			singleton = new FFNvDecoderManager();
  		}
  		return singleton;
  	}
  
      ~FFNvDecoderManager()
      {
          closeAllDecoder();
      }
  
7319ea36   Hu Chunming   多显卡设置
29
      FFNvDecoder* createDecoder(MgrDecConfig& config);
aac5773f   hucm   功能基本完成,接口待打磨
30
31
32
33
34
35
36
37
38
39
      void setUserPtr(string name, const void * userPtr);
  
      FFNvDecoder* getDecoderByName(const string name);
  
      void startDecode(FFNvDecoder*);
      void startAllDecode();
      bool startDecodeByName(string name);
  
      bool closeDecoderByName(string name);
      void closeAllDecoder();
48330793   Hu Chunming   修正解码线程自然结束时解码器内存没...
40
41
42
      void closeAllFinishedDecoder();
  
      bool removeDecoderByName(string name);
aac5773f   hucm   功能基本完成,接口待打磨
43
44
45
46
  
      bool pauseDecoder(string name);
      bool resumeDecoder(string name);
  
e96e6489   Hu Chunming   优化代码;添加isRunning函数
47
48
49
      bool isSurport(FFDecConfig& cfg);
  
      bool isRunning(string name);
aac5773f   hucm   功能基本完成,接口待打磨
50
51
52
53
54
55
56
57
58
  
      int count();
  
  private:
      FFNvDecoderManager(){}
  
  private:
      map<string, FFNvDecoder*> decoderMap;
  };