Index: content/renderer/media/render_media_client.cc |
diff --git a/content/renderer/media/render_media_client.cc b/content/renderer/media/render_media_client.cc |
index b720b4e9da9d675d61abb10e7e7034c55cbff94e..ce839ddc9c92c5f05231fc265cf90ec983eed6ac 100644 |
--- a/content/renderer/media/render_media_client.cc |
+++ b/content/renderer/media/render_media_client.cc |
@@ -89,13 +89,38 @@ void RenderMediaClient::RecordRapporURL(const std::string& metric, |
GetContentClient()->renderer()->RecordRapporURL(metric, url); |
} |
-bool RenderMediaClient::IsSupportedVideoConfig(media::VideoCodec codec, |
- media::VideoCodecProfile profile, |
- int level) { |
+bool IsHdrColorManagementEnabled() { |
hubbe
2017/03/02 23:37:11
Remove this function for now.
chcunningham
2017/03/07 02:27:56
Done.
|
+ // TODO(hubbe): Wire this up. |
+ return false; |
+} |
+ |
+bool IsSdrTransferFunction(gfx::ColorSpace::TransferID eotf) { |
hubbe
2017/03/02 23:37:11
Make this IsTransferFunctionSupported().
chcunningham
2017/03/07 02:27:56
Done.
|
+ switch (eotf) { |
+ case gfx::ColorSpace::TransferID::GAMMA22: |
+ case gfx::ColorSpace::TransferID::BT709: |
+ case gfx::ColorSpace::TransferID::SMPTE170M: |
+ case gfx::ColorSpace::TransferID::BT2020_10: |
+ case gfx::ColorSpace::TransferID::BT2020_12: |
+ case gfx::ColorSpace::TransferID::IEC61966_2_1: |
+ return true; |
+ default: |
+ return false; |
+ } |
+} |
+ |
+bool RenderMediaClient::IsSupportedVideoConfig( |
+ media::VideoCodec codec, |
+ media::VideoCodecProfile profile, |
+ int level, |
+ gfx::ColorSpace::TransferID eotf) { |
+ // TODO(chcunningham): Query decoders for codec profile support. |
switch (codec) { |
+ case media::kCodecVP9: |
+ // Color management required for HDR to not look terrible. |
+ return IsSdrTransferFunction(eotf) || IsHdrColorManagementEnabled(); |
servolk
2017/03/02 18:56:36
VP9 profile 0 is SDR, profile 2 is HDR. I believe
chcunningham
2017/03/02 23:13:08
My understanding from hubbe is that profile 2 does
hubbe
2017/03/02 23:37:11
Just call IsTransferFunctionSupported() here.
hubbe
2017/03/02 23:37:11
Profile 2 is just more bits per channel, and has n
|
+ |
case media::kCodecH264: |
case media::kCodecVP8: |
- case media::kCodecVP9: |
case media::kCodecTheora: |
return true; |