supported_codec_finder.cc 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright 2017 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. #include "chromecast/browser/media/supported_codec_finder.h"
  5. #include <vector>
  6. #include "base/logging.h"
  7. #include "build/build_config.h"
  8. #include "chromecast/browser/media/media_caps_impl.h"
  9. #include "chromecast/media/base/media_codec_support.h"
  10. #if BUILDFLAG(IS_ANDROID)
  11. #include "media/base/android/media_codec_util.h"
  12. #endif
  13. #include "media/base/video_codecs.h"
  14. namespace chromecast {
  15. namespace media {
  16. void SupportedCodecFinder::FindSupportedCodecProfileLevels(
  17. MediaCapsImpl* media_caps) {
  18. // Don't need to list supported codecs on non-Android devices.
  19. #if BUILDFLAG(IS_ANDROID)
  20. // Get list of supported codecs from MediaCodec.
  21. std::vector<::media::CodecProfileLevel> codec_profile_levels;
  22. ::media::MediaCodecUtil::AddSupportedCodecProfileLevels(
  23. &codec_profile_levels);
  24. LOG(INFO) << "Adding " << codec_profile_levels.size()
  25. << " supported codec profiles/levels";
  26. for (const auto& codec_profile_level : codec_profile_levels) {
  27. media_caps->AddSupportedCodecProfileLevel(
  28. ToCastCodecProfileLevel(codec_profile_level));
  29. }
  30. #endif
  31. }
  32. } // namespace media
  33. } // namespace chromecast