Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(225)

Side by Side Diff: media/formats/webm/webm_video_client.cc

Issue 2333663003: Add color metadata info to VideoDecoderConfig. (Closed)
Patch Set: Commented the RangeID comment as suggested Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/formats/webm/webm_video_client.h ('k') | media/test/data/README » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/formats/webm/webm_video_client.h" 5 #include "media/formats/webm/webm_video_client.h"
6 6
7 #include "media/base/video_decoder_config.h" 7 #include "media/base/video_decoder_config.h"
8 #include "media/formats/webm/webm_constants.h" 8 #include "media/formats/webm/webm_constants.h"
9 9
10 namespace media { 10 namespace media {
(...skipping 10 matching lines...) Expand all
21 pixel_width_ = -1; 21 pixel_width_ = -1;
22 pixel_height_ = -1; 22 pixel_height_ = -1;
23 crop_bottom_ = -1; 23 crop_bottom_ = -1;
24 crop_top_ = -1; 24 crop_top_ = -1;
25 crop_left_ = -1; 25 crop_left_ = -1;
26 crop_right_ = -1; 26 crop_right_ = -1;
27 display_width_ = -1; 27 display_width_ = -1;
28 display_height_ = -1; 28 display_height_ = -1;
29 display_unit_ = -1; 29 display_unit_ = -1;
30 alpha_mode_ = -1; 30 alpha_mode_ = -1;
31 colour_parsed_ = false;
31 } 32 }
32 33
33 bool WebMVideoClient::InitializeConfig( 34 bool WebMVideoClient::InitializeConfig(
34 const std::string& codec_id, 35 const std::string& codec_id,
35 const std::vector<uint8_t>& codec_private, 36 const std::vector<uint8_t>& codec_private,
36 const EncryptionScheme& encryption_scheme, 37 const EncryptionScheme& encryption_scheme,
37 VideoDecoderConfig* config) { 38 VideoDecoderConfig* config) {
38 DCHECK(config); 39 DCHECK(config);
39 40
40 VideoCodec video_codec = kUnknownVideoCodec; 41 VideoCodec video_codec = kUnknownVideoCodec;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 } else { 90 } else {
90 MEDIA_LOG(ERROR, media_log_) << "Unsupported display unit type " 91 MEDIA_LOG(ERROR, media_log_) << "Unsupported display unit type "
91 << display_unit_; 92 << display_unit_;
92 return false; 93 return false;
93 } 94 }
94 gfx::Size natural_size = gfx::Size(display_width_, display_height_); 95 gfx::Size natural_size = gfx::Size(display_width_, display_height_);
95 96
96 config->Initialize(video_codec, profile, format, COLOR_SPACE_HD_REC709, 97 config->Initialize(video_codec, profile, format, COLOR_SPACE_HD_REC709,
97 coded_size, visible_rect, natural_size, codec_private, 98 coded_size, visible_rect, natural_size, codec_private,
98 encryption_scheme); 99 encryption_scheme);
100 if (colour_parsed_) {
101 WebMColorMetadata color_metadata = colour_parser_.GetWebMColorMetadata();
102 config->set_color_space_info(color_metadata.color_space);
103 config->set_hdr_metadata(color_metadata.hdr_metadata);
104 }
99 return config->IsValidConfig(); 105 return config->IsValidConfig();
100 } 106 }
101 107
108 WebMParserClient* WebMVideoClient::OnListStart(int id) {
109 if (id == kWebMIdColour) {
110 colour_parsed_ = false;
111 return &colour_parser_;
112 }
113
114 return this;
115 }
116
117 bool WebMVideoClient::OnListEnd(int id) {
118 if (id == kWebMIdColour)
119 colour_parsed_ = true;
120 return true;
121 }
122
102 bool WebMVideoClient::OnUInt(int id, int64_t val) { 123 bool WebMVideoClient::OnUInt(int id, int64_t val) {
103 int64_t* dst = NULL; 124 int64_t* dst = NULL;
104 125
105 switch (id) { 126 switch (id) {
106 case kWebMIdPixelWidth: 127 case kWebMIdPixelWidth:
107 dst = &pixel_width_; 128 dst = &pixel_width_;
108 break; 129 break;
109 case kWebMIdPixelHeight: 130 case kWebMIdPixelHeight:
110 dst = &pixel_height_; 131 dst = &pixel_height_;
111 break; 132 break;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 // Accept binary fields we don't care about for now. 173 // Accept binary fields we don't care about for now.
153 return true; 174 return true;
154 } 175 }
155 176
156 bool WebMVideoClient::OnFloat(int id, double val) { 177 bool WebMVideoClient::OnFloat(int id, double val) {
157 // Accept float fields we don't care about for now. 178 // Accept float fields we don't care about for now.
158 return true; 179 return true;
159 } 180 }
160 181
161 } // namespace media 182 } // namespace media
OLDNEW
« no previous file with comments | « media/formats/webm/webm_video_client.h ('k') | media/test/data/README » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698