summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-02 17:47:57 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-02 17:47:57 +0000
commite82b2bd016395079f0f9c8080d3499dc9bccd347 (patch)
treeea29237902b246668fc1b82c632f25a646d3cb1a /content/renderer
parent693845e44965a358274812ff75aa23ca80625658 (diff)
downloadchromium_src-e82b2bd016395079f0f9c8080d3499dc9bccd347.zip
chromium_src-e82b2bd016395079f0f9c8080d3499dc9bccd347.tar.gz
chromium_src-e82b2bd016395079f0f9c8080d3499dc9bccd347.tar.bz2
Vanquish the remnants of media::MessageLoopFactory.
Now that media code runs on a single thread we no longer need to worry about creating additional threads at runtime. To make changes like this easier in the future, webkit_media::WebMediaPlayerParams is introduced to avoid plumbing parameters through Chrome's various abstraction layers. BUG=116873 Review URL: https://codereview.chromium.org/11468033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174808 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r--content/renderer/media/renderer_gpu_video_decoder_factories.cc5
-rw-r--r--content/renderer/media/renderer_gpu_video_decoder_factories.h6
-rw-r--r--content/renderer/render_view_impl.cc25
3 files changed, 16 insertions, 20 deletions
diff --git a/content/renderer/media/renderer_gpu_video_decoder_factories.cc b/content/renderer/media/renderer_gpu_video_decoder_factories.cc
index c1b8435..cdd5804 100644
--- a/content/renderer/media/renderer_gpu_video_decoder_factories.cc
+++ b/content/renderer/media/renderer_gpu_video_decoder_factories.cc
@@ -220,4 +220,9 @@ void RendererGpuVideoDecoderFactories::AsyncCreateSharedMemory(
waiter->Signal();
}
+scoped_refptr<base::MessageLoopProxy>
+RendererGpuVideoDecoderFactories::GetMessageLoop() {
+ return message_loop_;
+}
+
} // namespace content
diff --git a/content/renderer/media/renderer_gpu_video_decoder_factories.h b/content/renderer/media/renderer_gpu_video_decoder_factories.h
index 8f607bb..5512562 100644
--- a/content/renderer/media/renderer_gpu_video_decoder_factories.h
+++ b/content/renderer/media/renderer_gpu_video_decoder_factories.h
@@ -40,20 +40,18 @@ class CONTENT_EXPORT RendererGpuVideoDecoderFactories
const scoped_refptr<base::MessageLoopProxy>& message_loop,
WebGraphicsContext3DCommandBufferImpl* wgc3dcbi);
+ // media::GpuVideoDecoder::Factories implementation.
virtual media::VideoDecodeAccelerator* CreateVideoDecodeAccelerator(
media::VideoCodecProfile profile,
media::VideoDecodeAccelerator::Client* client) OVERRIDE;
-
virtual bool CreateTextures(int32 count, const gfx::Size& size,
std::vector<uint32>* texture_ids,
uint32 texture_target) OVERRIDE;
-
virtual void DeleteTexture(uint32 texture_id) OVERRIDE;
-
virtual void ReadPixels(uint32 texture_id, uint32 texture_target,
const gfx::Size& size, void* pixels) OVERRIDE;
-
virtual base::SharedMemory* CreateSharedMemory(size_t size) OVERRIDE;
+ virtual scoped_refptr<base::MessageLoopProxy> GetMessageLoop() OVERRIDE;
protected:
friend class base::RefCountedThreadSafe<RendererGpuVideoDecoderFactories>;
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 87f363f..8f70fc6 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -115,7 +115,6 @@
#include "content/renderer/websharedworker_proxy.h"
#include "media/base/filter_collection.h"
#include "media/base/media_switches.h"
-#include "media/base/message_loop_factory.h"
#include "media/filters/audio_renderer_impl.h"
#include "media/filters/gpu_video_decoder.h"
#include "net/base/data_url.h"
@@ -202,6 +201,7 @@
#include "webkit/gpu/webgraphicscontext3d_in_process_impl.h"
#include "webkit/media/webmediaplayer_impl.h"
#include "webkit/media/webmediaplayer_ms.h"
+#include "webkit/media/webmediaplayer_params.h"
#include "webkit/plugins/npapi/plugin_list.h"
#include "webkit/plugins/npapi/plugin_utils.h"
#include "webkit/plugins/npapi/webplugin_delegate.h"
@@ -2615,9 +2615,6 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer(
resource_context, gpu_channel_host, routing_id_));
#endif
- media::MessageLoopFactory* message_loop_factory =
- new media::MessageLoopFactory();
- media::FilterCollection* collection = new media::FilterCollection();
RenderMediaLog* render_media_log = new RenderMediaLog();
RenderAudioSourceProvider* audio_source_provider = NULL;
@@ -2628,6 +2625,7 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer(
audio_source_provider = new RenderAudioSourceProvider(routing_id_);
}
+ scoped_refptr<media::GpuVideoDecoder::Factories> gpu_factories;
WebGraphicsContext3DCommandBufferImpl* context3d = NULL;
if (!cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode))
context3d = RenderThreadImpl::current()->GetGpuVDAContext3D();
@@ -2640,24 +2638,19 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer(
GpuChannelHost* gpu_channel_host =
RenderThreadImpl::current()->EstablishGpuChannelSync(
CAUSE_FOR_GPU_LAUNCH_VIDEODECODEACCELERATOR_INITIALIZE);
- collection->GetVideoDecoders()->push_back(new media::GpuVideoDecoder(
- message_loop_factory->GetMessageLoop(
- media::MessageLoopFactory::kPipeline),
- factories_loop,
- new RendererGpuVideoDecoderFactories(
- gpu_channel_host, factories_loop, context3d)));
+ gpu_factories = new RendererGpuVideoDecoderFactories(
+ gpu_channel_host, factories_loop, context3d);
}
+ webkit_media::WebMediaPlayerParams params(
+ audio_source_provider, audio_source_provider, gpu_factories,
+ media_stream_impl_, render_media_log);
WebMediaPlayer* media_player =
GetContentClient()->renderer()->OverrideCreateWebMediaPlayer(
- this, frame, client, AsWeakPtr(), collection, audio_source_provider,
- audio_source_provider, message_loop_factory, media_stream_impl_,
- render_media_log);
+ this, frame, client, AsWeakPtr(), params);
if (!media_player) {
media_player = new webkit_media::WebMediaPlayerImpl(
- frame, client, AsWeakPtr(), collection, audio_source_provider,
- audio_source_provider, message_loop_factory, media_stream_impl_,
- render_media_log);
+ frame, client, AsWeakPtr(), params);
}
return media_player;
}