| Index: ppapi/proxy/video_decoder_resource.cc
|
| diff --git a/ppapi/proxy/video_decoder_resource.cc b/ppapi/proxy/video_decoder_resource.cc
|
| index bcc0e6e844a8428674bfb6076a1ddcaad397009e..0ea624d95d869c4c7f6307e0ad93fbce7f4384d4 100644
|
| --- a/ppapi/proxy/video_decoder_resource.cc
|
| +++ b/ppapi/proxy/video_decoder_resource.cc
|
| @@ -62,6 +62,7 @@ VideoDecoderResource::VideoDecoderResource(Connection connection,
|
| PP_Instance instance)
|
| : PluginResource(connection, instance),
|
| num_decodes_(0),
|
| + min_picture_count_(0),
|
| get_picture_(NULL),
|
| get_picture_0_1_(NULL),
|
| gles2_impl_(NULL),
|
| @@ -98,6 +99,19 @@ int32_t VideoDecoderResource::Initialize0_1(
|
| allow_software_fallback
|
| ? PP_HARDWAREACCELERATION_WITHFALLBACK
|
| : PP_HARDWAREACCELERATION_ONLY,
|
| + 0,
|
| + callback);
|
| +}
|
| +
|
| +int32_t VideoDecoderResource::Initialize0_2(
|
| + PP_Resource graphics_context,
|
| + PP_VideoProfile profile,
|
| + PP_HardwareAcceleration acceleration,
|
| + scoped_refptr<TrackedCallback> callback) {
|
| + return Initialize(graphics_context,
|
| + profile,
|
| + acceleration,
|
| + 0,
|
| callback);
|
| }
|
|
|
| @@ -105,16 +119,21 @@ int32_t VideoDecoderResource::Initialize(
|
| PP_Resource graphics_context,
|
| PP_VideoProfile profile,
|
| PP_HardwareAcceleration acceleration,
|
| + uint32_t min_picture_count,
|
| scoped_refptr<TrackedCallback> callback) {
|
| if (initialized_)
|
| return PP_ERROR_FAILED;
|
| if (profile < 0 || profile > PP_VIDEOPROFILE_MAX)
|
| return PP_ERROR_BADARGUMENT;
|
| + if (min_picture_count > kMaximumPictureCount)
|
| + return PP_ERROR_BADARGUMENT;
|
| if (initialize_callback_.get())
|
| return PP_ERROR_INPROGRESS;
|
| if (!graphics_context)
|
| return PP_ERROR_BADRESOURCE;
|
|
|
| + min_picture_count_ = min_picture_count;
|
| +
|
| HostResource host_resource;
|
| if (!testing_) {
|
| // Create a new Graphics3D resource that can create texture resources to
|
| @@ -144,7 +163,7 @@ int32_t VideoDecoderResource::Initialize(
|
| Call<PpapiPluginMsg_VideoDecoder_InitializeReply>(
|
| RENDERER,
|
| PpapiHostMsg_VideoDecoder_Initialize(
|
| - host_resource, profile, acceleration),
|
| + host_resource, profile, acceleration, min_picture_count),
|
| base::Bind(&VideoDecoderResource::OnPluginMsgInitializeComplete, this));
|
|
|
| return PP_OK_COMPLETIONPENDING;
|
| @@ -359,6 +378,7 @@ void VideoDecoderResource::OnPluginMsgRequestTextures(
|
| uint32_t texture_target,
|
| const std::vector<gpu::Mailbox>& mailboxes) {
|
| DCHECK(num_textures);
|
| + DCHECK(num_textures >= min_picture_count_);
|
| DCHECK(mailboxes.empty() || mailboxes.size() == num_textures);
|
| std::vector<uint32_t> texture_ids(num_textures);
|
| if (gles2_impl_) {
|
|
|