Chromium Code Reviews| 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..7ca986ef727f3ad119943c0b65e88fdadb22a54d 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,29 @@ | 
| 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 { | 
| +class TransportFeedback : public Rtpfb, public TransportFeedbackInterface { | 
| 
 
kwiberg-webrtc
2017/01/05 02:51:12
Can this class be final now?
 
minyue-webrtc
2017/01/19 10:57:55
sorry, I wanted to make it that way but PacketCoun
 
 | 
| public: | 
| class PacketStatusChunk; | 
| // TODO(sprang): IANA reg? | 
| @@ -34,27 +54,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, |