| Index: ppapi/proxy/ppb_video_decoder_proxy.cc
|
| ===================================================================
|
| --- ppapi/proxy/ppb_video_decoder_proxy.cc (revision 100753)
|
| +++ ppapi/proxy/ppb_video_decoder_proxy.cc (working copy)
|
| @@ -154,14 +154,36 @@
|
| RunBitstreamBufferCallback(bitstream_buffer_id, result);
|
| }
|
|
|
| -PPB_VideoDecoder_Proxy::PPB_VideoDecoder_Proxy(Dispatcher* dispatcher)
|
| - : InterfaceProxy(dispatcher),
|
| +namespace {
|
| +
|
| +InterfaceProxy* CreateVideoDecoderProxy(Dispatcher* dispatcher,
|
| + const void* target_interface) {
|
| + return new PPB_VideoDecoder_Proxy(dispatcher, target_interface);
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +PPB_VideoDecoder_Proxy::PPB_VideoDecoder_Proxy(Dispatcher* dispatcher,
|
| + const void* target_interface)
|
| + : InterfaceProxy(dispatcher, target_interface),
|
| callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
|
| }
|
|
|
| PPB_VideoDecoder_Proxy::~PPB_VideoDecoder_Proxy() {
|
| }
|
|
|
| +// static
|
| +const InterfaceProxy::Info* PPB_VideoDecoder_Proxy::GetInfo() {
|
| + static const Info info = {
|
| + thunk::GetPPB_VideoDecoder_Thunk(),
|
| + PPB_VIDEODECODER_DEV_INTERFACE,
|
| + INTERFACE_ID_PPB_VIDEO_DECODER_DEV,
|
| + false,
|
| + &CreateVideoDecoderProxy,
|
| + };
|
| + return &info;
|
| +}
|
| +
|
| bool PPB_VideoDecoder_Proxy::OnMessageReceived(const IPC::Message& msg) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(PPB_VideoDecoder_Proxy, msg)
|
| @@ -230,7 +252,8 @@
|
| PP_Instance instance, const HostResource& graphics_context,
|
| PP_VideoDecoder_Profile profile,
|
| HostResource* result) {
|
| - thunk::EnterResourceCreation resource_creation(instance);
|
| + thunk::EnterFunction<thunk::ResourceCreationAPI> resource_creation(instance,
|
| + true);
|
| if (resource_creation.failed())
|
| return;
|
|
|
| @@ -243,52 +266,46 @@
|
| void PPB_VideoDecoder_Proxy::OnMsgDecode(
|
| const HostResource& decoder,
|
| const HostResource& buffer, int32 id, int32 size) {
|
| - EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_API> enter(
|
| - decoder, callback_factory_,
|
| + pp::CompletionCallback callback = callback_factory_.NewRequiredCallback(
|
| &PPB_VideoDecoder_Proxy::SendMsgEndOfBitstreamACKToPlugin, decoder, id);
|
| - if (enter.failed())
|
| - return;
|
| +
|
| PP_VideoBitstreamBuffer_Dev bitstream = { id, buffer.host_resource(), size };
|
| - enter.SetResult(enter.object()->Decode(&bitstream, enter.callback()));
|
| + ppb_video_decoder_target()->Decode(
|
| + decoder.host_resource(), &bitstream, callback.pp_completion_callback());
|
| }
|
|
|
| void PPB_VideoDecoder_Proxy::OnMsgAssignPictureBuffers(
|
| const HostResource& decoder,
|
| const std::vector<PP_PictureBuffer_Dev>& buffers) {
|
| - EnterHostFromHostResource<PPB_VideoDecoder_API> enter(decoder);
|
| - if (enter.succeeded() && !buffers.empty()) {
|
| - const PP_PictureBuffer_Dev* buffer_array = &buffers.front();
|
| - enter.object()->AssignPictureBuffers(buffers.size(), buffer_array);
|
| - }
|
| + DCHECK(!buffers.empty());
|
| + const PP_PictureBuffer_Dev* buffer_array = &buffers.front();
|
| +
|
| + ppb_video_decoder_target()->AssignPictureBuffers(
|
| + decoder.host_resource(), buffers.size(), buffer_array);
|
| }
|
|
|
| void PPB_VideoDecoder_Proxy::OnMsgReusePictureBuffer(
|
| const HostResource& decoder, int32 picture_buffer_id) {
|
| - EnterHostFromHostResource<PPB_VideoDecoder_API> enter(decoder);
|
| - if (enter.succeeded())
|
| - enter.object()->ReusePictureBuffer(picture_buffer_id);
|
| + ppb_video_decoder_target()->ReusePictureBuffer(
|
| + decoder.host_resource(), picture_buffer_id);
|
| }
|
|
|
| void PPB_VideoDecoder_Proxy::OnMsgFlush(const HostResource& decoder) {
|
| - EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_API> enter(
|
| - decoder, callback_factory_,
|
| + pp::CompletionCallback callback = callback_factory_.NewRequiredCallback(
|
| &PPB_VideoDecoder_Proxy::SendMsgFlushACKToPlugin, decoder);
|
| - if (enter.succeeded())
|
| - enter.SetResult(enter.object()->Flush(enter.callback()));
|
| + ppb_video_decoder_target()->Flush(
|
| + decoder.host_resource(), callback.pp_completion_callback());
|
| }
|
|
|
| void PPB_VideoDecoder_Proxy::OnMsgReset(const HostResource& decoder) {
|
| - EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_API> enter(
|
| - decoder, callback_factory_,
|
| + pp::CompletionCallback callback = callback_factory_.NewRequiredCallback(
|
| &PPB_VideoDecoder_Proxy::SendMsgResetACKToPlugin, decoder);
|
| - if (enter.succeeded())
|
| - enter.SetResult(enter.object()->Reset(enter.callback()));
|
| + ppb_video_decoder_target()->Reset(
|
| + decoder.host_resource(), callback.pp_completion_callback());
|
| }
|
|
|
| void PPB_VideoDecoder_Proxy::OnMsgDestroy(const HostResource& decoder) {
|
| - EnterHostFromHostResource<PPB_VideoDecoder_API> enter(decoder);
|
| - if (enter.succeeded())
|
| - enter.object()->Destroy();
|
| + ppb_video_decoder_target()->Destroy(decoder.host_resource());
|
| }
|
|
|
| void PPB_VideoDecoder_Proxy::SendMsgEndOfBitstreamACKToPlugin(
|
|
|