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_
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"
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
{
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
);
45 #endif // PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_