Commit eea6bc77 authored by Alex Leung's avatar Alex Leung Committed by Commit Bot

[Chromecast] Audio output buffer size can be configurable using gn args.

Bug: b:126783022
Test: CQ Presubmit and verified header files are correct.
Change-Id: I0b7c6f97b6191a7c28fa20e470d3718e079925fb
Reviewed-on: https://chromium-review.googlesource.com/c/1496437
Commit-Queue: Alex Leung <alexleung@google.com>
Reviewed-by: default avatarKenneth MacKay <kmackay@chromium.org>
Cr-Commit-Position: refs/heads/master@{#636872}
parent ff4b5e7b
# Copyright 2015 The Chromium Authors. All rights reserved. # Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("//build/buildflag_header.gni")
import("//chromecast/chromecast.gni") import("//chromecast/chromecast.gni")
import("//media/media_options.gni") import("//media/media_options.gni")
declare_args() {
# Defines bounds for the output buffer size (in frames)
minimum_output_buffer_size_in_frames = 512
maximum_output_buffer_size_in_frames = 8192
default_output_buffer_size_in_frames = 2048
}
cast_source_set("audio") { cast_source_set("audio") {
sources = [ sources = [
"cast_audio_manager.cc", "cast_audio_manager.cc",
...@@ -16,6 +23,7 @@ cast_source_set("audio") { ...@@ -16,6 +23,7 @@ cast_source_set("audio") {
] ]
deps = [ deps = [
":audio_buildflags",
"//base", "//base",
"//chromecast/base", "//chromecast/base",
"//chromecast/common/mojom", "//chromecast/common/mojom",
...@@ -63,3 +71,13 @@ source_set("fake_external_audio_pipeline") { ...@@ -63,3 +71,13 @@ source_set("fake_external_audio_pipeline") {
"//chromecast/public/media", "//chromecast/public/media",
] ]
} }
buildflag_header("audio_buildflags") {
header = "audio_buildflags.h"
flags = [
"MINIMUM_OUTPUT_BUFFER_SIZE_IN_FRAMES=$minimum_output_buffer_size_in_frames",
"MAXIMUM_OUTPUT_BUFFER_SIZE_IN_FRAMES=$maximum_output_buffer_size_in_frames",
"DEFAULT_OUTPUT_BUFFER_SIZE_IN_FRAMES=$default_output_buffer_size_in_frames",
]
}
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/location.h" #include "base/location.h"
#include "base/logging.h" #include "base/logging.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chromecast/media/audio/audio_buildflags.h"
#include "chromecast/media/audio/cast_audio_mixer.h" #include "chromecast/media/audio/cast_audio_mixer.h"
#include "chromecast/media/audio/cast_audio_output_stream.h" #include "chromecast/media/audio/cast_audio_output_stream.h"
#include "chromecast/media/cma/backend/cma_backend_factory.h" #include "chromecast/media/cma/backend/cma_backend_factory.h"
...@@ -28,11 +29,13 @@ namespace { ...@@ -28,11 +29,13 @@ namespace {
const int kDefaultSampleRate = 48000; const int kDefaultSampleRate = 48000;
// Define bounds for the output buffer size (in frames). // Define bounds for the output buffer size (in frames).
// Note: These values are copied from AudioManagerPulse implementation.
// TODO(alokp): Query the preferred value from media backend. // TODO(alokp): Query the preferred value from media backend.
static const int kMinimumOutputBufferSize = 512; static const int kMinimumOutputBufferSize =
static const int kMaximumOutputBufferSize = 8192; BUILDFLAG(MINIMUM_OUTPUT_BUFFER_SIZE_IN_FRAMES);
static const int kDefaultOutputBufferSize = 2048; static const int kMaximumOutputBufferSize =
BUILDFLAG(MAXIMUM_OUTPUT_BUFFER_SIZE_IN_FRAMES);
static const int kDefaultOutputBufferSize =
BUILDFLAG(DEFAULT_OUTPUT_BUFFER_SIZE_IN_FRAMES);
// TODO(jyw): Query the preferred value from media backend. // TODO(jyw): Query the preferred value from media backend.
static const int kDefaultInputBufferSize = 1024; static const int kDefaultInputBufferSize = 1024;
......
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