Chromium Code Reviews| Index: media/renderers/audio_renderer_impl.h |
| diff --git a/media/renderers/audio_renderer_impl.h b/media/renderers/audio_renderer_impl.h |
| index f7915d31a607bdc512ac96704a1ddc7085c8d5cf..7f1e16d83f5222dd5df5739b343d3c08626b46a3 100644 |
| --- a/media/renderers/audio_renderer_impl.h |
| +++ b/media/renderers/audio_renderer_impl.h |
| @@ -36,6 +36,7 @@ |
| #include "media/base/time_source.h" |
| #include "media/filters/audio_renderer_algorithm.h" |
| #include "media/filters/decoder_stream.h" |
| +#include "media/renderers/default_renderer_factory.h" |
| namespace base { |
| class SingleThreadTaskRunner; |
| @@ -62,7 +63,7 @@ class MEDIA_EXPORT AudioRendererImpl |
| AudioRendererImpl( |
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
| AudioRendererSink* sink, |
| - ScopedVector<AudioDecoder> decoders, |
| + const CreateAudioDecodersCB& create_audio_decoders_cb, |
| const scoped_refptr<MediaLog>& media_log); |
| ~AudioRendererImpl() override; |
| @@ -96,16 +97,18 @@ class MEDIA_EXPORT AudioRendererImpl |
| // Important detail: being in kPlaying doesn't imply that audio is being |
| // rendered. Rather, it means that the renderer is ready to go. The actual |
| // rendering of audio is controlled via Start/StopRendering(). |
| + // Audio renderer can be reinitialized completely by calling Initialize again |
| + // when it is in a kFlushed and stopped (StopTicking) state. |
|
xhwang
2017/03/27 19:13:53
AudioRenderer API only says it can be reinitialize
servolk
2017/03/27 22:34:12
AFAIR this must be a left over from some earlier a
|
| // |
| // kUninitialized |
| - // | Initialize() |
| - // | |
| - // V |
| - // kInitializing |
| - // | Decoders initialized |
| - // | |
| - // V Decoders reset |
| - // kFlushed <------------------ kFlushing |
| + // +----> | Initialize() |
| + // | | |
| + // | V |
| + // | kInitializing |
| + // | | Decoders initialized |
| + // | | |
| + // | V Decoders reset |
| + // +- kFlushed <------------------ kFlushing |
| // | StartPlaying() ^ |
| // | | |
| // | | Flush() |
| @@ -253,6 +256,8 @@ class MEDIA_EXPORT AudioRendererImpl |
| // Simple state tracking variable. |
| State state_; |
| + CreateAudioDecodersCB create_audio_decoders_cb_; |
|
xhwang
2017/03/27 19:13:53
FYI, we do have a DecoderFactory interface:
https
servolk
2017/03/27 22:34:13
Yes, I saw that, but for now the DefaultRendererFa
xhwang
2017/03/29 00:16:47
Could you please add a TODO?
servolk
2017/03/29 01:49:33
Done.
|
| + |
| BufferingState buffering_state_; |
| // Keep track of whether or not the sink is playing and whether we should be |