| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/base/video_frame.h" | 5 #include "media/base/video_frame.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 frame->strides_[kUPlane] = u_stride; | 174 frame->strides_[kUPlane] = u_stride; |
| 175 frame->strides_[kVPlane] = v_stride; | 175 frame->strides_[kVPlane] = v_stride; |
| 176 frame->data_[kYPlane] = y_data; | 176 frame->data_[kYPlane] = y_data; |
| 177 frame->data_[kUPlane] = u_data; | 177 frame->data_[kUPlane] = u_data; |
| 178 frame->data_[kVPlane] = v_data; | 178 frame->data_[kVPlane] = v_data; |
| 179 frame->no_longer_needed_cb_ = no_longer_needed_cb; | 179 frame->no_longer_needed_cb_ = no_longer_needed_cb; |
| 180 return frame; | 180 return frame; |
| 181 } | 181 } |
| 182 | 182 |
| 183 // static | 183 // static |
| 184 scoped_refptr<VideoFrame> VideoFrame::WrapVideoFrame( |
| 185 const scoped_refptr<VideoFrame>& frame, |
| 186 const base::Closure& no_longer_needed_cb) { |
| 187 scoped_refptr<VideoFrame> wrapped_frame(new VideoFrame( |
| 188 frame->format(), frame->coded_size(), frame->visible_rect(), |
| 189 frame->natural_size(), frame->GetTimestamp(), frame->end_of_stream())); |
| 190 |
| 191 for (size_t i = 0; i < NumPlanes(frame->format()); ++i) { |
| 192 wrapped_frame->strides_[i] = frame->stride(i); |
| 193 wrapped_frame->data_[i] = frame->data(i); |
| 194 } |
| 195 |
| 196 wrapped_frame->no_longer_needed_cb_ = no_longer_needed_cb; |
| 197 return wrapped_frame; |
| 198 } |
| 199 |
| 200 // static |
| 184 scoped_refptr<VideoFrame> VideoFrame::CreateEOSFrame() { | 201 scoped_refptr<VideoFrame> VideoFrame::CreateEOSFrame() { |
| 185 return new VideoFrame(VideoFrame::UNKNOWN, | 202 return new VideoFrame(VideoFrame::UNKNOWN, |
| 186 gfx::Size(), | 203 gfx::Size(), |
| 187 gfx::Rect(), | 204 gfx::Rect(), |
| 188 gfx::Size(), | 205 gfx::Size(), |
| 189 kNoTimestamp(), | 206 kNoTimestamp(), |
| 190 true); | 207 true); |
| 191 } | 208 } |
| 192 | 209 |
| 193 // static | 210 // static |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 : mailbox_(mailbox), | 520 : mailbox_(mailbox), |
| 504 sync_point_(sync_point), | 521 sync_point_(sync_point), |
| 505 release_callback_(release_callback) {} | 522 release_callback_(release_callback) {} |
| 506 | 523 |
| 507 VideoFrame::MailboxHolder::~MailboxHolder() { | 524 VideoFrame::MailboxHolder::~MailboxHolder() { |
| 508 if (!release_callback_.is_null()) | 525 if (!release_callback_.is_null()) |
| 509 release_callback_.Run(sync_point_); | 526 release_callback_.Run(sync_point_); |
| 510 } | 527 } |
| 511 | 528 |
| 512 } // namespace media | 529 } // namespace media |
| OLD | NEW |