OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/renderers/default_renderer_factory.h" | 5 #include "media/renderers/default_renderer_factory.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
10 #include "media/base/media_log.h" | 10 #include "media/base/media_log.h" |
11 #include "media/filters/gpu_video_decoder.h" | 11 #include "media/filters/gpu_video_decoder.h" |
12 #include "media/renderers/audio_renderer_impl.h" | 12 #include "media/renderers/audio_renderer_impl.h" |
13 #include "media/renderers/gpu_video_accelerator_factories.h" | 13 #include "media/renderers/gpu_video_accelerator_factories.h" |
14 #include "media/renderers/renderer_impl.h" | 14 #include "media/renderers/renderer_impl.h" |
15 #include "media/renderers/video_renderer_impl.h" | 15 #include "media/renderers/video_renderer_impl.h" |
16 | 16 |
17 #if !defined(MEDIA_DISABLE_FFMPEG) | 17 #if !defined(MEDIA_DISABLE_FFMPEG) |
18 #include "media/filters/ffmpeg_audio_decoder.h" | 18 #include "media/filters/ffmpeg_audio_decoder.h" |
| 19 #if !defined(DISABLE_FFMPEG_VIDEO_DECODERS) |
19 #include "media/filters/ffmpeg_video_decoder.h" | 20 #include "media/filters/ffmpeg_video_decoder.h" |
20 #endif | 21 #endif |
| 22 #endif |
21 | 23 |
22 #if !defined(OS_ANDROID) | 24 #if !defined(OS_ANDROID) || defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) |
23 #include "media/filters/opus_audio_decoder.h" | 25 #include "media/filters/opus_audio_decoder.h" |
24 #endif | 26 #endif |
25 | 27 |
26 #if !defined(MEDIA_DISABLE_LIBVPX) | 28 #if !defined(MEDIA_DISABLE_LIBVPX) |
27 #include "media/filters/vpx_video_decoder.h" | 29 #include "media/filters/vpx_video_decoder.h" |
28 #endif | 30 #endif |
29 | 31 |
30 namespace media { | 32 namespace media { |
31 | 33 |
32 DefaultRendererFactory::DefaultRendererFactory( | 34 DefaultRendererFactory::DefaultRendererFactory( |
(...skipping 15 matching lines...) Expand all Loading... |
48 DCHECK(audio_renderer_sink); | 50 DCHECK(audio_renderer_sink); |
49 | 51 |
50 // Create our audio decoders and renderer. | 52 // Create our audio decoders and renderer. |
51 ScopedVector<AudioDecoder> audio_decoders; | 53 ScopedVector<AudioDecoder> audio_decoders; |
52 | 54 |
53 #if !defined(MEDIA_DISABLE_FFMPEG) | 55 #if !defined(MEDIA_DISABLE_FFMPEG) |
54 audio_decoders.push_back( | 56 audio_decoders.push_back( |
55 new FFmpegAudioDecoder(media_task_runner, media_log_)); | 57 new FFmpegAudioDecoder(media_task_runner, media_log_)); |
56 #endif | 58 #endif |
57 | 59 |
58 #if !defined(OS_ANDROID) | 60 #if !defined(OS_ANDROID) || defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) |
59 audio_decoders.push_back(new OpusAudioDecoder(media_task_runner)); | 61 audio_decoders.push_back(new OpusAudioDecoder(media_task_runner)); |
60 #endif | 62 #endif |
61 | 63 |
62 scoped_ptr<AudioRenderer> audio_renderer(new AudioRendererImpl( | 64 scoped_ptr<AudioRenderer> audio_renderer(new AudioRendererImpl( |
63 media_task_runner, audio_renderer_sink, audio_decoders.Pass(), | 65 media_task_runner, audio_renderer_sink, audio_decoders.Pass(), |
64 audio_hardware_config_, media_log_)); | 66 audio_hardware_config_, media_log_)); |
65 | 67 |
66 // Create our video decoders and renderer. | 68 // Create our video decoders and renderer. |
67 ScopedVector<VideoDecoder> video_decoders; | 69 ScopedVector<VideoDecoder> video_decoders; |
68 | 70 |
69 // |gpu_factories_| requires that its entry points be called on its | 71 // |gpu_factories_| requires that its entry points be called on its |
70 // |GetTaskRunner()|. Since |pipeline_| will own decoders created from the | 72 // |GetTaskRunner()|. Since |pipeline_| will own decoders created from the |
71 // factories, require that their message loops are identical. | 73 // factories, require that their message loops are identical. |
72 DCHECK(!gpu_factories_.get() || | 74 DCHECK(!gpu_factories_.get() || |
73 (gpu_factories_->GetTaskRunner() == media_task_runner.get())); | 75 (gpu_factories_->GetTaskRunner() == media_task_runner.get())); |
74 | 76 |
75 if (gpu_factories_.get()) | 77 if (gpu_factories_.get()) |
76 video_decoders.push_back(new GpuVideoDecoder(gpu_factories_)); | 78 video_decoders.push_back(new GpuVideoDecoder(gpu_factories_)); |
77 | 79 |
78 #if !defined(MEDIA_DISABLE_LIBVPX) | 80 #if !defined(MEDIA_DISABLE_LIBVPX) |
79 video_decoders.push_back(new VpxVideoDecoder(media_task_runner)); | 81 video_decoders.push_back(new VpxVideoDecoder(media_task_runner)); |
80 #endif | 82 #endif |
81 | 83 |
82 #if !defined(MEDIA_DISABLE_FFMPEG) | 84 #if !defined(MEDIA_DISABLE_FFMPEG) && !defined(DISABLE_FFMPEG_VIDEO_DECODERS) |
83 video_decoders.push_back(new FFmpegVideoDecoder(media_task_runner)); | 85 video_decoders.push_back(new FFmpegVideoDecoder(media_task_runner)); |
84 #endif | 86 #endif |
85 | 87 |
86 scoped_ptr<VideoRenderer> video_renderer(new VideoRendererImpl( | 88 scoped_ptr<VideoRenderer> video_renderer(new VideoRendererImpl( |
87 media_task_runner, video_renderer_sink, video_decoders.Pass(), true, | 89 media_task_runner, video_renderer_sink, video_decoders.Pass(), true, |
88 gpu_factories_, media_log_)); | 90 gpu_factories_, media_log_)); |
89 | 91 |
90 // Create renderer. | 92 // Create renderer. |
91 return scoped_ptr<Renderer>(new RendererImpl( | 93 return scoped_ptr<Renderer>(new RendererImpl( |
92 media_task_runner, audio_renderer.Pass(), video_renderer.Pass())); | 94 media_task_runner, audio_renderer.Pass(), video_renderer.Pass())); |
93 } | 95 } |
94 | 96 |
95 } // namespace media | 97 } // namespace media |
OLD | NEW |