/*
 *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */
#include "webrtc/base/checks.h"
#include "webrtc/modules/rtp_rtcp/source/rtcp_receiver.h"
#include "webrtc/system_wrappers/include/clock.h"

namespace webrtc {

void FuzzOneInput(const uint8_t* data, size_t size) {
  RTCPUtility::RTCPParserV2 rtcp_parser(data, size, true);
  if (!rtcp_parser.IsValid())
    return;

  webrtc::SimulatedClock clock(1234);
  RTCPReceiver receiver(&clock, false, nullptr, nullptr, nullptr, nullptr,
                        nullptr);

  RTCPHelp::RTCPPacketInformation rtcp_packet_information;
  receiver.IncomingRTCPPacket(rtcp_packet_information, &rtcp_parser);
}
}  // namespace webrtc


/*
 *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */
#include "webrtc/base/checks.h"
#include "webrtc/modules/rtp_rtcp/source/rtcp_receiver.h"
#include "webrtc/system_wrappers/include/clock.h"

namespace webrtc {
namespace {

class NullModuleRtpRtcp : public RTCPReceiver::ModuleRtpRtcp {
 public:
  void SetTmmbn(std::vector<rtcp::TmmbItem>) override {}
  void OnRequestSendReport() override {}
  void OnReceivedNack(const std::vector<uint16_t>&) override {};
  void OnReceivedRtcpReportBlocks(const ReportBlockList&) override {};
};

}

void FuzzOneInput(const uint8_t* data, size_t size) {
  NullModuleRtpRtcp rtp_rtcp_module;
  SimulatedClock clock(1234);

  RTCPReceiver receiver(&clock, false, nullptr, nullptr, nullptr, nullptr,
                        &rtp_rtcp_module);

  receiver.IncomingPacket(data, size);
}
}  // namespace webrtc


Update rtcp receiver fuzzer to use generic function IncomingPacket(const uint8_t* packet, size_t size) instead of implementation specific IncomingRTCPPacket(PacketInfo* out, Parser* in) This would allow switch parse implementation
Update rtcp receiver fuzzer to use generic function
IncomingPacket(const uint8_t* packet, size_t size)
instead of implementation specific
IncomingRTCPPacket(PacketInfo* out, Parser* in)
This would allow switch parse implementation

BUG=webrtc:5260
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/2334643002 .

Cr-Commit-Position: 972c6d2dc6dd5efdad1377c0d224e03eb8f276f7@{#14195}
