/* * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef COMMON_VIDEO_INCLUDE_VIDEO_FRAME_BUFFER_H_ #define COMMON_VIDEO_INCLUDE_VIDEO_FRAME_BUFFER_H_ #include #include "api/video/video_frame_buffer.h" #include "rtc_base/callback.h" #include "rtc_base/scoped_ref_ptr.h" namespace webrtc { // Deprecated. Please use WrapI420Buffer(...) instead. class WrappedI420Buffer : public I420BufferInterface { public: WrappedI420Buffer(int width, int height, const uint8_t* y_plane, int y_stride, const uint8_t* u_plane, int u_stride, const uint8_t* v_plane, int v_stride, const rtc::Callback0& no_longer_used); int width() const override; int height() const override; const uint8_t* DataY() const override; const uint8_t* DataU() const override; const uint8_t* DataV() const override; int StrideY() const override; int StrideU() const override; int StrideV() const override; private: friend class rtc::RefCountedObject; ~WrappedI420Buffer() override; const int width_; const int height_; const uint8_t* const y_plane_; const uint8_t* const u_plane_; const uint8_t* const v_plane_; const int y_stride_; const int u_stride_; const int v_stride_; rtc::Callback0 no_longer_used_cb_; }; rtc::scoped_refptr WrapI420Buffer( int width, int height, const uint8_t* y_plane, int y_stride, const uint8_t* u_plane, int u_stride, const uint8_t* v_plane, int v_stride, const rtc::Callback0& no_longer_used); rtc::scoped_refptr WrapI444Buffer( int width, int height, const uint8_t* y_plane, int y_stride, const uint8_t* u_plane, int u_stride, const uint8_t* v_plane, int v_stride, const rtc::Callback0& no_longer_used); rtc::scoped_refptr WrapI420ABuffer( int width, int height, const uint8_t* y_plane, int y_stride, const uint8_t* u_plane, int u_stride, const uint8_t* v_plane, int v_stride, const uint8_t* a_plane, int a_stride, const rtc::Callback0& no_longer_used); rtc::scoped_refptr WrapYuvBuffer( VideoFrameBuffer::Type type, int width, int height, const uint8_t* y_plane, int y_stride, const uint8_t* u_plane, int u_stride, const uint8_t* v_plane, int v_stride, const rtc::Callback0& no_longer_used); } // namespace webrtc #endif // COMMON_VIDEO_INCLUDE_VIDEO_FRAME_BUFFER_H_