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

Side by Side Diff: media/mojo/clients/mojo_decryptor.cc

Issue 2908303003: media: Create Mojo StructTraits for VideoFrame (Closed)
Patch Set: Code formatting. Created 3 years, 6 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
OLDNEW
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/mojo/clients/mojo_decryptor.h" 5 #include "media/mojo/clients/mojo_decryptor.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <utility> 10 #include <utility>
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 217
218 Decryptor::AudioFrames audio_frames; 218 Decryptor::AudioFrames audio_frames;
219 for (size_t i = 0; i < audio_buffers.size(); ++i) 219 for (size_t i = 0; i < audio_buffers.size(); ++i)
220 audio_frames.push_back(audio_buffers[i].To<scoped_refptr<AudioBuffer>>()); 220 audio_frames.push_back(audio_buffers[i].To<scoped_refptr<AudioBuffer>>());
221 221
222 audio_decode_cb.Run(status, audio_frames); 222 audio_decode_cb.Run(status, audio_frames);
223 } 223 }
224 224
225 void MojoDecryptor::OnVideoDecoded(const VideoDecodeCB& video_decode_cb, 225 void MojoDecryptor::OnVideoDecoded(const VideoDecodeCB& video_decode_cb,
226 Status status, 226 Status status,
227 mojom::VideoFramePtr video_frame, 227 const scoped_refptr<VideoFrame>& video_frame,
dcheng 2017/06/05 20:33:01 Nit: Consider passing by value and using std::move
sandersd (OOO until July 31) 2017/06/05 20:46:13 This would be the ideal setup, but I don't see a c
228 mojom::FrameResourceReleaserPtr releaser) { 228 mojom::FrameResourceReleaserPtr releaser) {
229 DVLOG_IF(1, status != kSuccess) << __func__ << "(" << status << ")"; 229 DVLOG_IF(1, status != kSuccess) << __func__ << "(" << status << ")";
230 DVLOG_IF(3, status == kSuccess) << __func__; 230 DVLOG_IF(3, status == kSuccess) << __func__;
231 DCHECK(thread_checker_.CalledOnValidThread()); 231 DCHECK(thread_checker_.CalledOnValidThread());
232 232
233 if (video_frame.is_null()) {
234 video_decode_cb.Run(status, nullptr);
235 return;
236 }
237
238 scoped_refptr<VideoFrame> frame(video_frame.To<scoped_refptr<VideoFrame>>());
239
240 // If using shared memory, ensure that |releaser| is closed when 233 // If using shared memory, ensure that |releaser| is closed when
241 // |frame| is destroyed. 234 // |frame| is destroyed.
242 if (releaser) { 235 if (video_frame && releaser) {
243 frame->AddDestructionObserver( 236 video_frame->AddDestructionObserver(
244 base::Bind(&ReleaseFrameResource, base::Passed(&releaser))); 237 base::Bind(&ReleaseFrameResource, base::Passed(&releaser)));
245 } 238 }
246 239
247 video_decode_cb.Run(status, frame); 240 video_decode_cb.Run(status, video_frame);
248 } 241 }
249 242
250 } // namespace media 243 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698