OLD | NEW |
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 { |
11 | 11 |
12 WebMVideoClient::WebMVideoClient(const LogCB& log_cb) | 12 WebMVideoClient::WebMVideoClient(const scoped_refptr<MediaLog>& media_log) |
13 : log_cb_(log_cb) { | 13 : media_log_(media_log) { |
14 Reset(); | 14 Reset(); |
15 } | 15 } |
16 | 16 |
17 WebMVideoClient::~WebMVideoClient() { | 17 WebMVideoClient::~WebMVideoClient() { |
18 } | 18 } |
19 | 19 |
20 void WebMVideoClient::Reset() { | 20 void WebMVideoClient::Reset() { |
21 pixel_width_ = -1; | 21 pixel_width_ = -1; |
22 pixel_height_ = -1; | 22 pixel_height_ = -1; |
23 crop_bottom_ = -1; | 23 crop_bottom_ = -1; |
(...skipping 13 matching lines...) Expand all Loading... |
37 | 37 |
38 VideoCodec video_codec = kUnknownVideoCodec; | 38 VideoCodec video_codec = kUnknownVideoCodec; |
39 VideoCodecProfile profile = VIDEO_CODEC_PROFILE_UNKNOWN; | 39 VideoCodecProfile profile = VIDEO_CODEC_PROFILE_UNKNOWN; |
40 if (codec_id == "V_VP8") { | 40 if (codec_id == "V_VP8") { |
41 video_codec = kCodecVP8; | 41 video_codec = kCodecVP8; |
42 profile = VP8PROFILE_ANY; | 42 profile = VP8PROFILE_ANY; |
43 } else if (codec_id == "V_VP9") { | 43 } else if (codec_id == "V_VP9") { |
44 video_codec = kCodecVP9; | 44 video_codec = kCodecVP9; |
45 profile = VP9PROFILE_ANY; | 45 profile = VP9PROFILE_ANY; |
46 } else { | 46 } else { |
47 MEDIA_LOG(ERROR, log_cb_) << "Unsupported video codec_id " << codec_id; | 47 MEDIA_LOG(ERROR, media_log_) << "Unsupported video codec_id " << codec_id; |
48 return false; | 48 return false; |
49 } | 49 } |
50 | 50 |
51 VideoPixelFormat format = | 51 VideoPixelFormat format = |
52 (alpha_mode_ == 1) ? PIXEL_FORMAT_YV12A : PIXEL_FORMAT_YV12; | 52 (alpha_mode_ == 1) ? PIXEL_FORMAT_YV12A : PIXEL_FORMAT_YV12; |
53 | 53 |
54 if (pixel_width_ <= 0 || pixel_height_ <= 0) | 54 if (pixel_width_ <= 0 || pixel_height_ <= 0) |
55 return false; | 55 return false; |
56 | 56 |
57 // Set crop and display unit defaults if these elements are not present. | 57 // Set crop and display unit defaults if these elements are not present. |
(...skipping 18 matching lines...) Expand all Loading... |
76 pixel_height_ - (crop_top_ + crop_bottom_)); | 76 pixel_height_ - (crop_top_ + crop_bottom_)); |
77 if (display_unit_ == 0) { | 77 if (display_unit_ == 0) { |
78 if (display_width_ <= 0) | 78 if (display_width_ <= 0) |
79 display_width_ = visible_rect.width(); | 79 display_width_ = visible_rect.width(); |
80 if (display_height_ <= 0) | 80 if (display_height_ <= 0) |
81 display_height_ = visible_rect.height(); | 81 display_height_ = visible_rect.height(); |
82 } else if (display_unit_ == 3) { | 82 } else if (display_unit_ == 3) { |
83 if (display_width_ <= 0 || display_height_ <= 0) | 83 if (display_width_ <= 0 || display_height_ <= 0) |
84 return false; | 84 return false; |
85 } else { | 85 } else { |
86 MEDIA_LOG(ERROR, log_cb_) << "Unsupported display unit type " | 86 MEDIA_LOG(ERROR, media_log_) << "Unsupported display unit type " |
87 << display_unit_; | 87 << display_unit_; |
88 return false; | 88 return false; |
89 } | 89 } |
90 gfx::Size natural_size = gfx::Size(display_width_, display_height_); | 90 gfx::Size natural_size = gfx::Size(display_width_, display_height_); |
91 const uint8* extra_data = NULL; | 91 const uint8* extra_data = NULL; |
92 size_t extra_data_size = 0; | 92 size_t extra_data_size = 0; |
93 if (codec_private.size() > 0) { | 93 if (codec_private.size() > 0) { |
94 extra_data = &codec_private[0]; | 94 extra_data = &codec_private[0]; |
95 extra_data_size = codec_private.size(); | 95 extra_data_size = codec_private.size(); |
96 } | 96 } |
97 | 97 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 dst = &display_unit_; | 133 dst = &display_unit_; |
134 break; | 134 break; |
135 case kWebMIdAlphaMode: | 135 case kWebMIdAlphaMode: |
136 dst = &alpha_mode_; | 136 dst = &alpha_mode_; |
137 break; | 137 break; |
138 default: | 138 default: |
139 return true; | 139 return true; |
140 } | 140 } |
141 | 141 |
142 if (*dst != -1) { | 142 if (*dst != -1) { |
143 MEDIA_LOG(ERROR, log_cb_) << "Multiple values for id " << std::hex << id | 143 MEDIA_LOG(ERROR, media_log_) << "Multiple values for id " << std::hex << id |
144 << " specified (" << *dst << " and " << val | 144 << " specified (" << *dst << " and " << val |
145 << ")"; | 145 << ")"; |
146 return false; | 146 return false; |
147 } | 147 } |
148 | 148 |
149 *dst = val; | 149 *dst = val; |
150 return true; | 150 return true; |
151 } | 151 } |
152 | 152 |
153 bool WebMVideoClient::OnBinary(int id, const uint8* data, int size) { | 153 bool WebMVideoClient::OnBinary(int id, const uint8* data, int size) { |
154 // Accept binary fields we don't care about for now. | 154 // Accept binary fields we don't care about for now. |
155 return true; | 155 return true; |
156 } | 156 } |
157 | 157 |
158 bool WebMVideoClient::OnFloat(int id, double val) { | 158 bool WebMVideoClient::OnFloat(int id, double val) { |
159 // Accept float fields we don't care about for now. | 159 // Accept float fields we don't care about for now. |
160 return true; | 160 return true; |
161 } | 161 } |
162 | 162 |
163 } // namespace media | 163 } // namespace media |
OLD | NEW |