// Copyright (c) 2012 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. #ifndef PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_ #define PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_ #include <vector> #include "ppapi/c/dev/pp_video_dev.h" #include "ppapi/cpp/completion_callback.h" #include "ppapi/cpp/dev/buffer_dev.h" #include "ppapi/cpp/resource.h" namespace pp { class Graphics3D; class InstanceHandle; // C++ wrapper for the Pepper Video Decoder interface. For more detailed // documentation refer to the C interfaces. // // C++ version of the PPB_VideoDecoder_Dev interface. class VideoDecoder_Dev : public Resource { public: // See PPB_VideoDecoder_Dev::Create. VideoDecoder_Dev(const InstanceHandle& instance, const Graphics3D& context, PP_VideoDecoder_Profile profile); explicit VideoDecoder_Dev(PP_Resource resource); virtual ~VideoDecoder_Dev(); // PPB_VideoDecoder_Dev implementation. void AssignPictureBuffers(const std::vector<PP_PictureBuffer_Dev>& buffers); int32_t Decode(const PP_VideoBitstreamBuffer_Dev& bitstream_buffer, const CompletionCallback& callback); void ReusePictureBuffer(int32_t picture_buffer_id); int32_t Flush(const CompletionCallback& callback); int32_t Reset(const CompletionCallback& callback); }; } // namespace pp #endif // PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_