Browse Source
Merge pull request #12058 from liamwhite/opus-again
opus: fix stereo stream count check in multistream decoder object
pull/15/merge
liamwhite
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
2 additions and
2 deletions
-
src/audio_core/adsp/apps/opus/opus_multistream_decode_object.cpp
-
src/audio_core/opus/decoder.cpp
|
|
|
@ -12,7 +12,7 @@ bool IsValidChannelCount(u32 channel_count) { |
|
|
|
} |
|
|
|
|
|
|
|
bool IsValidStreamCounts(u32 total_stream_count, u32 stereo_stream_count) { |
|
|
|
return total_stream_count > 0 && stereo_stream_count > 0 && |
|
|
|
return total_stream_count > 0 && static_cast<s32>(stereo_stream_count) >= 0 && |
|
|
|
stereo_stream_count <= total_stream_count && IsValidChannelCount(total_stream_count); |
|
|
|
} |
|
|
|
} // namespace
|
|
|
|
|
|
|
|
@ -148,7 +148,7 @@ Result OpusDecoder::DecodeInterleavedForMultiStream(u32* out_data_size, u64* out |
|
|
|
auto* header_p{reinterpret_cast<const OpusPacketHeader*>(input_data.data())}; |
|
|
|
OpusPacketHeader header{ReverseHeader(*header_p)}; |
|
|
|
|
|
|
|
LOG_ERROR(Service_Audio, "header size 0x{:X} input data size 0x{:X} in_data size 0x{:X}", |
|
|
|
LOG_TRACE(Service_Audio, "header size 0x{:X} input data size 0x{:X} in_data size 0x{:X}", |
|
|
|
header.size, input_data.size_bytes(), in_data.size_bytes()); |
|
|
|
|
|
|
|
R_UNLESS(in_data.size_bytes() >= header.size && |
|
|
|
|