gpu_video_accelerator_util.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Copyright 2015 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef MEDIA_GPU_GPU_VIDEO_ACCELERATOR_UTIL_H_
  5. #define MEDIA_GPU_GPU_VIDEO_ACCELERATOR_UTIL_H_
  6. #include "gpu/config/gpu_info.h"
  7. #include "media/base/supported_video_decoder_config.h"
  8. #include "media/gpu/media_gpu_export.h"
  9. #include "media/video/video_decode_accelerator.h"
  10. #include "media/video/video_encode_accelerator.h"
  11. namespace media {
  12. class MEDIA_GPU_EXPORT GpuVideoAcceleratorUtil {
  13. public:
  14. // Convert decoder gpu capabilities to media capabilities.
  15. static VideoDecodeAccelerator::Capabilities
  16. ConvertGpuToMediaDecodeCapabilities(
  17. const gpu::VideoDecodeAcceleratorCapabilities& gpu_capabilities);
  18. // Convert decoder gpu profiles to media profiles.
  19. static VideoDecodeAccelerator::SupportedProfiles
  20. ConvertGpuToMediaDecodeProfiles(
  21. const gpu::VideoDecodeAcceleratorSupportedProfiles& gpu_profiles);
  22. // Convert decoder media capabilities to gpu capabilities.
  23. static gpu::VideoDecodeAcceleratorCapabilities
  24. ConvertMediaToGpuDecodeCapabilities(
  25. const VideoDecodeAccelerator::Capabilities& media_capabilities);
  26. // Convert decoder media profiles to gpu profiles.
  27. static gpu::VideoDecodeAcceleratorSupportedProfiles
  28. ConvertMediaToGpuDecodeProfiles(
  29. const VideoDecodeAccelerator::SupportedProfiles& media_profiles);
  30. static gpu::VideoDecodeAcceleratorSupportedProfiles
  31. ConvertMediaConfigsToGpuDecodeProfiles(
  32. const SupportedVideoDecoderConfigs& configs);
  33. // Convert encoder gpu profiles to media profiles.
  34. static VideoEncodeAccelerator::SupportedProfiles
  35. ConvertGpuToMediaEncodeProfiles(
  36. const gpu::VideoEncodeAcceleratorSupportedProfiles& gpu_profiles);
  37. // Convert encoder media profiles to gpu profiles.
  38. static gpu::VideoEncodeAcceleratorSupportedProfiles
  39. ConvertMediaToGpuEncodeProfiles(
  40. const VideoEncodeAccelerator::SupportedProfiles& media_profiles);
  41. // Insert |new_profiles| into |media_profiles|, ensuring no duplicates are
  42. // inserted.
  43. static void InsertUniqueDecodeProfiles(
  44. const VideoDecodeAccelerator::SupportedProfiles& new_profiles,
  45. VideoDecodeAccelerator::SupportedProfiles* media_profiles);
  46. // Insert |new_profiles| into |media_profiles|, ensuring no duplicates are
  47. // inserted.
  48. static void InsertUniqueEncodeProfiles(
  49. const VideoEncodeAccelerator::SupportedProfiles& new_profiles,
  50. VideoEncodeAccelerator::SupportedProfiles* media_profiles);
  51. };
  52. } // namespace media
  53. #endif // MEDIA_GPU_GPU_VIDEO_ACCELERATOR_UTIL_H_