| Index: webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h b/webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h
|
| index 03a1c4f728ac217d4cce1c0d03add9cb1bef7eb7..e8634c8139e4d3da93b0b4a9cc2a75835f96d494 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h
|
| @@ -21,9 +21,31 @@
|
|
|
| namespace webrtc {
|
| namespace rtcp {
|
| +
|
| +class TransportFeedbackInterface {
|
| + public:
|
| + virtual ~TransportFeedbackInterface() = default;
|
| + enum class StatusSymbol {
|
| + kNotReceived,
|
| + kReceivedSmallDelta,
|
| + kReceivedLargeDelta,
|
| + };
|
| + virtual void SetBase(uint16_t base_sequence, int64_t ref_timestamp_us) = 0;
|
| + virtual void SetFeedbackSequenceNumber(uint8_t feedback_sequence) = 0;
|
| + virtual bool AddReceivedPacket(uint16_t sequence_number,
|
| + int64_t timestamp_us) = 0;
|
| + virtual uint16_t GetBaseSequence() const = 0;
|
| + virtual std::vector<StatusSymbol> GetStatusVector() const = 0;
|
| + virtual std::vector<int16_t> GetReceiveDeltas() const = 0;
|
| + virtual int64_t GetBaseTimeUs() const = 0;
|
| + virtual std::vector<int64_t> GetReceiveDeltasUs() const = 0;
|
| +};
|
| +
|
| class CommonHeader;
|
|
|
| -class TransportFeedback : public Rtpfb {
|
| +// TODO(minyue): Update PacketCounter so that TransportFeedback can become a
|
| +// final class.
|
| +class TransportFeedback : public Rtpfb, public TransportFeedbackInterface {
|
| public:
|
| class PacketStatusChunk;
|
| // TODO(sprang): IANA reg?
|
| @@ -34,27 +56,23 @@ class TransportFeedback : public Rtpfb {
|
| TransportFeedback();
|
| ~TransportFeedback() override;
|
|
|
| - void SetBase(uint16_t base_sequence, // Seq# of first packet in this msg.
|
| - int64_t ref_timestamp_us); // Reference timestamp for this msg.
|
| - void SetFeedbackSequenceNumber(uint8_t feedback_sequence);
|
| + void SetBase(uint16_t base_sequence, // Seq# of first packet in this msg.
|
| + int64_t ref_timestamp_us) // Reference timestamp for this msg.
|
| + override;
|
| + void SetFeedbackSequenceNumber(uint8_t feedback_sequence) override;
|
| // NOTE: This method requires increasing sequence numbers (excepting wraps).
|
| - bool AddReceivedPacket(uint16_t sequence_number, int64_t timestamp_us);
|
| -
|
| - enum class StatusSymbol {
|
| - kNotReceived,
|
| - kReceivedSmallDelta,
|
| - kReceivedLargeDelta,
|
| - };
|
| + bool AddReceivedPacket(uint16_t sequence_number,
|
| + int64_t timestamp_us) override;
|
|
|
| - uint16_t GetBaseSequence() const;
|
| - std::vector<TransportFeedback::StatusSymbol> GetStatusVector() const;
|
| - std::vector<int16_t> GetReceiveDeltas() const;
|
| + uint16_t GetBaseSequence() const override;
|
| + std::vector<StatusSymbol> GetStatusVector() const override;
|
| + std::vector<int16_t> GetReceiveDeltas() const override;
|
|
|
| // Get the reference time in microseconds, including any precision loss.
|
| - int64_t GetBaseTimeUs() const;
|
| + int64_t GetBaseTimeUs() const override;
|
| // Convenience method for getting all deltas as microseconds. The first delta
|
| // is relative the base time.
|
| - std::vector<int64_t> GetReceiveDeltasUs() const;
|
| + std::vector<int64_t> GetReceiveDeltasUs() const override;
|
|
|
| bool Parse(const CommonHeader& packet);
|
| static std::unique_ptr<TransportFeedback> ParseFrom(const uint8_t* buffer,
|
|
|