hardware_acceleration.h 686 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef HARDWARE_ACCELERATION
  2. #define HARDWARE_ACCELERATION
  3. #include <string>
  4. #include <vector>
  5. #include <list>
  6. #define ENCODER_NAME_LEN 100
  7. namespace am {
  8. typedef enum _HARDWARE_TYPE {
  9. HARDWARE_TYPE_UNKNOWN,
  10. HARDWARE_TYPE_NVENC,
  11. HARDWARE_TYPE_QSV,
  12. HARDWARE_TYPE_AMF,
  13. HARDWARE_TYPE_VAAPI
  14. }HARDWARE_TYPE;
  15. typedef struct _HARDWARE_ENCODER {
  16. HARDWARE_TYPE type;
  17. char name[ENCODER_NAME_LEN];
  18. }HARDWARE_ENCODER;
  19. class hardware_acceleration
  20. {
  21. private:
  22. hardware_acceleration(){}
  23. ~hardware_acceleration(){}
  24. public:
  25. static std::vector<std::string> get_video_hardware_devices();
  26. static std::list<HARDWARE_ENCODER> get_supported_video_encoders();
  27. };
  28. }
  29. #endif