1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ppapi/cpp/private/video_frame_private.h" 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace pp { 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)VideoFrame_Private::VideoFrame_Private() 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : video_frame_() { 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) video_frame_.image_data = image_data_.pp_resource(); 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)VideoFrame_Private::VideoFrame_Private(const ImageData& image_data, 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PP_TimeTicks timestamp) 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : image_data_(image_data), video_frame_() { 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) video_frame_.timestamp = timestamp; 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) video_frame_.image_data = image_data_.pp_resource(); 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)VideoFrame_Private::VideoFrame_Private( 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PassRef, 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const PP_VideoFrame_Private& pp_video_frame) 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : video_frame_(pp_video_frame) { 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Take over the image_data resource in the frame. 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) image_data_ = ImageData(PASS_REF, video_frame_.image_data); 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)VideoFrame_Private::VideoFrame_Private(const VideoFrame_Private& other) 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : video_frame_() { 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) set_image_data(other.image_data()); 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) set_timestamp(other.timestamp()); 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)VideoFrame_Private::~VideoFrame_Private() { 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)VideoFrame_Private& VideoFrame_Private::operator=( 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const VideoFrame_Private& other) { 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (this == &other) 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return *this; 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) set_image_data(other.image_data()); 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) set_timestamp(other.timestamp()); 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return *this; 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace pp 50