| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/blink/webmediaplayer_impl.h" | 5 #include "media/blink/webmediaplayer_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 833 | 833 |
| 834 // TODO(xhwang): Move this to a factory class so that we can create different | 834 // TODO(xhwang): Move this to a factory class so that we can create different |
| 835 // renderers. | 835 // renderers. |
| 836 scoped_ptr<Renderer> WebMediaPlayerImpl::CreateRenderer() { | 836 scoped_ptr<Renderer> WebMediaPlayerImpl::CreateRenderer() { |
| 837 SetDecryptorReadyCB set_decryptor_ready_cb = | 837 SetDecryptorReadyCB set_decryptor_ready_cb = |
| 838 encrypted_media_support_->CreateSetDecryptorReadyCB(); | 838 encrypted_media_support_->CreateSetDecryptorReadyCB(); |
| 839 | 839 |
| 840 // Create our audio decoders and renderer. | 840 // Create our audio decoders and renderer. |
| 841 ScopedVector<AudioDecoder> audio_decoders; | 841 ScopedVector<AudioDecoder> audio_decoders; |
| 842 | 842 |
| 843 LogCB log_cb = base::Bind(&LogMediaSourceError, media_log_); | 843 audio_decoders.push_back(new media::FFmpegAudioDecoder( |
| 844 audio_decoders.push_back(new FFmpegAudioDecoder(media_task_runner_, log_cb)); | 844 media_task_runner_, base::Bind(&LogMediaSourceError, media_log_))); |
| 845 audio_decoders.push_back(new OpusAudioDecoder(media_task_runner_)); | 845 audio_decoders.push_back(new media::OpusAudioDecoder(media_task_runner_)); |
| 846 | 846 |
| 847 scoped_ptr<AudioRenderer> audio_renderer(new AudioRendererImpl( | 847 scoped_ptr<AudioRenderer> audio_renderer( |
| 848 media_task_runner_, | 848 new AudioRendererImpl(media_task_runner_, |
| 849 audio_source_provider_.get(), | 849 audio_source_provider_.get(), |
| 850 audio_decoders.Pass(), | 850 audio_decoders.Pass(), |
| 851 set_decryptor_ready_cb, | 851 set_decryptor_ready_cb, |
| 852 audio_hardware_config_)); | 852 audio_hardware_config_, |
| 853 media_log_)); |
| 853 | 854 |
| 854 // Create our video decoders and renderer. | 855 // Create our video decoders and renderer. |
| 855 ScopedVector<VideoDecoder> video_decoders; | 856 ScopedVector<VideoDecoder> video_decoders; |
| 856 | 857 |
| 857 if (gpu_factories_.get()) { | 858 if (gpu_factories_.get()) |
| 858 video_decoders.push_back( | 859 video_decoders.push_back(new GpuVideoDecoder(gpu_factories_)); |
| 859 new GpuVideoDecoder(gpu_factories_, media_log_)); | |
| 860 } | |
| 861 | 860 |
| 862 #if !defined(MEDIA_DISABLE_LIBVPX) | 861 #if !defined(MEDIA_DISABLE_LIBVPX) |
| 863 video_decoders.push_back(new VpxVideoDecoder(media_task_runner_)); | 862 video_decoders.push_back(new VpxVideoDecoder(media_task_runner_)); |
| 864 #endif // !defined(MEDIA_DISABLE_LIBVPX) | 863 #endif // !defined(MEDIA_DISABLE_LIBVPX) |
| 865 | 864 |
| 866 video_decoders.push_back(new FFmpegVideoDecoder(media_task_runner_)); | 865 video_decoders.push_back(new FFmpegVideoDecoder(media_task_runner_)); |
| 867 | 866 |
| 868 scoped_ptr<VideoRenderer> video_renderer( | 867 scoped_ptr<VideoRenderer> video_renderer(new VideoRendererImpl( |
| 869 new VideoRendererImpl( | 868 media_task_runner_, |
| 870 media_task_runner_, | 869 video_decoders.Pass(), |
| 871 video_decoders.Pass(), | 870 set_decryptor_ready_cb, |
| 872 set_decryptor_ready_cb, | 871 base::Bind(&WebMediaPlayerImpl::FrameReady, base::Unretained(this)), |
| 873 base::Bind(&WebMediaPlayerImpl::FrameReady, base::Unretained(this)), | 872 true, |
| 874 true)); | 873 media_log_)); |
| 875 | 874 |
| 876 // Create renderer. | 875 // Create renderer. |
| 877 return scoped_ptr<Renderer>(new RendererImpl( | 876 return scoped_ptr<Renderer>(new RendererImpl( |
| 878 media_task_runner_, | 877 media_task_runner_, |
| 879 demuxer_.get(), | 878 demuxer_.get(), |
| 880 audio_renderer.Pass(), | 879 audio_renderer.Pass(), |
| 881 video_renderer.Pass())); | 880 video_renderer.Pass())); |
| 882 } | 881 } |
| 883 | 882 |
| 884 void WebMediaPlayerImpl::StartPipeline() { | 883 void WebMediaPlayerImpl::StartPipeline() { |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1025 compositor_task_runner_->PostTask(FROM_HERE, | 1024 compositor_task_runner_->PostTask(FROM_HERE, |
| 1026 base::Bind(&GetCurrentFrameAndSignal, | 1025 base::Bind(&GetCurrentFrameAndSignal, |
| 1027 base::Unretained(compositor_), | 1026 base::Unretained(compositor_), |
| 1028 &video_frame, | 1027 &video_frame, |
| 1029 &event)); | 1028 &event)); |
| 1030 event.Wait(); | 1029 event.Wait(); |
| 1031 return video_frame; | 1030 return video_frame; |
| 1032 } | 1031 } |
| 1033 | 1032 |
| 1034 } // namespace media | 1033 } // namespace media |
| OLD | NEW |