1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_RENDERER_MEDIA_NATIVE_HANDLE_IMPL_H_ 6#define CONTENT_RENDERER_MEDIA_NATIVE_HANDLE_IMPL_H_ 7 8#include "base/memory/ref_counted.h" 9#include "media/base/video_frame.h" 10#include "third_party/webrtc/common_video/interface/native_handle.h" 11 12namespace content { 13 14class NativeHandleImpl : public webrtc::NativeHandle { 15 public: 16 // Wraps a video frame in the handle. 17 explicit NativeHandleImpl(scoped_refptr<media::VideoFrame> frame); 18 virtual ~NativeHandleImpl(); 19 20 // Retrieves the video frame in the handle. The frame is still ref-counted by 21 // the handle. The ref count decreases when NativeHandleImpl is destroyed. 22 virtual void* GetHandle() OVERRIDE; 23 24 private: 25 scoped_refptr<media::VideoFrame> frame_; 26 27 DISALLOW_COPY_AND_ASSIGN(NativeHandleImpl); 28}; 29 30} // namespace content 31 32#endif // CONTENT_RENDERER_MEDIA_NATIVE_HANDLE_IMPL_H_ 33