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

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

Issue 1786733004: Revert of media config: expand is_encrypted to a struct. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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_audio_client.cc ('k') | media/formats/webm/webm_video_client.h » ('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_tracks_parser.h" 5 #include "media/formats/webm/webm_tracks_parser.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "media/base/media_util.h"
11 #include "media/base/timestamp_constants.h" 10 #include "media/base/timestamp_constants.h"
12 #include "media/formats/webm/webm_constants.h" 11 #include "media/formats/webm/webm_constants.h"
13 #include "media/formats/webm/webm_content_encodings.h" 12 #include "media/formats/webm/webm_content_encodings.h"
14 13
15 namespace media { 14 namespace media {
16 15
17 static TextKind CodecIdToTextKind(const std::string& codec_id) { 16 static TextKind CodecIdToTextKind(const std::string& codec_id) {
18 if (codec_id == kWebMCodecSubtitles) 17 if (codec_id == kWebMCodecSubtitles)
19 return kTextSubtitles; 18 return kTextSubtitles;
20 19
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 186
188 std::string encryption_key_id; 187 std::string encryption_key_id;
189 if (track_content_encodings_client_) { 188 if (track_content_encodings_client_) {
190 DCHECK(!track_content_encodings_client_->content_encodings().empty()); 189 DCHECK(!track_content_encodings_client_->content_encodings().empty());
191 // If we have multiple ContentEncoding in one track. Always choose the 190 // If we have multiple ContentEncoding in one track. Always choose the
192 // key id in the first ContentEncoding as the key id of the track. 191 // key id in the first ContentEncoding as the key id of the track.
193 encryption_key_id = track_content_encodings_client_-> 192 encryption_key_id = track_content_encodings_client_->
194 content_encodings()[0]->encryption_key_id(); 193 content_encodings()[0]->encryption_key_id();
195 } 194 }
196 195
197 EncryptionScheme encryption_scheme =
198 encryption_key_id.empty() ? Unencrypted() : AesCtrEncryptionScheme();
199
200 if (track_type_ == kWebMTrackTypeAudio) { 196 if (track_type_ == kWebMTrackTypeAudio) {
201 if (audio_track_num_ == -1) { 197 if (audio_track_num_ == -1) {
202 audio_track_num_ = track_num_; 198 audio_track_num_ = track_num_;
203 audio_encryption_key_id_ = encryption_key_id; 199 audio_encryption_key_id_ = encryption_key_id;
204 200
205 if (default_duration_ == 0) { 201 if (default_duration_ == 0) {
206 MEDIA_LOG(ERROR, media_log_) << "Illegal 0ns audio TrackEntry " 202 MEDIA_LOG(ERROR, media_log_) << "Illegal 0ns audio TrackEntry "
207 "DefaultDuration"; 203 "DefaultDuration";
208 return false; 204 return false;
209 } 205 }
210 audio_default_duration_ = default_duration_; 206 audio_default_duration_ = default_duration_;
211 207
212 DCHECK(!audio_decoder_config_.IsValidConfig()); 208 DCHECK(!audio_decoder_config_.IsValidConfig());
213 if (!audio_client_.InitializeConfig( 209 if (!audio_client_.InitializeConfig(
214 codec_id_, codec_private_, seek_preroll_, codec_delay_, 210 codec_id_, codec_private_, seek_preroll_, codec_delay_,
215 encryption_scheme, &audio_decoder_config_)) { 211 !audio_encryption_key_id_.empty(), &audio_decoder_config_)) {
216 return false; 212 return false;
217 } 213 }
218 media_tracks_->AddAudioTrack(audio_decoder_config_, 214 media_tracks_->AddAudioTrack(audio_decoder_config_,
219 base::Uint64ToString(track_num_), "main", 215 base::Uint64ToString(track_num_), "main",
220 track_name_, track_language_); 216 track_name_, track_language_);
221 } else { 217 } else {
222 MEDIA_LOG(DEBUG, media_log_) << "Ignoring audio track " << track_num_; 218 MEDIA_LOG(DEBUG, media_log_) << "Ignoring audio track " << track_num_;
223 ignored_tracks_.insert(track_num_); 219 ignored_tracks_.insert(track_num_);
224 } 220 }
225 } else if (track_type_ == kWebMTrackTypeVideo) { 221 } else if (track_type_ == kWebMTrackTypeVideo) {
226 if (video_track_num_ == -1) { 222 if (video_track_num_ == -1) {
227 video_track_num_ = track_num_; 223 video_track_num_ = track_num_;
228 video_encryption_key_id_ = encryption_key_id; 224 video_encryption_key_id_ = encryption_key_id;
229 225
230 if (default_duration_ == 0) { 226 if (default_duration_ == 0) {
231 MEDIA_LOG(ERROR, media_log_) << "Illegal 0ns video TrackEntry " 227 MEDIA_LOG(ERROR, media_log_) << "Illegal 0ns video TrackEntry "
232 "DefaultDuration"; 228 "DefaultDuration";
233 return false; 229 return false;
234 } 230 }
235 video_default_duration_ = default_duration_; 231 video_default_duration_ = default_duration_;
236 232
237 DCHECK(!video_decoder_config_.IsValidConfig()); 233 DCHECK(!video_decoder_config_.IsValidConfig());
238 if (!video_client_.InitializeConfig(codec_id_, codec_private_, 234 if (!video_client_.InitializeConfig(
239 encryption_scheme, 235 codec_id_, codec_private_, !video_encryption_key_id_.empty(),
240 &video_decoder_config_)) { 236 &video_decoder_config_)) {
241 return false; 237 return false;
242 } 238 }
243 media_tracks_->AddVideoTrack(video_decoder_config_, 239 media_tracks_->AddVideoTrack(video_decoder_config_,
244 base::Uint64ToString(track_num_), "main", 240 base::Uint64ToString(track_num_), "main",
245 track_name_, track_language_); 241 track_name_, track_language_);
246 } else { 242 } else {
247 MEDIA_LOG(DEBUG, media_log_) << "Ignoring video track " << track_num_; 243 MEDIA_LOG(DEBUG, media_log_) << "Ignoring video track " << track_num_;
248 ignored_tracks_.insert(track_num_); 244 ignored_tracks_.insert(track_num_);
249 } 245 }
250 } else if (track_type_ == kWebMTrackTypeSubtitlesOrCaptions || 246 } else if (track_type_ == kWebMTrackTypeSubtitlesOrCaptions ||
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 } else { 351 } else {
356 track_language_ = str; 352 track_language_ = str;
357 } 353 }
358 return true; 354 return true;
359 } 355 }
360 356
361 return true; 357 return true;
362 } 358 }
363 359
364 } // namespace media 360 } // namespace media
OLDNEW
« no previous file with comments | « media/formats/webm/webm_audio_client.cc ('k') | media/formats/webm/webm_video_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698