Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ppapi / cpp / dev / video_decoder_dev.h
blobfab4fb517d85c0a18e0a8a8a61d576259db4d687
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.
5 #ifndef PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_
6 #define PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_
8 #include <vector>
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"
15 namespace pp {
17 class Graphics3D;
18 class InstanceHandle;
20 // C++ wrapper for the Pepper Video Decoder interface. For more detailed
21 // documentation refer to the C interfaces.
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);
32 virtual ~VideoDecoder_Dev();
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);
43 } // namespace pp
45 #endif // PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_