Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Side by Side Diff: webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h

Issue 2638083002: Attach TransportFeedbackPacketLossTracker to ANA (PLR only) (Closed)
Patch Set: 1. Rebased. 2. Observer UT added. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 uint16_t sequence_number; 330 uint16_t sequence_number;
331 // Size of the packet excluding RTP headers. 331 // Size of the packet excluding RTP headers.
332 size_t payload_size; 332 size_t payload_size;
333 // The network route ids that this packet is associated with. 333 // The network route ids that this packet is associated with.
334 uint16_t local_net_id; 334 uint16_t local_net_id;
335 uint16_t remote_net_id; 335 uint16_t remote_net_id;
336 // Pacing information about this packet. 336 // Pacing information about this packet.
337 PacedPacketInfo pacing_info; 337 PacedPacketInfo pacing_info;
338 }; 338 };
339 339
340 // TODO(elad.alon): See TODO attached to TransportFeedbackAdapterObserver.
340 class TransportFeedbackObserver { 341 class TransportFeedbackObserver {
341 public: 342 public:
342 TransportFeedbackObserver() {} 343 TransportFeedbackObserver() {}
343 virtual ~TransportFeedbackObserver() {} 344 virtual ~TransportFeedbackObserver() {}
344 345
345 // Note: Transport-wide sequence number as sequence number. 346 // Note: Transport-wide sequence number as sequence number.
346 virtual void AddPacket(uint16_t sequence_number, 347 virtual void AddPacket(uint32_t ssrc,
348 uint16_t sequence_number,
347 size_t length, 349 size_t length,
348 const PacedPacketInfo& pacing_info) = 0; 350 const PacedPacketInfo& pacing_info) = 0;
349 351
350 virtual void OnTransportFeedback(const rtcp::TransportFeedback& feedback) = 0; 352 virtual void OnTransportFeedback(const rtcp::TransportFeedback& feedback) = 0;
351 353
352 virtual std::vector<PacketFeedback> GetTransportFeedbackVector() const = 0; 354 virtual std::vector<PacketFeedback> GetTransportFeedbackVector() const = 0;
353 }; 355 };
354 356
357 // TODO(elad.alon): After the current TransportFeedbackObserver becomes obsolete
358 // and is removed, reuse the name "TransportFeedbackObserver" for the class
359 // currently named "TransportFeedbackAdapterObserver".
360 // Background: The only implementers of this interface are
361 // CongestionController and TransportFeedbackProxy.
362 // CongestionController uses it to expose only a small subset of its
363 // capabilities.
364 // TransportFeedbackProxy is a temporary solution which exists to allow passing
365 // the CongestionController down at a later stage.
366 // Ideally, we'd get rid of this altogether, exposing CC. This will be done
367 // after the order-of-creation issues have been resolved, and
368 // TransportFeedbackProxy therefore removed. Then, we'll remove
369 // TransportFeedbackAdapterObserver, reuse the name
370 // TransportFeedbackObserver for TransportFeedbackAdapterObserver, and only
371 // have one observer.
372 class TransportFeedbackAdapterObserver {
373 public:
374 virtual ~TransportFeedbackAdapterObserver() = default;
375
376 virtual void OnPacketAdded(uint32_t ssrc, uint16_t seq_num) = 0;
377 virtual void OnNewTransportFeedbackVector(
378 const std::vector<PacketFeedback>& packet_feedback_vector) = 0;
379 };
380
355 class RtcpRttStats { 381 class RtcpRttStats {
356 public: 382 public:
357 virtual void OnRttUpdate(int64_t rtt) = 0; 383 virtual void OnRttUpdate(int64_t rtt) = 0;
358 384
359 virtual int64_t LastProcessedRtt() const = 0; 385 virtual int64_t LastProcessedRtt() const = 0;
360 386
361 virtual ~RtcpRttStats() {} 387 virtual ~RtcpRttStats() {}
362 }; 388 };
363 389
364 // Null object version of RtpFeedback. 390 // Null object version of RtpFeedback.
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 class TransportSequenceNumberAllocator { 459 class TransportSequenceNumberAllocator {
434 public: 460 public:
435 TransportSequenceNumberAllocator() {} 461 TransportSequenceNumberAllocator() {}
436 virtual ~TransportSequenceNumberAllocator() {} 462 virtual ~TransportSequenceNumberAllocator() {}
437 463
438 virtual uint16_t AllocateSequenceNumber() = 0; 464 virtual uint16_t AllocateSequenceNumber() = 0;
439 }; 465 };
440 466
441 } // namespace webrtc 467 } // namespace webrtc
442 #endif // WEBRTC_MODULES_RTP_RTCP_INCLUDE_RTP_RTCP_DEFINES_H_ 468 #endif // WEBRTC_MODULES_RTP_RTCP_INCLUDE_RTP_RTCP_DEFINES_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698