| Index: chromecast/media/base/media_codec_support.cc
|
| diff --git a/chromecast/media/base/media_codec_support.cc b/chromecast/media/base/media_codec_support.cc
|
| index b04a077961e31c0d6274e43feb7e844bb7410fad..1d82f9ca21787c66d11cbdd5e0f32d7df358e28a 100644
|
| --- a/chromecast/media/base/media_codec_support.cc
|
| +++ b/chromecast/media/base/media_codec_support.cc
|
| @@ -4,13 +4,41 @@
|
|
|
| #include "chromecast/media/base/media_codec_support.h"
|
|
|
| -// TODO(gunsch/servolk): delete this file once a solution exists upstream.
|
| +#include "base/bind.h"
|
| +#include "chromecast/media/base/media_caps.h"
|
| +#include "chromecast/public/media_codec_support_shlib.h"
|
| +#include "net/base/mime_util.h"
|
|
|
| -namespace net {
|
| +namespace chromecast {
|
| +namespace media {
|
| +namespace {
|
| +
|
| +bool IsCodecSupported(const std::string& codec) {
|
| + MediaCodecSupportShlib::CodecSupport platform_support =
|
| + MediaCodecSupportShlib::IsSupported(codec);
|
| + if (platform_support == MediaCodecSupportShlib::kSupported)
|
| + return true;
|
| + else if (platform_support == MediaCodecSupportShlib::kNotSupported)
|
| + return false;
|
| +
|
| + if (codec == "aac51") {
|
| + return ::media::HdmiSinkSupportsPcmSurroundSound();
|
| + }
|
| + if (codec == "ac-3" || codec == "mp4a.a5") {
|
| + return ::media::HdmiSinkSupportsAC3();
|
| + }
|
| + if (codec == "ec-3" || codec == "mp4a.a6") {
|
| + return ::media::HdmiSinkSupportsEAC3();
|
| + }
|
|
|
| -bool DefaultIsCodecSupported(const std::string&) {
|
| return true;
|
| }
|
|
|
| -} // namespace net
|
| +} // namespace
|
| +
|
| +net::IsCodecSupportedCB GetIsCodecSupportedOnChromecastCB() {
|
| + return base::Bind(&IsCodecSupported);
|
| +}
|
|
|
| +} // namespace media
|
| +} // namespace chromecast
|
|
|