| 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 // Audio rendering unit utilizing an AudioRendererSink to output data. | 5 // Audio rendering unit utilizing an AudioRendererSink to output data. | 
| 6 // | 6 // | 
| 7 // This class lives inside three threads during it's lifetime, namely: | 7 // This class lives inside three threads during it's lifetime, namely: | 
| 8 // 1. Render thread | 8 // 1. Render thread | 
| 9 //    Where the object is created. | 9 //    Where the object is created. | 
| 10 // 2. Media thread (provided via constructor) | 10 // 2. Media thread (provided via constructor) | 
| 11 //    All AudioDecoder methods are called on this thread. | 11 //    All AudioDecoder methods are called on this thread. | 
| 12 // 3. Audio thread created by the AudioRendererSink. | 12 // 3. Audio thread created by the AudioRendererSink. | 
| 13 //    Render() is called here where audio data is decoded into raw PCM data. | 13 //    Render() is called here where audio data is decoded into raw PCM data. | 
| 14 // | 14 // | 
| 15 // AudioRendererImpl talks to an AudioRendererAlgorithm that takes care of | 15 // AudioRendererImpl talks to an AudioRendererAlgorithm that takes care of | 
| 16 // queueing audio data and stretching/shrinking audio data when playback rate != | 16 // queueing audio data and stretching/shrinking audio data when playback rate != | 
| 17 // 1.0 or 0.0. | 17 // 1.0 or 0.0. | 
| 18 | 18 | 
| 19 #ifndef MEDIA_RENDERERS_AUDIO_RENDERER_IMPL_H_ | 19 #ifndef MEDIA_RENDERERS_AUDIO_RENDERER_IMPL_H_ | 
| 20 #define MEDIA_RENDERERS_AUDIO_RENDERER_IMPL_H_ | 20 #define MEDIA_RENDERERS_AUDIO_RENDERER_IMPL_H_ | 
| 21 | 21 | 
| 22 #include <deque> | 22 #include <deque> | 
| 23 | 23 | 
| 24 #include "base/gtest_prod_util.h" |  | 
| 25 #include "base/memory/scoped_ptr.h" | 24 #include "base/memory/scoped_ptr.h" | 
| 26 #include "base/memory/weak_ptr.h" | 25 #include "base/memory/weak_ptr.h" | 
| 27 #include "base/synchronization/lock.h" | 26 #include "base/synchronization/lock.h" | 
| 28 #include "media/base/audio_decoder.h" | 27 #include "media/base/audio_decoder.h" | 
| 29 #include "media/base/audio_renderer.h" | 28 #include "media/base/audio_renderer.h" | 
| 30 #include "media/base/audio_renderer_sink.h" | 29 #include "media/base/audio_renderer_sink.h" | 
| 31 #include "media/base/decryptor.h" | 30 #include "media/base/decryptor.h" | 
| 32 #include "media/base/media_log.h" | 31 #include "media/base/media_log.h" | 
| 33 #include "media/base/time_source.h" | 32 #include "media/base/time_source.h" | 
| 34 #include "media/filters/audio_renderer_algorithm.h" | 33 #include "media/filters/audio_renderer_algorithm.h" | 
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 275 | 274 | 
| 276   // NOTE: Weak pointers must be invalidated before all other member variables. | 275   // NOTE: Weak pointers must be invalidated before all other member variables. | 
| 277   base::WeakPtrFactory<AudioRendererImpl> weak_factory_; | 276   base::WeakPtrFactory<AudioRendererImpl> weak_factory_; | 
| 278 | 277 | 
| 279   DISALLOW_COPY_AND_ASSIGN(AudioRendererImpl); | 278   DISALLOW_COPY_AND_ASSIGN(AudioRendererImpl); | 
| 280 }; | 279 }; | 
| 281 | 280 | 
| 282 }  // namespace media | 281 }  // namespace media | 
| 283 | 282 | 
| 284 #endif  // MEDIA_RENDERERS_AUDIO_RENDERER_IMPL_H_ | 283 #endif  // MEDIA_RENDERERS_AUDIO_RENDERER_IMPL_H_ | 
| OLD | NEW | 
|---|