| Index: ppapi/cpp/dev/video_decoder_dev.cc
|
| diff --git a/ppapi/cpp/dev/video_decoder_dev.cc b/ppapi/cpp/dev/video_decoder_dev.cc
|
| index 504530a29616642ddb08da314695e13f02a0d2cb..a6994b542b41fc709d8059c3387df324acc54ada 100644
|
| --- a/ppapi/cpp/dev/video_decoder_dev.cc
|
| +++ b/ppapi/cpp/dev/video_decoder_dev.cc
|
| @@ -12,8 +12,6 @@
|
| #include "ppapi/cpp/module.h"
|
| #include "ppapi/cpp/module_impl.h"
|
|
|
| -using std::vector;
|
| -
|
| namespace pp {
|
|
|
| namespace {
|
| @@ -24,64 +22,74 @@ template <> const char* interface_name<PPB_VideoDecoder_Dev>() {
|
|
|
| } // namespace
|
|
|
| -VideoDecoder::VideoDecoder(const Instance* /* instance */,
|
| - const std::vector<uint32_t>& /* config */,
|
| - CompletionCallback /* callback */,
|
| +VideoDecoder::VideoDecoder(const Instance* instance,
|
| + const PP_VideoConfigElement* config,
|
| + CompletionCallback callback,
|
| Client* client)
|
| : client_(client) {
|
| if (!has_interface<PPB_VideoDecoder_Dev>())
|
| return;
|
| - // TODO(vmr): Implement.
|
| + PassRefFromConstructor(get_interface<PPB_VideoDecoder_Dev>()->Create(
|
| + instance->pp_instance(), config, callback.pp_completion_callback()));
|
| }
|
|
|
| VideoDecoder::~VideoDecoder() {}
|
|
|
| -vector<uint32_t> VideoDecoder::GetConfigs(
|
| - Instance* /* instance */,
|
| - const vector<uint32_t>& /* prototype_config */) {
|
| - // TODO(vmr): Implement.
|
| - vector<uint32_t> matching_configs;
|
| +bool VideoDecoder::GetConfigs(Instance* instance,
|
| + const PP_VideoConfigElement* prototype_config,
|
| + PP_VideoConfigElement* matching_configs,
|
| + uint32_t matching_configs_size,
|
| + uint32_t* num_of_matching_configs) {
|
| if (!has_interface<PPB_VideoDecoder_Dev>())
|
| - return matching_configs;
|
| - return matching_configs;
|
| + return false;
|
| + return PPBoolToBool(get_interface<PPB_VideoDecoder_Dev>()->GetConfigs(
|
| + instance->pp_instance(), prototype_config, matching_configs,
|
| + matching_configs_size, num_of_matching_configs));
|
| }
|
|
|
| -void VideoDecoder::AssignGLESBuffers(uint32_t /* no_of_buffers */,
|
| - const PP_GLESBuffer_Dev& /* buffers */) {
|
| - // TODO(vmr): Implement.
|
| +void VideoDecoder::AssignGLESBuffers(
|
| + const std::vector<PP_GLESBuffer_Dev>& buffers) {
|
| + if (!has_interface<PPB_VideoDecoder_Dev>() || !pp_resource())
|
| + return;
|
| + get_interface<PPB_VideoDecoder_Dev>()->AssignGLESBuffers(
|
| + pp_resource(), buffers.size(), &buffers[0]);
|
| }
|
|
|
| void VideoDecoder::AssignSysmemBuffers(
|
| - uint32_t /* no_of_buffers */,
|
| - const PP_SysmemBuffer_Dev& /* buffers */) {
|
| - // TODO(vmr): Implement.
|
| + const std::vector<PP_SysmemBuffer_Dev>& buffers) {
|
| + if (!has_interface<PPB_VideoDecoder_Dev>() || !pp_resource())
|
| + return;
|
| + get_interface<PPB_VideoDecoder_Dev>()->AssignSysmemBuffers(
|
| + pp_resource(), buffers.size(), &buffers[0]);
|
| }
|
|
|
| -bool VideoDecoder::Decode(
|
| - const PP_VideoBitstreamBuffer_Dev& /* bitstream_buffer */,
|
| - CompletionCallback /* callback */) {
|
| - // TODO(vmr): Implement.
|
| +bool VideoDecoder::Decode(const PP_VideoBitstreamBuffer_Dev& bitstream_buffer,
|
| + CompletionCallback callback) {
|
| if (!has_interface<PPB_VideoDecoder_Dev>() || !pp_resource())
|
| return false;
|
| - return false;
|
| + return PPBoolToBool(get_interface<PPB_VideoDecoder_Dev>()->Decode(
|
| + pp_resource(), &bitstream_buffer, callback.pp_completion_callback()));
|
| }
|
|
|
| -void VideoDecoder::ReusePictureBuffer(int32_t /* picture_buffer_id */) {
|
| - // TODO(vmr): Implement.
|
| +void VideoDecoder::ReusePictureBuffer(int32_t picture_buffer_id) {
|
| + if (!has_interface<PPB_VideoDecoder_Dev>() || !pp_resource())
|
| + return;
|
| + get_interface<PPB_VideoDecoder_Dev>()->ReusePictureBuffer(
|
| + pp_resource(), picture_buffer_id);
|
| }
|
|
|
| -bool VideoDecoder::Flush(CompletionCallback /* callback */) {
|
| - // TODO(vmr): Implement.
|
| - if (!has_interface<PPB_VideoDecoder_Dev>())
|
| +bool VideoDecoder::Flush(CompletionCallback callback) {
|
| + if (!has_interface<PPB_VideoDecoder_Dev>() || !pp_resource())
|
| return false;
|
| - return true;
|
| + return PPBoolToBool(get_interface<PPB_VideoDecoder_Dev>()->Flush(
|
| + pp_resource(), callback.pp_completion_callback()));
|
| }
|
|
|
| -bool VideoDecoder::Abort(CompletionCallback /* callback */) {
|
| - // TODO(vmr): Implement.
|
| - if (!has_interface<PPB_VideoDecoder_Dev>())
|
| +bool VideoDecoder::Abort(CompletionCallback callback) {
|
| + if (!has_interface<PPB_VideoDecoder_Dev>() || !pp_resource())
|
| return false;
|
| - return true;
|
| + return PPBoolToBool(get_interface<PPB_VideoDecoder_Dev>()->Abort(
|
| + pp_resource(), callback.pp_completion_callback()));
|
| }
|
|
|
| } // namespace pp
|
|
|