Index: webkit/plugins/ppapi/ppb_video_decoder_impl.cc |
diff --git a/webkit/plugins/ppapi/ppb_video_decoder_impl.cc b/webkit/plugins/ppapi/ppb_video_decoder_impl.cc |
index 234a9062ab6f0101de2785d1921d0be370e9d0e0..0f887b8a408b7e320e39a0806472cf16b9f7dc4a 100644 |
--- a/webkit/plugins/ppapi/ppb_video_decoder_impl.cc |
+++ b/webkit/plugins/ppapi/ppb_video_decoder_impl.cc |
@@ -36,7 +36,6 @@ PPB_VideoDecoder_Impl::PPB_VideoDecoder_Impl(PluginInstance* instance) |
: Resource(instance), |
callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
context3d_id_(0), |
- destroy_callback_(PP_BlockUntilComplete()), |
flush_callback_(PP_BlockUntilComplete()), |
reset_callback_(PP_BlockUntilComplete()) { |
ppp_videodecoder_ = |
@@ -76,11 +75,10 @@ int32_t PPB_VideoDecoder_Impl::Initialize( |
if (command_buffer_route_id == 0) |
return PP_ERROR_FAILED; |
- platform_video_decoder_.reset( |
- instance()->delegate()->CreateVideoDecoder( |
- this, command_buffer_route_id, context3d->gles2_impl()->helper())); |
+ platform_video_decoder_ = instance()->delegate()->CreateVideoDecoder( |
+ this, command_buffer_route_id, context3d->gles2_impl()->helper()); |
- if (!platform_video_decoder_.get()) |
+ if (!platform_video_decoder_) |
return PP_ERROR_FAILED; |
std::vector<uint32> copied; |
@@ -108,7 +106,7 @@ int32_t PPB_VideoDecoder_Impl::Initialize( |
int32_t PPB_VideoDecoder_Impl::Decode( |
const PP_VideoBitstreamBuffer_Dev* bitstream_buffer, |
PP_CompletionCallback callback) { |
- if (!platform_video_decoder_.get()) |
+ if (!platform_video_decoder_) |
return PP_ERROR_BADRESOURCE; |
EnterResourceNoLock<PPB_Buffer_API> enter(bitstream_buffer->data, true); |
@@ -129,7 +127,7 @@ int32_t PPB_VideoDecoder_Impl::Decode( |
void PPB_VideoDecoder_Impl::AssignGLESBuffers( |
uint32_t no_of_buffers, |
const PP_GLESBuffer_Dev* buffers) { |
- if (!platform_video_decoder_.get()) |
+ if (!platform_video_decoder_) |
return; |
std::vector<media::GLESBuffer> wrapped_buffers; |
@@ -145,13 +143,13 @@ void PPB_VideoDecoder_Impl::AssignGLESBuffers( |
} |
void PPB_VideoDecoder_Impl::ReusePictureBuffer(int32_t picture_buffer_id) { |
- if (!platform_video_decoder_.get()) |
+ if (!platform_video_decoder_) |
return; |
platform_video_decoder_->ReusePictureBuffer(picture_buffer_id); |
} |
int32_t PPB_VideoDecoder_Impl::Flush(PP_CompletionCallback callback) { |
- if (!platform_video_decoder_.get()) |
+ if (!platform_video_decoder_) |
return PP_ERROR_BADRESOURCE; |
// Store the callback to be called when Flush() is done. |
@@ -163,7 +161,7 @@ int32_t PPB_VideoDecoder_Impl::Flush(PP_CompletionCallback callback) { |
} |
int32_t PPB_VideoDecoder_Impl::Reset(PP_CompletionCallback callback) { |
- if (!platform_video_decoder_.get()) |
+ if (!platform_video_decoder_) |
return PP_ERROR_BADRESOURCE; |
// Store the callback to be called when Reset() is done. |
@@ -174,16 +172,10 @@ int32_t PPB_VideoDecoder_Impl::Reset(PP_CompletionCallback callback) { |
return PP_OK_COMPLETIONPENDING; |
} |
-int32_t PPB_VideoDecoder_Impl::Destroy(PP_CompletionCallback callback) { |
- if (!platform_video_decoder_.get()) |
- return PP_ERROR_BADRESOURCE; |
- |
- // Store the callback to be called when Destroy() is done. |
- // TODO(fischman,vrk): consider implications of already-outstanding callback. |
- destroy_callback_ = callback; |
- |
+void PPB_VideoDecoder_Impl::Destroy() { |
+ if (!platform_video_decoder_) |
+ return; |
platform_video_decoder_->Destroy(); |
- return PP_OK_COMPLETIONPENDING; |
} |
void PPB_VideoDecoder_Impl::ProvidePictureBuffers( |
@@ -198,17 +190,14 @@ void PPB_VideoDecoder_Impl::ProvidePictureBuffers( |
PP_PictureBufferType_Dev out_type = |
static_cast<PP_PictureBufferType_Dev>(type); |
PP_Size out_dim = PP_MakeSize(dimensions.width(), dimensions.height()); |
- ScopedResourceId resource(this); |
ppp_videodecoder_->ProvidePictureBuffers( |
- instance()->pp_instance(), resource.id, requested_num_of_buffers, |
- out_dim, out_type); |
+ instance()->pp_instance(), requested_num_of_buffers, out_dim, out_type); |
} |
void PPB_VideoDecoder_Impl::PictureReady(const media::Picture& picture) { |
if (!ppp_videodecoder_) |
return; |
- ScopedResourceId resource(this); |
PP_Picture_Dev output; |
output.picture_buffer_id = picture.picture_buffer_id(); |
output.bitstream_buffer_id = picture.bitstream_buffer_id(); |
@@ -216,25 +205,22 @@ void PPB_VideoDecoder_Impl::PictureReady(const media::Picture& picture) { |
picture.visible_size().height()); |
output.decoded_size = PP_MakeSize(picture.decoded_size().width(), |
picture.decoded_size().height()); |
- ppp_videodecoder_->PictureReady( |
- instance()->pp_instance(), resource.id, output); |
+ ppp_videodecoder_->PictureReady(instance()->pp_instance(), output); |
} |
void PPB_VideoDecoder_Impl::DismissPictureBuffer(int32 picture_buffer_id) { |
if (!ppp_videodecoder_) |
return; |
- ScopedResourceId resource(this); |
ppp_videodecoder_->DismissPictureBuffer( |
- instance()->pp_instance(), resource.id, picture_buffer_id); |
+ instance()->pp_instance(), picture_buffer_id); |
} |
void PPB_VideoDecoder_Impl::NotifyEndOfStream() { |
if (!ppp_videodecoder_) |
return; |
- ScopedResourceId resource(this); |
- ppp_videodecoder_->EndOfStream(instance()->pp_instance(), resource.id); |
+ ppp_videodecoder_->EndOfStream(instance()->pp_instance()); |
} |
void PPB_VideoDecoder_Impl::NotifyError( |
@@ -242,13 +228,12 @@ void PPB_VideoDecoder_Impl::NotifyError( |
if (!ppp_videodecoder_) |
return; |
- ScopedResourceId resource(this); |
// TODO(vrk): This is assuming VideoDecodeAccelerator::Error and |
// PP_VideoDecodeError_Dev have identical enum values. There is no compiler |
// assert to guarantee this. We either need to add such asserts or |
// merge these two enums. |
- ppp_videodecoder_->NotifyError(instance()->pp_instance(), resource.id, |
- static_cast<PP_VideoDecodeError_Dev>(error)); |
+ ppp_videodecoder_->NotifyError(instance()->pp_instance(), |
+ static_cast<PP_VideoDecodeError_Dev>(error)); |
} |
void PPB_VideoDecoder_Impl::NotifyResetDone() { |
@@ -259,14 +244,6 @@ void PPB_VideoDecoder_Impl::NotifyResetDone() { |
PP_RunAndClearCompletionCallback(&reset_callback_, PP_OK); |
} |
-void PPB_VideoDecoder_Impl::NotifyDestroyDone() { |
- if (destroy_callback_.func == NULL) |
- return; |
- |
- // Call the callback that was stored to be called when Destroy is done. |
- PP_RunAndClearCompletionCallback(&destroy_callback_, PP_OK); |
-} |
- |
void PPB_VideoDecoder_Impl::NotifyEndOfBitstreamBuffer( |
int32 bitstream_buffer_id) { |
CallbackById::iterator it = |