Index: media/audio/audio_manager_base.cc |
diff --git a/media/audio/audio_manager_base.cc b/media/audio/audio_manager_base.cc |
index 29c2679d57931263b4883b0cafa51da09efdda3f..92a255d095cfb22ed58b36b766c22aa8084b2d58 100644 |
--- a/media/audio/audio_manager_base.cc |
+++ b/media/audio/audio_manager_base.cc |
@@ -166,9 +166,7 @@ AudioOutputStream* AudioManagerBase::MakeAudioOutputStream( |
break; |
case AudioParameters::AUDIO_BITSTREAM_AC3: |
case AudioParameters::AUDIO_BITSTREAM_EAC3: |
- // TODO(tsunghung): create passthrough output stream. |
- NOTREACHED(); |
- stream = nullptr; |
+ stream = MakeBitstreamOutputStream(params, device_id, log_callback); |
break; |
case AudioParameters::AUDIO_FAKE: |
stream = FakeAudioOutputStream::MakeFakeStream(this, params); |
@@ -185,6 +183,13 @@ AudioOutputStream* AudioManagerBase::MakeAudioOutputStream( |
return stream; |
} |
+AudioOutputStream* AudioManagerBase::MakeBitstreamOutputStream( |
+ const AudioParameters& params, |
+ const std::string& device_id, |
+ const LogCallback& log_callback) { |
+ return nullptr; |
+} |
+ |
AudioInputStream* AudioManagerBase::MakeAudioInputStream( |
const AudioParameters& params, |
const std::string& device_id, |
@@ -286,7 +291,8 @@ AudioOutputStream* AudioManagerBase::MakeAudioOutputStreamProxy( |
const base::TimeDelta kCloseDelay = |
base::TimeDelta::FromSeconds(kStreamCloseDelaySeconds); |
std::unique_ptr<AudioOutputDispatcher> dispatcher; |
- if (output_params.format() != AudioParameters::AUDIO_FAKE) { |
+ if (output_params.format() != AudioParameters::AUDIO_FAKE && |
+ !output_params.IsBitstreamFormat()) { |
// Using unretained for |debug_recording_manager_| is safe since it |
// outlives the dispatchers (cleared in ShutdownOnAudioThread()). |
dispatcher = base::MakeUnique<AudioOutputResampler>( |