Add fuzzer test for G722 and fix a fuzzer problem

The problem was fixed by implementing the methid PacketDuration() in
AudioDecoderG722StereoImpl, which catches the issue in
AudioDecoder::Decode().


Bug: chromium:1280851
Change-Id: I31f974b9999f3c1c62b0e5dc39bb3e56a9a9388d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251842
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36034}
This commit is contained in:
Henrik Lundin
2022-02-16 15:15:12 +00:00
committed by WebRTC LUCI CQ
parent 0b06552ab3
commit ba2677061a
4 changed files with 54 additions and 0 deletions

View File

@ -114,6 +114,12 @@ int AudioDecoderG722StereoImpl::DecodeInternal(const uint8_t* encoded,
return static_cast<int>(ret);
}
int AudioDecoderG722StereoImpl::PacketDuration(const uint8_t* encoded,
size_t encoded_len) const {
// 1/2 encoded byte per sample per channel.
return static_cast<int>(2 * encoded_len / Channels());
}
int AudioDecoderG722StereoImpl::SampleRateHz() const {
return 16000;
}

View File

@ -57,6 +57,7 @@ class AudioDecoderG722StereoImpl final : public AudioDecoder {
std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
uint32_t timestamp) override;
int SampleRateHz() const override;
int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override;
size_t Channels() const override;
protected: