From 4c0cc5bc5fa027b9392ff2886e731bea3aac7602 Mon Sep 17 00:00:00 2001 From: Emircan Uysaler Date: Sun, 25 Nov 2018 22:45:22 -0500 Subject: [PATCH] Reland Profile 2 to default profiles This is a reland after chrome browser tests are updated. Bug: webrtc:9376 Change-Id: I818bf5d447da7901ffe49f2c452decb89196e829 TBR: niklas.enbom@webrtc.org Reviewed-on: https://webrtc-review.googlesource.com/c/112060 Reviewed-by: Emircan Uysaler Commit-Queue: Emircan Uysaler Cr-Commit-Position: refs/heads/master@{#25778} --- modules/video_coding/codecs/vp9/vp9.cc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/video_coding/codecs/vp9/vp9.cc b/modules/video_coding/codecs/vp9/vp9.cc index 59cc66707e..22a0888120 100644 --- a/modules/video_coding/codecs/vp9/vp9.cc +++ b/modules/video_coding/codecs/vp9/vp9.cc @@ -14,15 +14,30 @@ #include "api/video_codecs/sdp_video_format.h" #include "modules/video_coding/codecs/vp9/vp9_impl.h" #include "rtc_base/checks.h" +#include "vpx/vp8cx.h" +#include "vpx/vp8dx.h" +#include "vpx/vpx_codec.h" namespace webrtc { std::vector SupportedVP9Codecs() { #ifdef RTC_ENABLE_VP9 - // TODO(emircan): Add Profile 2 support after fixing browser_tests. + // Profile 2 might not be available on some platforms until + // https://bugs.chromium.org/p/webm/issues/detail?id=1544 is solved. + static bool vpx_supports_high_bit_depth = + (vpx_codec_get_caps(vpx_codec_vp9_cx()) & VPX_CODEC_CAP_HIGHBITDEPTH) != + 0 && + (vpx_codec_get_caps(vpx_codec_vp9_dx()) & VPX_CODEC_CAP_HIGHBITDEPTH) != + 0; + std::vector supported_formats{SdpVideoFormat( cricket::kVp9CodecName, {{kVP9FmtpProfileId, VP9ProfileToString(VP9Profile::kProfile0)}})}; + if (vpx_supports_high_bit_depth) { + supported_formats.push_back(SdpVideoFormat( + cricket::kVp9CodecName, + {{kVP9FmtpProfileId, VP9ProfileToString(VP9Profile::kProfile2)}})); + } return supported_formats; #else return std::vector();