| Index: webrtc/modules/rtp_rtcp/source/producer_fec.h
|
| diff --git a/webrtc/modules/rtp_rtcp/source/producer_fec.h b/webrtc/modules/rtp_rtcp/source/producer_fec.h
|
| index 7ea07403a65f114674a890de851b701419803ad4..d52b4ed8f8832b3a69541358db13756809079563 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/producer_fec.h
|
| +++ b/webrtc/modules/rtp_rtcp/source/producer_fec.h
|
| @@ -59,36 +59,43 @@ class ProducerFec {
|
| size_t payload_length,
|
| size_t rtp_header_length);
|
|
|
| - // Returns true if the excess overhead (actual - target) for the FEC is below
|
| - // the amount |kMaxExcessOverhead|. This effects the lower protection level
|
| - // cases and low number of media packets/frame. The target overhead is given
|
| - // by |params_.fec_rate|, and is only achievable in the limit of large number
|
| - // of media packets.
|
| - bool ExcessOverheadBelowMax() const;
|
| -
|
| - // Returns true if the number of added media packets is at least
|
| - // |min_num_media_packets_|. This condition tries to capture the effect
|
| - // that, for the same amount of protection/overhead, longer codes
|
| - // (e.g. (2k,2m) vs (k,m)) are generally more effective at recovering losses.
|
| - bool MinimumMediaPacketsReached() const;
|
| -
|
| // Returns true if there are generated FEC packets available.
|
| bool FecAvailable() const;
|
|
|
| size_t NumAvailableFecPackets() const;
|
|
|
| + // Returns the overhead, per packet, for FEC (and possibly RED).
|
| size_t MaxPacketOverhead() const;
|
|
|
| // Returns generated FEC packets with RED headers added.
|
| - std::vector<std::unique_ptr<RedPacket>> GetFecPacketsAsRed(
|
| + std::vector<std::unique_ptr<RedPacket>> GetUlpfecPacketsAsRed(
|
| int red_payload_type,
|
| int ulpfec_payload_type,
|
| uint16_t first_seq_num,
|
| size_t rtp_header_length);
|
|
|
| private:
|
| - void DeleteMediaPackets();
|
| + // Overhead is defined as relative to the number of media packets, and not
|
| + // relative to total number of packets. This definition is inherited from the
|
| + // protection factor produced by video_coding module and how the FEC
|
| + // generation is implemented.
|
| int Overhead() const;
|
| +
|
| + // Returns true if the excess overhead (actual - target) for the FEC is below
|
| + // the amount |kMaxExcessOverhead|. This effects the lower protection level
|
| + // cases and low number of media packets/frame. The target overhead is given
|
| + // by |params_.fec_rate|, and is only achievable in the limit of large number
|
| + // of media packets.
|
| + bool ExcessOverheadBelowMax() const;
|
| +
|
| + // Returns true if the number of added media packets is at least
|
| + // |min_num_media_packets_|. This condition tries to capture the effect
|
| + // that, for the same amount of protection/overhead, longer codes
|
| + // (e.g. (2k,2m) vs (k,m)) are generally more effective at recovering losses.
|
| + bool MinimumMediaPacketsReached() const;
|
| +
|
| + void ResetState();
|
| +
|
| std::unique_ptr<ForwardErrorCorrection> fec_;
|
| ForwardErrorCorrection::PacketList media_packets_;
|
| std::list<ForwardErrorCorrection::Packet*> generated_fec_packets_;
|
|
|