From 0dd7c929c8957c90b873583245fd97f4f5a70c00 Mon Sep 17 00:00:00 2001 From: Jason Zhang Date: Wed, 22 Jan 2025 10:57:51 -0800 Subject: [PATCH] [android] Ensure MinRequiredFramesTester can start Start MinRequiredFramesTester with no less frames than the return value from AudioTrack.getMinBufferSize(). Otherwise, AudioTrack may not be able to start playing. b/390500247 --- .../shared/audio_track_audio_sink_type.cc | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/starboard/android/shared/audio_track_audio_sink_type.cc b/starboard/android/shared/audio_track_audio_sink_type.cc index 3a92470983b8..f917e1974f2e 100644 --- a/starboard/android/shared/audio_track_audio_sink_type.cc +++ b/starboard/android/shared/audio_track_audio_sink_type.cc @@ -524,12 +524,16 @@ void AudioTrackAudioSinkType::TestMinRequiredFrames() { sample_type = kSbMediaAudioSampleTypeInt16Deprecated; SB_DCHECK(SbAudioSinkIsAudioSampleTypeSupported(sample_type)); } - min_required_frames_tester_.AddTest(2, sample_type, kSampleFrequency48000, - onMinRequiredFramesForWebAudioReceived, - 8 * 1024); - min_required_frames_tester_.AddTest(2, sample_type, kSampleFrequency22050, - onMinRequiredFramesForWebAudioReceived, - 4 * 1024); + min_required_frames_tester_.AddTest( + 2, sample_type, kSampleFrequency48000, + onMinRequiredFramesForWebAudioReceived, + std::max(8 * 1024, AudioTrackBridge::GetMinBufferSizeInFrames( + sample_type, 2, kSampleFrequency48000))); + min_required_frames_tester_.AddTest( + 2, sample_type, kSampleFrequency22050, + onMinRequiredFramesForWebAudioReceived, + std::max(4 * 1024, AudioTrackBridge::GetMinBufferSizeInFrames( + sample_type, 2, kSampleFrequency22050))); min_required_frames_tester_.Start(); }