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 12 namespace content { 13 14 class 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