diff options
Diffstat (limited to 'ppapi/cpp/video_frame.cc')
-rw-r--r-- | ppapi/cpp/video_frame.cc | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/ppapi/cpp/video_frame.cc b/ppapi/cpp/video_frame.cc new file mode 100644 index 0000000..a3c9311 --- /dev/null +++ b/ppapi/cpp/video_frame.cc @@ -0,0 +1,77 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ppapi/cpp/video_frame.h" + +#include "ppapi/cpp/module.h" +#include "ppapi/cpp/module_impl.h" + +namespace pp { + +namespace { + +template <> const char* interface_name<PPB_VideoFrame_0_1>() { + return PPB_VIDEOFRAME_INTERFACE_0_1; +} + +} + +VideoFrame::VideoFrame() { +} + +VideoFrame::VideoFrame(const VideoFrame& other) : Resource(other) { +} + +VideoFrame::VideoFrame(const Resource& resource) : Resource(resource) { +} + +VideoFrame::VideoFrame(PassRef, PP_Resource resource) + : Resource(PASS_REF, resource) { +} + +VideoFrame::~VideoFrame() { +} + +PP_TimeDelta VideoFrame::GetTimestamp() const { + PP_TimeDelta timestamp = .0; + if (has_interface<PPB_VideoFrame_0_1>()) { + timestamp = get_interface<PPB_VideoFrame_0_1>()->GetTimestamp( + pp_resource()); + } + return timestamp; +} + +void VideoFrame::SetTimestamp(PP_TimeDelta timestamp) { + if (has_interface<PPB_VideoFrame_0_1>()) + get_interface<PPB_VideoFrame_0_1>()->SetTimestamp(pp_resource(), timestamp); +} + +PP_VideoFrame_Format VideoFrame::GetFormat() const { + if (has_interface<PPB_VideoFrame_0_1>()) + return get_interface<PPB_VideoFrame_0_1>()->GetFormat(pp_resource()); + return PP_VIDEOFRAME_FORMAT_UNKNOWN; +} + +bool VideoFrame::GetSize(Size* size) const { + if (has_interface<PPB_VideoFrame_0_1>()) + return PP_ToBool(get_interface<PPB_VideoFrame_0_1>()->GetSize( + pp_resource(), &size->pp_size())); + return false; +} + +void* VideoFrame::GetDataBuffer() { + if (has_interface<PPB_VideoFrame_0_1>()) + return get_interface<PPB_VideoFrame_0_1>()->GetDataBuffer(pp_resource()); + return NULL; +} + +uint32_t VideoFrame::GetDataBufferSize() const { + if (has_interface<PPB_VideoFrame_0_1>()) { + return get_interface<PPB_VideoFrame_0_1>()->GetDataBufferSize( + pp_resource()); + } + return 0; +} + +} // namespace pp |