Commit 360527fc authored by Sergey Ulanov's avatar Sergey Ulanov Committed by Commit Bot

[Fuchsia] Pass extra_data to AudioConsumer

Some codecs require extra_data to be passed from the demuxer to decoder.
FuchsiaAudioDecoder wasn't passing that information to AudioConsumer, so
it wasn't passed to the decoder.

Bug: 1130881
Change-Id: I095c5cdd8fa99a7316af976d9a5cb748ec9027eb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2423304
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: David Dorwin <ddorwin@chromium.org>
Auto-Submit: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: default avatarDavid Dorwin <ddorwin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#809174}
parent 1d6daec3
......@@ -23,9 +23,9 @@ namespace {
// nullopt is returned in case the codec is not supported. nullptr is returned
// for uncompressed PCM streams.
base::Optional<std::unique_ptr<fuchsia::media::Compression>>
GetFuchsiaCompressionFromAudioCodec(AudioCodec codec) {
GetFuchsiaCompressionFromDecoderConfig(AudioDecoderConfig config) {
auto compression = std::make_unique<fuchsia::media::Compression>();
switch (codec) {
switch (config.codec()) {
case kCodecAAC:
compression->type = fuchsia::media::AUDIO_ENCODING_AAC;
break;
......@@ -48,6 +48,11 @@ GetFuchsiaCompressionFromAudioCodec(AudioCodec codec) {
default:
return base::nullopt;
}
if (!config.extra_data().empty()) {
compression->parameters = config.extra_data();
}
return std::move(compression);
}
......@@ -171,7 +176,7 @@ void FuchsiaAudioRenderer::InitializeStreamSink(
vmos_for_stream_sink.push_back(std::move(readonly_vmo));
}
auto compression = GetFuchsiaCompressionFromAudioCodec(config.codec());
auto compression = GetFuchsiaCompressionFromDecoderConfig(config);
if (!compression) {
LOG(ERROR) << "Unsupported audio codec: " << GetCodecName(config.codec());
std::move(init_cb_).Run(AUDIO_RENDERER_ERROR);
......
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