Home | History | Annotate | Download | only in test
      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:
     32   FakeNativeHandleBuffer(void* native_handle, int width, int height)
     33       : NativeHandleBuffer(native_handle, width, height) {}
     34 
     35   ~FakeNativeHandleBuffer() {
     36     delete reinterpret_cast<FakeNativeHandle*>(native_handle_);
     37   }
     38 
     39  private:
     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