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 12d6ee18a404a73481147700fccf983ca249f4e9..6198bf3bac65c3791a65e37ec9cf91c9c6ecad29 100644 |
--- a/webkit/plugins/ppapi/ppb_video_decoder_impl.cc |
+++ b/webkit/plugins/ppapi/ppb_video_decoder_impl.cc |
@@ -8,6 +8,7 @@ |
#include "base/logging.h" |
#include "base/message_loop.h" |
+#include "gpu/command_buffer/client/gles2_implementation.h" |
#include "media/video/picture.h" |
#include "ppapi/c/dev/pp_video_dev.h" |
#include "ppapi/c/dev/ppb_video_decoder_dev.h" |
@@ -127,7 +128,7 @@ int32_t PPB_VideoDecoder_Impl::Initialize( |
platform_video_decoder_.reset( |
instance()->delegate()->CreateVideoDecoder( |
- this, command_buffer_route_id)); |
+ this, command_buffer_route_id, context3d->gles2_impl()->helper())); |
if (!platform_video_decoder_.get()) |
return PP_ERROR_FAILED; |
@@ -160,10 +161,8 @@ int32_t PPB_VideoDecoder_Impl::Decode( |
CHECK(bitstream_buffer_callbacks_.insert(std::make_pair( |
bitstream_buffer->id, callback)).second); |
- if (platform_video_decoder_->Decode(decode_buffer)) |
- return PP_OK_COMPLETIONPENDING; |
- else |
- return PP_ERROR_FAILED; |
+ platform_video_decoder_->Decode(decode_buffer); |
+ return PP_OK_COMPLETIONPENDING; |
} |
void PPB_VideoDecoder_Impl::AssignGLESBuffers( |
@@ -175,7 +174,10 @@ void PPB_VideoDecoder_Impl::AssignGLESBuffers( |
std::vector<media::GLESBuffer> wrapped_buffers; |
for (uint32 i = 0; i < no_of_buffers; i++) { |
PP_GLESBuffer_Dev in_buf = buffers[i]; |
- media::GLESBuffer buffer(in_buf); |
+ media::GLESBuffer buffer( |
+ in_buf.info.id, |
+ gfx::Size(in_buf.info.size.width, in_buf.info.size.height), |
+ in_buf.texture_id); |
wrapped_buffers.push_back(buffer); |
} |
platform_video_decoder_->AssignGLESBuffers(wrapped_buffers); |
@@ -190,7 +192,17 @@ void PPB_VideoDecoder_Impl::AssignSysmemBuffers( |
std::vector<media::SysmemBuffer> wrapped_buffers; |
for (uint32 i = 0; i < no_of_buffers; i++) { |
PP_SysmemBuffer_Dev in_buf = buffers[i]; |
- media::SysmemBuffer buffer(in_buf); |
+ // TODO(brettw) we should properly handle the errors here if the buffer |
+ // isn't a valid image rather than CHECKing. |
+ EnterResourceNoLock<PPB_Buffer_API> enter(in_buf.data, true); |
+ CHECK(enter.succeeded()); |
+ webkit::ppapi::PPB_Buffer_Impl* pepper_buffer = |
+ static_cast<webkit::ppapi::PPB_Buffer_Impl*>(enter.object()); |
+ CHECK(pepper_buffer->IsMapped()); |
+ media::SysmemBuffer buffer( |
+ in_buf.info.id, |
+ gfx::Size(in_buf.info.size.width, in_buf.info.size.height), |
+ pepper_buffer->Map()); |
wrapped_buffers.push_back(buffer); |
} |
platform_video_decoder_->AssignSysmemBuffers(wrapped_buffers); |
@@ -210,10 +222,8 @@ int32_t PPB_VideoDecoder_Impl::Flush(PP_CompletionCallback callback) { |
// TODO(vmr): Check for current flush/abort operations. |
flush_callback_ = callback; |
- if (platform_video_decoder_->Flush()) |
- return PP_OK_COMPLETIONPENDING; |
- else |
- return PP_ERROR_FAILED; |
+ platform_video_decoder_->Flush(); |
+ return PP_OK_COMPLETIONPENDING; |
} |
int32_t PPB_VideoDecoder_Impl::Abort(PP_CompletionCallback callback) { |
@@ -224,10 +234,8 @@ int32_t PPB_VideoDecoder_Impl::Abort(PP_CompletionCallback callback) { |
// TODO(vmr): Check for current flush/abort operations. |
abort_callback_ = callback; |
- if (platform_video_decoder_->Abort()) |
- return PP_OK_COMPLETIONPENDING; |
- else |
- return PP_ERROR_FAILED; |
+ platform_video_decoder_->Abort(); |
+ return PP_OK_COMPLETIONPENDING; |
} |
void PPB_VideoDecoder_Impl::ProvidePictureBuffers( |
@@ -325,39 +333,3 @@ void PPB_VideoDecoder_Impl::NotifyInitializeDone() { |
} // namespace ppapi |
} // namespace webkit |
- |
-// These functions are declared in picture.h but are defined here because of |
-// dependencies (we can't depend on ppapi types from media). |
-// TODO(fischman/vrk): Find a way to clean this up as it violates the spirit of |
-// checkdeps. |
-namespace media { |
-BaseBuffer::BaseBuffer(const PP_BufferInfo_Dev& info) |
- : id_(info.id), |
- size_(info.size.width, info.size.height) { |
-} |
- |
-GLESBuffer::GLESBuffer(const PP_GLESBuffer_Dev& buffer) |
- : BaseBuffer(buffer.info), |
- texture_id_(buffer.texture_id) { |
-} |
- |
-SysmemBuffer::SysmemBuffer(const PP_SysmemBuffer_Dev& buffer) |
- : BaseBuffer(buffer.info) { |
- // TODO(brettw) we should properly handle the errors here if the buffer |
- // isn't a valid image rather than CHECKing. |
- EnterResourceNoLock<PPB_Buffer_API> enter(buffer.data, true); |
- CHECK(enter.succeeded()); |
- webkit::ppapi::PPB_Buffer_Impl* pepper_buffer = |
- static_cast<webkit::ppapi::PPB_Buffer_Impl*>(enter.object()); |
- CHECK(pepper_buffer->IsMapped()); |
- data_ = pepper_buffer->Map(); |
-} |
- |
-Picture::Picture(const PP_Picture_Dev& picture) |
- : picture_buffer_id_(picture.picture_buffer_id), |
- bitstream_buffer_id_(picture.bitstream_buffer_id), |
- visible_size_(picture.visible_size.width, picture.visible_size.height), |
- decoded_size_(picture.decoded_size.width, picture.decoded_size.height) { |
-} |
- |
-} // namespace media |