| 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 e8cd2ac95ea275d01e5a084e56ce27038da8068e..d869ef496019ce0e5832c925b1fb449a187db2b4 100644
|
| --- a/webkit/plugins/ppapi/ppb_video_decoder_impl.cc
|
| +++ b/webkit/plugins/ppapi/ppb_video_decoder_impl.cc
|
| @@ -30,6 +30,7 @@ using ppapi::thunk::PPB_Buffer_API;
|
| using ppapi::thunk::PPB_Context3D_API;
|
| using ppapi::thunk::PPB_Graphics3D_API;
|
| using ppapi::thunk::PPB_VideoDecoder_API;
|
| +typedef media::VideoDecodeAccelerator::Config Config;
|
|
|
| namespace webkit {
|
| namespace ppapi {
|
| @@ -51,10 +52,23 @@ PPB_VideoDecoder_API* PPB_VideoDecoder_Impl::AsPPB_VideoDecoder_API() {
|
| return this;
|
| }
|
|
|
| +// Convert PP_VideoDecoderConfig_Dev to media::VideoDecodeAccelerator::Config.
|
| +static media::VideoDecodeAccelerator::Config PPToMediaConfig(
|
| + const PP_VideoDecoderConfig_Dev& pp_config) {
|
| + Config media_config;
|
| + // TODO(fischman,vrk): this assumes the enums in the two Config objects match
|
| + // up, as do their fields. Add a COMPILE_ASSERT of these facts somewhere.
|
| + media_config.format = static_cast<Config::Format>(pp_config.format);
|
| + media_config.h264_profile =
|
| + static_cast<Config::H264Profile>(pp_config.h264_profile);
|
| + return media_config;
|
| +}
|
| +
|
| // static
|
| -PP_Resource PPB_VideoDecoder_Impl::Create(PP_Instance instance,
|
| - PP_Resource graphics_context,
|
| - const PP_VideoConfigElement* config) {
|
| +PP_Resource PPB_VideoDecoder_Impl::Create(
|
| + PP_Instance instance,
|
| + PP_Resource graphics_context,
|
| + const PP_VideoDecoderConfig_Dev& config) {
|
| PluginDelegate::PlatformContext3D* platform_context = NULL;
|
| gpu::gles2::GLES2Implementation* gles2_impl = NULL;
|
| EnterResourceNoLock<PPB_Context3D_API> enter_context(graphics_context, false);
|
| @@ -85,17 +99,13 @@ bool PPB_VideoDecoder_Impl::Init(
|
| PP_Resource graphics_context,
|
| PluginDelegate::PlatformContext3D* context,
|
| gpu::gles2::GLES2Implementation* gles2_impl,
|
| - const PP_VideoConfigElement* config) {
|
| + const PP_VideoDecoderConfig_Dev& config) {
|
| InitCommon(graphics_context, gles2_impl);
|
|
|
| int command_buffer_route_id = context->GetCommandBufferRouteId();
|
| if (command_buffer_route_id == 0)
|
| return false;
|
|
|
| - std::vector<int32> copied;
|
| - if (!CopyConfigsToVector(config, &copied))
|
| - return false;
|
| -
|
| PluginDelegate* plugin_delegate = ResourceHelper::GetPluginDelegate(this);
|
| if (!plugin_delegate)
|
| return false;
|
| @@ -106,7 +116,7 @@ bool PPB_VideoDecoder_Impl::Init(
|
| return false;
|
|
|
| FlushCommandBuffer();
|
| - return platform_video_decoder_->Initialize(copied);
|
| + return platform_video_decoder_->Initialize(PPToMediaConfig(config));
|
| }
|
|
|
| int32_t PPB_VideoDecoder_Impl::Decode(
|
|
|