| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <signal.h> | 5 #include <signal.h> |
| 6 | 6 |
| 7 #include <iostream> // NOLINT | 7 #include <iostream> // NOLINT |
| 8 | 8 |
| 9 #include "base/at_exit.h" | 9 #include "base/at_exit.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 media::Demuxer* demuxer, | 114 media::Demuxer* demuxer, |
| 115 const media::VideoRendererImpl::PaintCB& paint_cb, | 115 const media::VideoRendererImpl::PaintCB& paint_cb, |
| 116 bool /* enable_audio */) { | 116 bool /* enable_audio */) { |
| 117 ScopedVector<media::VideoDecoder> video_decoders; | 117 ScopedVector<media::VideoDecoder> video_decoders; |
| 118 video_decoders.push_back(new media::FFmpegVideoDecoder(task_runner)); | 118 video_decoders.push_back(new media::FFmpegVideoDecoder(task_runner)); |
| 119 scoped_ptr<media::VideoRenderer> video_renderer( | 119 scoped_ptr<media::VideoRenderer> video_renderer( |
| 120 new media::VideoRendererImpl(task_runner, | 120 new media::VideoRendererImpl(task_runner, |
| 121 video_decoders.Pass(), | 121 video_decoders.Pass(), |
| 122 media::SetDecryptorReadyCB(), | 122 media::SetDecryptorReadyCB(), |
| 123 paint_cb, | 123 paint_cb, |
| 124 true)); | 124 true, |
| 125 new media::MediaLog())); |
| 125 | 126 |
| 126 ScopedVector<media::AudioDecoder> audio_decoders; | 127 ScopedVector<media::AudioDecoder> audio_decoders; |
| 127 audio_decoders.push_back(new media::FFmpegAudioDecoder(task_runner, | 128 audio_decoders.push_back(new media::FFmpegAudioDecoder(task_runner, |
| 128 media::LogCB())); | 129 media::LogCB())); |
| 129 media::AudioParameters out_params( | 130 media::AudioParameters out_params( |
| 130 media::AudioParameters::AUDIO_PCM_LOW_LATENCY, | 131 media::AudioParameters::AUDIO_PCM_LOW_LATENCY, |
| 131 media::CHANNEL_LAYOUT_STEREO, | 132 media::CHANNEL_LAYOUT_STEREO, |
| 132 44100, | 133 44100, |
| 133 16, | 134 16, |
| 134 512); | 135 512); |
| 135 media::AudioHardwareConfig hardware_config(out_params, out_params); | 136 media::AudioHardwareConfig hardware_config(out_params, out_params); |
| 136 | 137 |
| 137 scoped_ptr<media::AudioRenderer> audio_renderer( | 138 scoped_ptr<media::AudioRenderer> audio_renderer( |
| 138 new media::AudioRendererImpl(task_runner, | 139 new media::AudioRendererImpl(task_runner, |
| 139 new media::NullAudioSink(task_runner), | 140 new media::NullAudioSink(task_runner), |
| 140 audio_decoders.Pass(), | 141 audio_decoders.Pass(), |
| 141 media::SetDecryptorReadyCB(), | 142 media::SetDecryptorReadyCB(), |
| 142 hardware_config)); | 143 hardware_config, |
| 144 new media::MediaLog())); |
| 143 | 145 |
| 144 scoped_ptr<media::Renderer> renderer(new media::RendererImpl( | 146 scoped_ptr<media::Renderer> renderer(new media::RendererImpl( |
| 145 task_runner, demuxer, audio_renderer.Pass(), video_renderer.Pass())); | 147 task_runner, demuxer, audio_renderer.Pass(), video_renderer.Pass())); |
| 146 | 148 |
| 147 base::WaitableEvent event(true, false); | 149 base::WaitableEvent event(true, false); |
| 148 media::PipelineStatus status; | 150 media::PipelineStatus status; |
| 149 | 151 |
| 150 pipeline->Start(demuxer, | 152 pipeline->Start(demuxer, |
| 151 renderer.Pass(), | 153 renderer.Pass(), |
| 152 base::Bind(&DoNothing), | 154 base::Bind(&DoNothing), |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 // Release callback which releases video renderer. Do this before cleaning up | 309 // Release callback which releases video renderer. Do this before cleaning up |
| 308 // X below since the video renderer has some X cleanup duties as well. | 310 // X below since the video renderer has some X cleanup duties as well. |
| 309 paint_cb.Reset(); | 311 paint_cb.Reset(); |
| 310 | 312 |
| 311 XDestroyWindow(g_display, g_window); | 313 XDestroyWindow(g_display, g_window); |
| 312 XCloseDisplay(g_display); | 314 XCloseDisplay(g_display); |
| 313 g_audio_manager = NULL; | 315 g_audio_manager = NULL; |
| 314 | 316 |
| 315 return 0; | 317 return 0; |
| 316 } | 318 } |
| OLD | NEW |