| Index: media/renderers/default_renderer_factory.cc
|
| diff --git a/media/renderers/default_renderer_factory.cc b/media/renderers/default_renderer_factory.cc
|
| index a18a907f1e82dd7e66e46ec0d84683e4d618c92a..5359570491ef753bbf2455c40092103f023c9367 100644
|
| --- a/media/renderers/default_renderer_factory.cc
|
| +++ b/media/renderers/default_renderer_factory.cc
|
| @@ -18,6 +18,7 @@
|
| #include "media/renderers/gpu_video_accelerator_factories.h"
|
| #include "media/renderers/renderer_impl.h"
|
| #include "media/renderers/video_renderer_impl.h"
|
| +#include "media/video/default_video_frame_provider_factory.h"
|
|
|
| #if !defined(MEDIA_DISABLE_FFMPEG)
|
| #include "media/filters/ffmpeg_audio_decoder.h"
|
| @@ -35,10 +36,15 @@ namespace media {
|
| DefaultRendererFactory::DefaultRendererFactory(
|
| const scoped_refptr<MediaLog>& media_log,
|
| DecoderFactory* decoder_factory,
|
| - const GetGpuFactoriesCB& get_gpu_factories_cb)
|
| + const GetGpuFactoriesCB& get_gpu_factories_cb,
|
| + std::unique_ptr<VideoFrameProviderFactory> video_frame_provider_factory)
|
| : media_log_(media_log),
|
| decoder_factory_(decoder_factory),
|
| - get_gpu_factories_cb_(get_gpu_factories_cb) {}
|
| + get_gpu_factories_cb_(get_gpu_factories_cb),
|
| + video_frame_provider_factory_(std::move(video_frame_provider_factory)) {
|
| + if (!video_frame_provider_factory_)
|
| + video_frame_provider_factory_.reset(new DefaultVideoFrameProviderFactory());
|
| +}
|
|
|
| DefaultRendererFactory::~DefaultRendererFactory() {
|
| }
|
| @@ -84,12 +90,20 @@ ScopedVector<VideoDecoder> DefaultRendererFactory::CreateVideoDecoders(
|
| new GpuVideoDecoder(gpu_factories, request_surface_cb, media_log_));
|
| }
|
|
|
| + std::unique_ptr<VideoFrameProvider> video_frame_provider;
|
| +
|
| #if !defined(MEDIA_DISABLE_LIBVPX)
|
| - video_decoders.push_back(new VpxVideoDecoder());
|
| + video_frame_provider =
|
| + video_frame_provider_factory_->CreateVideoFrameProvider();
|
| + video_decoders.push_back(
|
| + new VpxVideoDecoder(std::move(video_frame_provider)));
|
| #endif
|
|
|
| #if !defined(MEDIA_DISABLE_FFMPEG) && !defined(DISABLE_FFMPEG_VIDEO_DECODERS)
|
| - video_decoders.push_back(new FFmpegVideoDecoder());
|
| + video_frame_provider =
|
| + video_frame_provider_factory_->CreateVideoFrameProvider();
|
| + video_decoders.push_back(
|
| + new FFmpegVideoDecoder(std::move(video_frame_provider)));
|
| #endif
|
|
|
| return video_decoders;
|
|
|