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 @@
#include "chromecast/public/media/media_pipeline_backend.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 {
// TODO(alokp): Query the preferred value from media backend.
const int kDefaultSampleRate = 48000;
......@@ -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(
const ::media::AudioParameters& params,
const std::string& device_id,
......@@ -281,16 +263,5 @@ bool CastAudioManager::UseMixerOutputStream(
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 chromecast
......@@ -88,10 +88,6 @@ class CastAudioManager : public ::media::AudioManagerBase {
const ::media::AudioParameters& params,
const std::string& device_id_or_group_id,
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(
const ::media::AudioParameters& params,
const std::string& device_id,
......@@ -108,12 +104,6 @@ class CastAudioManager : public ::media::AudioManagerBase {
virtual ::media::AudioOutputStream* MakeMixerOutputStream(
const ::media::AudioParameters& params);
#if defined(OS_ANDROID)
::media::AudioOutputStream* MakeAudioOutputStreamProxy(
const ::media::AudioParameters& params,
const std::string& device_id) override;
#endif
private:
FRIEND_TEST_ALL_PREFIXES(CastAudioManagerTest, CanMakeStreamProxy);
friend class CastAudioMixer;
......
......@@ -9,6 +9,7 @@
#include "base/logging.h"
#include "chromecast/media/audio/audio_buildflags.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/base/audio_parameters.h"
#include "media/base/channel_layout.h"
......@@ -106,5 +107,22 @@ void CastAudioManagerAndroid::GetAudioInputDeviceNames(
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 chromecast
......@@ -28,6 +28,15 @@ class CastAudioManagerAndroid : public CastAudioManager {
bool use_mixer);
~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.
bool HasAudioInputDevices() override;
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