hardware_acceleration.h 719 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef HARDWARE_ACCELERATION
  2. #define HARDWARE_ACCELERATION
  3. #include <list>
  4. #include <string>
  5. #include <vector>
  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. {
  17. HARDWARE_TYPE type;
  18. char name[ENCODER_NAME_LEN];
  19. } HARDWARE_ENCODER;
  20. class hardware_acceleration
  21. {
  22. private:
  23. hardware_acceleration() {}
  24. ~hardware_acceleration() {}
  25. public:
  26. static std::vector<std::string> get_video_hardware_devices();
  27. static std::list<HARDWARE_ENCODER> get_supported_video_encoders();
  28. };
  29. } // namespace am
  30. #endif