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 |