| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 
| 3  * | 3  * | 
| 4  *  Use of this source code is governed by a BSD-style license | 4  *  Use of this source code is governed by a BSD-style license | 
| 5  *  that can be found in the LICENSE file in the root of the source | 5  *  that can be found in the LICENSE file in the root of the source | 
| 6  *  tree. An additional intellectual property rights grant can be found | 6  *  tree. An additional intellectual property rights grant can be found | 
| 7  *  in the file PATENTS.  All contributing project authors may | 7  *  in the file PATENTS.  All contributing project authors may | 
| 8  *  be found in the AUTHORS file in the root of the source tree. | 8  *  be found in the AUTHORS file in the root of the source tree. | 
| 9  */ | 9  */ | 
| 10 | 10 | 
| 11 #include <memory> | 11 #include <memory> | 
| 12 | 12 | 
| 13 #include "webrtc/base/checks.h" | 13 #include "webrtc/base/checks.h" | 
| 14 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" | 14 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" | 
| 15 #include "webrtc/modules/rtp_rtcp/source/fec_test_helper.h" | 15 #include "webrtc/modules/rtp_rtcp/source/fec_test_helper.h" | 
| 16 #include "webrtc/modules/rtp_rtcp/source/producer_fec.h" | 16 #include "webrtc/modules/rtp_rtcp/source/producer_fec.h" | 
| 17 | 17 | 
| 18 namespace webrtc { | 18 namespace webrtc { | 
| 19 | 19 | 
| 20 void FuzzOneInput(const uint8_t* data, size_t size) { | 20 void FuzzOneInput(const uint8_t* data, size_t size) { | 
| 21   ForwardErrorCorrection fec; | 21   ProducerFec producer; | 
| 22   ProducerFec producer(&fec); |  | 
| 23   size_t i = 0; | 22   size_t i = 0; | 
| 24   if (size < 4) | 23   if (size < 4) | 
| 25     return; | 24     return; | 
| 26   FecProtectionParams params = { | 25   FecProtectionParams params = { | 
| 27       data[i++] % 128, static_cast<int>(data[i++] % 10), kFecMaskBursty}; | 26       data[i++] % 128, static_cast<int>(data[i++] % 10), kFecMaskBursty}; | 
| 28   producer.SetFecParameters(¶ms, 0); | 27   producer.SetFecParameters(¶ms, 0); | 
| 29   uint16_t seq_num = data[i++]; | 28   uint16_t seq_num = data[i++]; | 
| 30 | 29 | 
| 31   while (i + 3 < size) { | 30   while (i + 3 < size) { | 
| 32     size_t rtp_header_length = data[i++] % 10 + 12; | 31     size_t rtp_header_length = data[i++] % 10 + 12; | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 49     const size_t num_fec_packets = producer.NumAvailableFecPackets(); | 48     const size_t num_fec_packets = producer.NumAvailableFecPackets(); | 
| 50     if (num_fec_packets > 0) { | 49     if (num_fec_packets > 0) { | 
| 51       std::vector<std::unique_ptr<RedPacket>> fec_packets = | 50       std::vector<std::unique_ptr<RedPacket>> fec_packets = | 
| 52           producer.GetFecPacketsAsRed(kRedPayloadType, kFecPayloadType, 100, | 51           producer.GetFecPacketsAsRed(kRedPayloadType, kFecPayloadType, 100, | 
| 53                                       rtp_header_length); | 52                                       rtp_header_length); | 
| 54       RTC_CHECK_EQ(num_fec_packets, fec_packets.size()); | 53       RTC_CHECK_EQ(num_fec_packets, fec_packets.size()); | 
| 55     } | 54     } | 
| 56   } | 55   } | 
| 57 } | 56 } | 
| 58 }  // namespace webrtc | 57 }  // namespace webrtc | 
| OLD | NEW | 
|---|