1 // Copyright (c) 2012 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 PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_ 6 #define PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_ 7 8 #include <vector> 9 10 #include "ppapi/c/dev/pp_video_dev.h" 11 #include "ppapi/cpp/completion_callback.h" 12 #include "ppapi/cpp/dev/buffer_dev.h" 13 #include "ppapi/cpp/resource.h" 14 15 namespace pp { 16 17 class Graphics3D; 18 class InstanceHandle; 19 20 // C++ wrapper for the Pepper Video Decoder interface. For more detailed 21 // documentation refer to the C interfaces. 22 // 23 // C++ version of the PPB_VideoDecoder_Dev interface. 24 class VideoDecoder_Dev : public Resource { 25 public: 26 // See PPB_VideoDecoder_Dev::Create. 27 VideoDecoder_Dev(const InstanceHandle& instance, 28 const Graphics3D& context, 29 PP_VideoDecoder_Profile profile); 30 explicit VideoDecoder_Dev(PP_Resource resource); 31 32 virtual ~VideoDecoder_Dev(); 33 34 // PPB_VideoDecoder_Dev implementation. 35 void AssignPictureBuffers(const std::vector<PP_PictureBuffer_Dev>& buffers); 36 int32_t Decode(const PP_VideoBitstreamBuffer_Dev& bitstream_buffer, 37 const CompletionCallback& callback); 38 void ReusePictureBuffer(int32_t picture_buffer_id); 39 int32_t Flush(const CompletionCallback& callback); 40 int32_t Reset(const CompletionCallback& callback); 41 }; 42 43 } // namespace pp 44 45 #endif // PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_ 46