• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 #ifndef WEBRTC_TEST_FAKE_TEXTURE_FRAME_H_
11 #define WEBRTC_TEST_FAKE_TEXTURE_FRAME_H_
12 
13 #include "webrtc/base/checks.h"
14 #include "webrtc/common_video/include/video_frame_buffer.h"
15 #include "webrtc/video_frame.h"
16 
17 namespace webrtc {
18 namespace test {
19 
20 class FakeNativeHandle {
21  public:
22   static VideoFrame CreateFrame(FakeNativeHandle* native_handle,
23                                 int width,
24                                 int height,
25                                 uint32_t timestamp,
26                                 int64_t render_time_ms,
27                                 VideoRotation rotation);
28 };
29 
30 class FakeNativeHandleBuffer : public NativeHandleBuffer {
31  public:
FakeNativeHandleBuffer(void * native_handle,int width,int height)32   FakeNativeHandleBuffer(void* native_handle, int width, int height)
33       : NativeHandleBuffer(native_handle, width, height) {}
34 
~FakeNativeHandleBuffer()35   ~FakeNativeHandleBuffer() {
36     delete reinterpret_cast<FakeNativeHandle*>(native_handle_);
37   }
38 
39  private:
NativeToI420Buffer()40   rtc::scoped_refptr<VideoFrameBuffer> NativeToI420Buffer() override {
41     rtc::scoped_refptr<VideoFrameBuffer> buffer(
42         new rtc::RefCountedObject<I420Buffer>(width_, height_));
43     int half_height = (height_ + 1) / 2;
44     int half_width = (width_ + 1) / 2;
45     memset(buffer->MutableData(kYPlane), 0, height_ * width_);
46     memset(buffer->MutableData(kUPlane), 0, half_height * half_width);
47     memset(buffer->MutableData(kVPlane), 0, half_height * half_width);
48     return buffer;
49   }
50 };
51 
52 }  // namespace test
53 }  // namespace webrtc
54 #endif  //  WEBRTC_TEST_FAKE_TEXTURE_FRAME_H_
55