/* * Copyright (c) 2012 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 "modules/audio_coding/neteq/red_payload_splitter.h" #include <stddef.h> #include <cstdint> #include <list> #include <utility> #include <vector> #include "modules/audio_coding/neteq/decoder_database.h" #include "modules/audio_coding/neteq/packet.h" #include "rtc_base/buffer.h" #include "rtc_base/logging.h" #include "rtc_base/numerics/safe_conversions.h" namespace webrtc { // The method loops through a list of packets {A, B, C, ...}. Each packet is // split into its corresponding RED payloads, {A1, A2, ...}, which is // temporarily held in the list `new_packets`. // When the first packet in `packet_list` has been processed, the original // packet is replaced by the new ones in `new_packets`, so that `packet_list` // becomes: {A1, A2, ..., B, C, ...}. The method then continues with B, and C, // until all the original packets have been replaced by their split payloads. bool RedPayloadSplitter::SplitRed(PacketList* packet_list) { … } void RedPayloadSplitter::CheckRedPayloads( PacketList* packet_list, const DecoderDatabase& decoder_database) { … } } // namespace webrtc