| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROMECAST_PUBLIC_MEDIA_MEDIA_CAPABILITIES_SHLIB_H_ |
| #define CHROMECAST_PUBLIC_MEDIA_MEDIA_CAPABILITIES_SHLIB_H_ |
| |
| #include "chromecast_export.h" |
| #include "decoder_config.h" |
| |
| namespace chromecast { |
| namespace media { |
| |
| // Interface for specifying platform media capabilities. It allows for more |
| // detailed information to be provided by the platform compared to the previous |
| // MediaCodecSupportShlib interface. |
| class CHROMECAST_EXPORT MediaCapabilitiesShlib { |
| public: |
| // Return true if the current platform supports the given combination of video |
| // codec, profile and level. For a list of supported codecs and profiles see |
| // decoder_config.h. The level value is codec specific. For H.264 and VP9 the |
| // level value is multiplied by ten, i.e. level=51 corresponds to level 5.1 |
| // For HEVC the level value is multiplied by 30, to match level_idc value in |
| // HEVC bitstream. So for HEVC level=153 corresponds to level 5.1 |
| static bool IsSupportedVideoConfig(VideoCodec codec, |
| VideoProfile profile, |
| int level); |
| |
| // Return true if the platform supports the given audio |config|. |
| static bool IsSupportedAudioConfig(const AudioConfig& config); |
| }; |
| |
| } // namespace media |
| } // namespace chromecast |
| |
| #endif // CHROMECAST_PUBLIC_MEDIA_MEDIA_CAPABILITIES_SHLIB_H_ |