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 "media/muxers/webm_muxer.h" | 5 #include "media/muxers/webm_muxer.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "media/base/audio_parameters.h" | 9 #include "media/base/audio_parameters.h" |
10 #include "media/base/limits.h" | 10 #include "media/base/limits.h" |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 if (first_frame_timestamp_video_.is_null()) | 137 if (first_frame_timestamp_video_.is_null()) |
138 first_frame_timestamp_video_ = timestamp; | 138 first_frame_timestamp_video_ = timestamp; |
139 } | 139 } |
140 | 140 |
141 // TODO(ajose): Support multiple tracks: http://crbug.com/528523 | 141 // TODO(ajose): Support multiple tracks: http://crbug.com/528523 |
142 if (has_audio_ && !audio_track_index_) { | 142 if (has_audio_ && !audio_track_index_) { |
143 DVLOG(1) << __func__ << ": delaying until audio track ready."; | 143 DVLOG(1) << __func__ << ": delaying until audio track ready."; |
144 if (is_key_frame) // Upon Key frame reception, empty the encoded queue. | 144 if (is_key_frame) // Upon Key frame reception, empty the encoded queue. |
145 encoded_frames_queue_.clear(); | 145 encoded_frames_queue_.clear(); |
146 | 146 |
147 encoded_frames_queue_.push_back(base::WrapUnique(new EncodedVideoFrame( | 147 encoded_frames_queue_.push_back(base::MakeUnique<EncodedVideoFrame>( |
148 std::move(encoded_data), timestamp, is_key_frame))); | 148 std::move(encoded_data), timestamp, is_key_frame)); |
149 return; | 149 return; |
150 } | 150 } |
151 | 151 |
152 // Dump all saved encoded video frames if any. | 152 // Dump all saved encoded video frames if any. |
153 while (!encoded_frames_queue_.empty()) { | 153 while (!encoded_frames_queue_.empty()) { |
154 AddFrame( | 154 AddFrame( |
155 std::move(encoded_frames_queue_.front()->data), video_track_index_, | 155 std::move(encoded_frames_queue_.front()->data), video_track_index_, |
156 encoded_frames_queue_.front()->timestamp - first_frame_timestamp_video_, | 156 encoded_frames_queue_.front()->timestamp - first_frame_timestamp_video_, |
157 encoded_frames_queue_.front()->is_keyframe); | 157 encoded_frames_queue_.front()->is_keyframe); |
158 encoded_frames_queue_.pop_front(); | 158 encoded_frames_queue_.pop_front(); |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 | 323 |
324 WebmMuxer::EncodedVideoFrame::EncodedVideoFrame( | 324 WebmMuxer::EncodedVideoFrame::EncodedVideoFrame( |
325 std::unique_ptr<std::string> data, | 325 std::unique_ptr<std::string> data, |
326 base::TimeTicks timestamp, | 326 base::TimeTicks timestamp, |
327 bool is_keyframe) | 327 bool is_keyframe) |
328 : data(std::move(data)), timestamp(timestamp), is_keyframe(is_keyframe) {} | 328 : data(std::move(data)), timestamp(timestamp), is_keyframe(is_keyframe) {} |
329 | 329 |
330 WebmMuxer::EncodedVideoFrame::~EncodedVideoFrame() {} | 330 WebmMuxer::EncodedVideoFrame::~EncodedVideoFrame() {} |
331 | 331 |
332 } // namespace media | 332 } // namespace media |
OLD | NEW |