Commit 20aa5eb1 authored by Yuchen Liu's avatar Yuchen Liu Committed by Commit Bot

[Chromecast] Move Android specific logic into CAMAndroid

Now we have CastAudioManagerAndroid. Move android specific logics into
the new class.

Bug: internel b/160753974
Test: Build
Change-Id: I9a3a177f938da525e8f18df3ee0be5588bdd6eb0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2337539Reviewed-by: default avatarKenneth MacKay <kmackay@chromium.org>
Commit-Queue: Yuchen Liu <yucliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#794803}
parent f754d0cb
...@@ -21,10 +21,6 @@ ...@@ -21,10 +21,6 @@
#include "chromecast/public/media/media_pipeline_backend.h" #include "chromecast/public/media/media_pipeline_backend.h"
#include "media/audio/audio_device_description.h" #include "media/audio/audio_device_description.h"
#if defined(OS_ANDROID)
#include "media/audio/android/audio_track_output_stream.h"
#endif // defined(OS_ANDROID)
namespace { namespace {
// TODO(alokp): Query the preferred value from media backend. // TODO(alokp): Query the preferred value from media backend.
const int kDefaultSampleRate = 48000; const int kDefaultSampleRate = 48000;
...@@ -197,20 +193,6 @@ std::string CastAudioManager::GetSessionId(std::string audio_group_id) { ...@@ -197,20 +193,6 @@ std::string CastAudioManager::GetSessionId(std::string audio_group_id) {
} }
} }
::media::AudioOutputStream* CastAudioManager::MakeBitstreamOutputStream(
const ::media::AudioParameters& params,
const std::string& device_id,
const ::media::AudioManager::LogCallback& log_callback) {
#if defined(OS_ANDROID)
DCHECK(params.IsBitstreamFormat());
return new ::media::AudioTrackOutputStream(this, params);
#else
NOTREACHED() << " Not implemented on non-android platform.";
return ::media::AudioManagerBase::MakeBitstreamOutputStream(params, device_id,
log_callback);
#endif // defined(OS_ANDROID)
}
::media::AudioInputStream* CastAudioManager::MakeLinearInputStream( ::media::AudioInputStream* CastAudioManager::MakeLinearInputStream(
const ::media::AudioParameters& params, const ::media::AudioParameters& params,
const std::string& device_id, const std::string& device_id,
...@@ -281,16 +263,5 @@ bool CastAudioManager::UseMixerOutputStream( ...@@ -281,16 +263,5 @@ bool CastAudioManager::UseMixerOutputStream(
return !use_cma_backend; return !use_cma_backend;
} }
#if defined(OS_ANDROID)
::media::AudioOutputStream* CastAudioManager::MakeAudioOutputStreamProxy(
const ::media::AudioParameters& params,
const std::string& device_id) {
// Override to use MakeAudioOutputStream to prevent the audio output stream
// from closing during pause/stop.
return MakeAudioOutputStream(params, device_id,
/*log_callback, not used*/ base::DoNothing());
}
#endif // defined(OS_ANDROID)
} // namespace media } // namespace media
} // namespace chromecast } // namespace chromecast
...@@ -88,10 +88,6 @@ class CastAudioManager : public ::media::AudioManagerBase { ...@@ -88,10 +88,6 @@ class CastAudioManager : public ::media::AudioManagerBase {
const ::media::AudioParameters& params, const ::media::AudioParameters& params,
const std::string& device_id_or_group_id, const std::string& device_id_or_group_id,
const ::media::AudioManager::LogCallback& log_callback) override; const ::media::AudioManager::LogCallback& log_callback) override;
::media::AudioOutputStream* MakeBitstreamOutputStream(
const ::media::AudioParameters& params,
const std::string& device_id,
const ::media::AudioManager::LogCallback& log_callback) override;
::media::AudioInputStream* MakeLinearInputStream( ::media::AudioInputStream* MakeLinearInputStream(
const ::media::AudioParameters& params, const ::media::AudioParameters& params,
const std::string& device_id, const std::string& device_id,
...@@ -108,12 +104,6 @@ class CastAudioManager : public ::media::AudioManagerBase { ...@@ -108,12 +104,6 @@ class CastAudioManager : public ::media::AudioManagerBase {
virtual ::media::AudioOutputStream* MakeMixerOutputStream( virtual ::media::AudioOutputStream* MakeMixerOutputStream(
const ::media::AudioParameters& params); const ::media::AudioParameters& params);
#if defined(OS_ANDROID)
::media::AudioOutputStream* MakeAudioOutputStreamProxy(
const ::media::AudioParameters& params,
const std::string& device_id) override;
#endif
private: private:
FRIEND_TEST_ALL_PREFIXES(CastAudioManagerTest, CanMakeStreamProxy); FRIEND_TEST_ALL_PREFIXES(CastAudioManagerTest, CanMakeStreamProxy);
friend class CastAudioMixer; friend class CastAudioMixer;
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "base/logging.h" #include "base/logging.h"
#include "chromecast/media/audio/audio_buildflags.h" #include "chromecast/media/audio/audio_buildflags.h"
#include "chromecast/media/audio/cast_audio_input_stream.h" #include "chromecast/media/audio/cast_audio_input_stream.h"
#include "media/audio/android/audio_track_output_stream.h"
#include "media/audio/audio_device_name.h" #include "media/audio/audio_device_name.h"
#include "media/base/audio_parameters.h" #include "media/base/audio_parameters.h"
#include "media/base/channel_layout.h" #include "media/base/channel_layout.h"
...@@ -106,5 +107,22 @@ void CastAudioManagerAndroid::GetAudioInputDeviceNames( ...@@ -106,5 +107,22 @@ void CastAudioManagerAndroid::GetAudioInputDeviceNames(
return nullptr; return nullptr;
} }
::media::AudioOutputStream* CastAudioManagerAndroid::MakeBitstreamOutputStream(
const ::media::AudioParameters& params,
const std::string& device_id,
const ::media::AudioManager::LogCallback& log_callback) {
DCHECK(params.IsBitstreamFormat());
return new ::media::AudioTrackOutputStream(this, params);
}
::media::AudioOutputStream* CastAudioManagerAndroid::MakeAudioOutputStreamProxy(
const ::media::AudioParameters& params,
const std::string& device_id) {
// Override to use MakeAudioOutputStream to prevent the audio output stream
// from closing during pause/stop.
return MakeAudioOutputStream(params, device_id,
/*log_callback, not used*/ base::DoNothing());
}
} // namespace media } // namespace media
} // namespace chromecast } // namespace chromecast
...@@ -28,6 +28,15 @@ class CastAudioManagerAndroid : public CastAudioManager { ...@@ -28,6 +28,15 @@ class CastAudioManagerAndroid : public CastAudioManager {
bool use_mixer); bool use_mixer);
~CastAudioManagerAndroid() override; ~CastAudioManagerAndroid() override;
// AudioManager implementation.
::media::AudioOutputStream* MakeAudioOutputStreamProxy(
const ::media::AudioParameters& params,
const std::string& device_id) override;
::media::AudioOutputStream* MakeBitstreamOutputStream(
const ::media::AudioParameters& params,
const std::string& device_id,
const ::media::AudioManager::LogCallback& log_callback) override;
// CastAudioManager implementation. // CastAudioManager implementation.
bool HasAudioInputDevices() override; bool HasAudioInputDevices() override;
void GetAudioInputDeviceNames( void GetAudioInputDeviceNames(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment