Blame view

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