1*103e46e4SHarish Mahendrakar // Copyright (c) 2016 The WebM project authors. All Rights Reserved. 2*103e46e4SHarish Mahendrakar // 3*103e46e4SHarish Mahendrakar // Use of this source code is governed by a BSD-style license 4*103e46e4SHarish Mahendrakar // that can be found in the LICENSE file in the root of the source 5*103e46e4SHarish Mahendrakar // tree. An additional intellectual property rights grant can be found 6*103e46e4SHarish Mahendrakar // in the file PATENTS. All contributing project authors may 7*103e46e4SHarish Mahendrakar // be found in the AUTHORS file in the root of the source tree. 8*103e46e4SHarish Mahendrakar #include "common/video_frame.h" 9*103e46e4SHarish Mahendrakar 10*103e46e4SHarish Mahendrakar #include <cstdio> 11*103e46e4SHarish Mahendrakar 12*103e46e4SHarish Mahendrakar namespace libwebm { 13*103e46e4SHarish Mahendrakar Init(std::size_t new_length)14*103e46e4SHarish Mahendrakarbool VideoFrame::Buffer::Init(std::size_t new_length) { 15*103e46e4SHarish Mahendrakar capacity = 0; 16*103e46e4SHarish Mahendrakar length = 0; 17*103e46e4SHarish Mahendrakar data.reset(new std::uint8_t[new_length]); 18*103e46e4SHarish Mahendrakar 19*103e46e4SHarish Mahendrakar if (data.get() == nullptr) { 20*103e46e4SHarish Mahendrakar fprintf(stderr, "VideoFrame: Out of memory."); 21*103e46e4SHarish Mahendrakar return false; 22*103e46e4SHarish Mahendrakar } 23*103e46e4SHarish Mahendrakar 24*103e46e4SHarish Mahendrakar capacity = new_length; 25*103e46e4SHarish Mahendrakar length = 0; 26*103e46e4SHarish Mahendrakar return true; 27*103e46e4SHarish Mahendrakar } 28*103e46e4SHarish Mahendrakar Init(std::size_t length)29*103e46e4SHarish Mahendrakarbool VideoFrame::Init(std::size_t length) { return buffer_.Init(length); } 30*103e46e4SHarish Mahendrakar Init(std::size_t length,std::int64_t nano_pts,Codec codec)31*103e46e4SHarish Mahendrakarbool VideoFrame::Init(std::size_t length, std::int64_t nano_pts, Codec codec) { 32*103e46e4SHarish Mahendrakar nanosecond_pts_ = nano_pts; 33*103e46e4SHarish Mahendrakar codec_ = codec; 34*103e46e4SHarish Mahendrakar return Init(length); 35*103e46e4SHarish Mahendrakar } 36*103e46e4SHarish Mahendrakar SetBufferLength(std::size_t length)37*103e46e4SHarish Mahendrakarbool VideoFrame::SetBufferLength(std::size_t length) { 38*103e46e4SHarish Mahendrakar if (length > buffer_.capacity || buffer_.data.get() == nullptr) 39*103e46e4SHarish Mahendrakar return false; 40*103e46e4SHarish Mahendrakar 41*103e46e4SHarish Mahendrakar buffer_.length = length; 42*103e46e4SHarish Mahendrakar return true; 43*103e46e4SHarish Mahendrakar } 44*103e46e4SHarish Mahendrakar 45*103e46e4SHarish Mahendrakar } // namespace libwebm 46