| Index: media/formats/webm/webm_video_client.cc
|
| diff --git a/media/formats/webm/webm_video_client.cc b/media/formats/webm/webm_video_client.cc
|
| index 73bd095b854b73afd57276d232e7032cd3c4b543..1f8d288afded331769fdacfcaae12ec0f4b7d73c 100644
|
| --- a/media/formats/webm/webm_video_client.cc
|
| +++ b/media/formats/webm/webm_video_client.cc
|
| @@ -28,6 +28,7 @@ void WebMVideoClient::Reset() {
|
| display_height_ = -1;
|
| display_unit_ = -1;
|
| alpha_mode_ = -1;
|
| + colour_parsed_ = false;
|
| }
|
|
|
| bool WebMVideoClient::InitializeConfig(
|
| @@ -96,9 +97,29 @@ bool WebMVideoClient::InitializeConfig(
|
| config->Initialize(video_codec, profile, format, COLOR_SPACE_HD_REC709,
|
| coded_size, visible_rect, natural_size, codec_private,
|
| encryption_scheme);
|
| + if (colour_parsed_) {
|
| + WebMColorMetadata color_metadata = colour_parser_.GetWebMColorMetadata();
|
| + config->set_color_space_info(color_metadata.color_space);
|
| + config->set_hdr_metadata(color_metadata.hdr_metadata);
|
| + }
|
| return config->IsValidConfig();
|
| }
|
|
|
| +WebMParserClient* WebMVideoClient::OnListStart(int id) {
|
| + if (id == kWebMIdColour) {
|
| + colour_parsed_ = false;
|
| + return &colour_parser_;
|
| + }
|
| +
|
| + return this;
|
| +}
|
| +
|
| +bool WebMVideoClient::OnListEnd(int id) {
|
| + if (id == kWebMIdColour)
|
| + colour_parsed_ = true;
|
| + return true;
|
| +}
|
| +
|
| bool WebMVideoClient::OnUInt(int id, int64_t val) {
|
| int64_t* dst = NULL;
|
|
|
|
|