Blame view

src/FFNvDecoderManager.h 1022 Bytes
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
      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();
  
      bool pauseDecoder(string name);
      bool resumeDecoder(string name);
  
      bool isSurport(const char* uri);
  
      int count();
  
  private:
      FFNvDecoderManager(){}
  
  private:
      map<string, FFNvDecoder*> decoderMap;
  };