OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "content/renderer/media/media_recorder_handler.h" | 5 #include "content/renderer/media/media_recorder_handler.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 // http://www.webmproject.org/docs/container Sec:"HTML5 Video Type Parameters" | 85 // http://www.webmproject.org/docs/container Sec:"HTML5 Video Type Parameters" |
86 static const char* const kVideoCodecs[] = { "vp8", "vp9", "h264", "opus" }; | 86 static const char* const kVideoCodecs[] = { "vp8", "vp9", "h264", "opus" }; |
87 static const char* const kAudioCodecs[] = { "opus" }; | 87 static const char* const kAudioCodecs[] = { "opus" }; |
88 const char* const* codecs = video ? &kVideoCodecs[0] : &kAudioCodecs[0]; | 88 const char* const* codecs = video ? &kVideoCodecs[0] : &kAudioCodecs[0]; |
89 const int codecs_count = | 89 const int codecs_count = |
90 video ? arraysize(kVideoCodecs) : arraysize(kAudioCodecs); | 90 video ? arraysize(kVideoCodecs) : arraysize(kAudioCodecs); |
91 | 91 |
92 std::vector<std::string> codecs_list; | 92 std::vector<std::string> codecs_list; |
93 media::ParseCodecString(web_codecs.utf8(), &codecs_list, true /* strip */); | 93 media::ParseCodecString(web_codecs.utf8(), &codecs_list, true /* strip */); |
94 for (const auto& codec : codecs_list) { | 94 for (const auto& codec : codecs_list) { |
95 const auto found = std::find_if( | 95 auto* const* found = std::find_if( |
96 &codecs[0], &codecs[codecs_count], [&codec](const char* name) { | 96 &codecs[0], &codecs[codecs_count], [&codec](const char* name) { |
97 return base::EqualsCaseInsensitiveASCII(codec, name); | 97 return base::EqualsCaseInsensitiveASCII(codec, name); |
98 }); | 98 }); |
99 if (found == &codecs[codecs_count]) | 99 if (found == &codecs[codecs_count]) |
100 return false; | 100 return false; |
101 } | 101 } |
102 return true; | 102 return true; |
103 } | 103 } |
104 | 104 |
105 bool MediaRecorderHandler::initialize( | 105 bool MediaRecorderHandler::initialize( |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 timeslice_ = TimeDelta::FromMilliseconds(0); | 233 timeslice_ = TimeDelta::FromMilliseconds(0); |
234 video_recorders_.clear(); | 234 video_recorders_.clear(); |
235 audio_recorders_.clear(); | 235 audio_recorders_.clear(); |
236 webm_muxer_.reset(); | 236 webm_muxer_.reset(); |
237 } | 237 } |
238 | 238 |
239 void MediaRecorderHandler::pause() { | 239 void MediaRecorderHandler::pause() { |
240 DCHECK(main_render_thread_checker_.CalledOnValidThread()); | 240 DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
241 DCHECK(recording_); | 241 DCHECK(recording_); |
242 recording_ = false; | 242 recording_ = false; |
243 for (const auto& video_recorder : video_recorders_) | 243 for (auto* video_recorder : video_recorders_) |
244 video_recorder->Pause(); | 244 video_recorder->Pause(); |
245 for (const auto& audio_recorder : audio_recorders_) | 245 for (auto* audio_recorder : audio_recorders_) |
246 audio_recorder->Pause(); | 246 audio_recorder->Pause(); |
247 webm_muxer_->Pause(); | 247 webm_muxer_->Pause(); |
248 } | 248 } |
249 | 249 |
250 void MediaRecorderHandler::resume() { | 250 void MediaRecorderHandler::resume() { |
251 DCHECK(main_render_thread_checker_.CalledOnValidThread()); | 251 DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
252 DCHECK(!recording_); | 252 DCHECK(!recording_); |
253 recording_ = true; | 253 recording_ = true; |
254 for (const auto& video_recorder : video_recorders_) | 254 for (auto* video_recorder : video_recorders_) |
255 video_recorder->Resume(); | 255 video_recorder->Resume(); |
256 for (const auto& audio_recorder : audio_recorders_) | 256 for (auto* audio_recorder : audio_recorders_) |
257 audio_recorder->Resume(); | 257 audio_recorder->Resume(); |
258 webm_muxer_->Resume(); | 258 webm_muxer_->Resume(); |
259 } | 259 } |
260 | 260 |
261 void MediaRecorderHandler::OnEncodedVideo( | 261 void MediaRecorderHandler::OnEncodedVideo( |
262 const scoped_refptr<media::VideoFrame>& video_frame, | 262 const scoped_refptr<media::VideoFrame>& video_frame, |
263 std::unique_ptr<std::string> encoded_data, | 263 std::unique_ptr<std::string> encoded_data, |
264 TimeTicks timestamp, | 264 TimeTicks timestamp, |
265 bool is_key_frame) { | 265 bool is_key_frame) { |
266 DCHECK(main_render_thread_checker_.CalledOnValidThread()); | 266 DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 recorder->OnData(audio_bus, timestamp); | 309 recorder->OnData(audio_bus, timestamp); |
310 } | 310 } |
311 | 311 |
312 void MediaRecorderHandler::SetAudioFormatForTesting( | 312 void MediaRecorderHandler::SetAudioFormatForTesting( |
313 const media::AudioParameters& params) { | 313 const media::AudioParameters& params) { |
314 for (auto* recorder : audio_recorders_) | 314 for (auto* recorder : audio_recorders_) |
315 recorder->OnSetFormat(params); | 315 recorder->OnSetFormat(params); |
316 } | 316 } |
317 | 317 |
318 } // namespace content | 318 } // namespace content |
OLD | NEW |