Commit c8dc7791 authored by Dan Sanders's avatar Dan Sanders Committed by Commit Bot

[webcodecs] Fix AudioDecoder |description| handling.

Previously AudioDecoder would read the whole buffer, rather than the
provided view of it.

Bug: 1094084
Change-Id: Ibdf601e1d01114456093230c5daa137807566f6b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2367641Reviewed-by: default avatarChrome Cunningham <chcunningham@chromium.org>
Commit-Queue: Chrome Cunningham <chcunningham@chromium.org>
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Auto-Submit: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800289}
parent c0b0e276
...@@ -58,18 +58,19 @@ CodecConfigEval AudioDecoderTraits::CreateMediaConfig( ...@@ -58,18 +58,19 @@ CodecConfigEval AudioDecoderTraits::CreateMediaConfig(
std::vector<uint8_t> extra_data; std::vector<uint8_t> extra_data;
if (config.hasDescription()) { if (config.hasDescription()) {
DOMArrayBuffer* buffer;
if (config.description().IsArrayBuffer()) { if (config.description().IsArrayBuffer()) {
buffer = config.description().GetAsArrayBuffer(); DOMArrayBuffer* buffer = config.description().GetAsArrayBuffer();
} else {
// TODO(sandersd): Can IsNull() be true?
DCHECK(config.description().IsArrayBufferView());
buffer = config.description().GetAsArrayBufferView()->buffer();
}
// TODO(sandersd): Is it possible to not have Data()?
uint8_t* start = static_cast<uint8_t*>(buffer->Data()); uint8_t* start = static_cast<uint8_t*>(buffer->Data());
size_t size = buffer->ByteLengthAsSizeT(); size_t size = buffer->ByteLengthAsSizeT();
extra_data.assign(start, start + size); extra_data.assign(start, start + size);
} else {
DCHECK(config.description().IsArrayBufferView());
DOMArrayBufferView* view =
config.description().GetAsArrayBufferView().Get();
uint8_t* start = static_cast<uint8_t*>(view->BaseAddress());
size_t size = view->byteLengthAsSizeT();
extra_data.assign(start, start + size);
}
} }
media::ChannelLayout channel_layout = media::ChannelLayout channel_layout =
......
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