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 |