| OLD | NEW |
| 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 |
| 11 #ifndef WEBRTC_MODULES_RTP_RTCP_INCLUDE_RTP_RTCP_H_ | 11 #ifndef WEBRTC_MODULES_RTP_RTCP_INCLUDE_RTP_RTCP_H_ |
| 12 #define WEBRTC_MODULES_RTP_RTCP_INCLUDE_RTP_RTCP_H_ | 12 #define WEBRTC_MODULES_RTP_RTCP_INCLUDE_RTP_RTCP_H_ |
| 13 | 13 |
| 14 #include <set> | 14 #include <set> |
| 15 #include <string> | 15 #include <string> |
| 16 #include <utility> | 16 #include <utility> |
| 17 #include <vector> | 17 #include <vector> |
| 18 | 18 |
| 19 #include "webrtc/modules/include/module.h" | 19 #include "webrtc/modules/include/module.h" |
| 20 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" | 20 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" |
| 21 #include "webrtc/modules/video_coding/include/video_coding_defines.h" |
| 21 | 22 |
| 22 namespace webrtc { | 23 namespace webrtc { |
| 23 // Forward declarations. | 24 // Forward declarations. |
| 24 class ReceiveStatistics; | 25 class ReceiveStatistics; |
| 25 class RemoteBitrateEstimator; | 26 class RemoteBitrateEstimator; |
| 26 class RtpReceiver; | 27 class RtpReceiver; |
| 27 class Transport; | 28 class Transport; |
| 28 class RtcEventLog; | 29 class RtcEventLog; |
| 29 | 30 |
| 30 RTPExtensionType StringToRtpExtensionType(const std::string& extension); | 31 RTPExtensionType StringToRtpExtensionType(const std::string& extension); |
| 31 | 32 |
| 32 namespace rtcp { | 33 namespace rtcp { |
| 33 class TransportFeedback; | 34 class TransportFeedback; |
| 34 } | 35 } |
| 35 | 36 |
| 36 class RtpRtcp : public Module { | 37 class RtpRtcp : public Module, public NackSender { |
| 37 public: | 38 public: |
| 38 struct Configuration { | 39 struct Configuration { |
| 39 Configuration(); | 40 Configuration(); |
| 40 | 41 |
| 41 /* id - Unique identifier of this RTP/RTCP module object | 42 /* id - Unique identifier of this RTP/RTCP module object |
| 42 * audio - True for a audio version of the RTP/RTCP module | 43 * audio - True for a audio version of the RTP/RTCP module |
| 43 * object false will create a video version | 44 * object false will create a video version |
| 44 * clock - The clock to use to read time. If NULL object | 45 * clock - The clock to use to read time. If NULL object |
| 45 * will be using the system clock. | 46 * will be using the system clock. |
| 46 * incoming_data - Callback object that will receive the incoming | 47 * incoming_data - Callback object that will receive the incoming |
| (...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 * | 528 * |
| 528 * Returns -1 on failure, otherwise 0. | 529 * Returns -1 on failure, otherwise 0. |
| 529 */ | 530 */ |
| 530 virtual int SetSelectiveRetransmissions(uint8_t settings) = 0; | 531 virtual int SetSelectiveRetransmissions(uint8_t settings) = 0; |
| 531 | 532 |
| 532 /* | 533 /* |
| 533 * Send a Negative acknowledgement packet | 534 * Send a Negative acknowledgement packet |
| 534 * | 535 * |
| 535 * return -1 on failure else 0 | 536 * return -1 on failure else 0 |
| 536 */ | 537 */ |
| 538 // TODO(philipel): Deprecate this and start using SendNack instead, |
| 539 // mostly because we want a function that actually send |
| 540 // NACK for the specified packets. |
| 537 virtual int32_t SendNACK(const uint16_t* nackList, uint16_t size) = 0; | 541 virtual int32_t SendNACK(const uint16_t* nackList, uint16_t size) = 0; |
| 538 | 542 |
| 539 /* | 543 /* |
| 544 * Implements NackSender |
| 545 * Send NACK for the packets specified. |
| 546 */ |
| 547 virtual void SendNack(const std::vector<uint16_t>& sequence_numbers) = 0; |
| 548 |
| 549 /* |
| 540 * Store the sent packets, needed to answer to a Negative acknowledgement | 550 * Store the sent packets, needed to answer to a Negative acknowledgement |
| 541 * requests | 551 * requests |
| 542 */ | 552 */ |
| 543 virtual void SetStorePacketsStatus(bool enable, uint16_t numberToStore) = 0; | 553 virtual void SetStorePacketsStatus(bool enable, uint16_t numberToStore) = 0; |
| 544 | 554 |
| 545 // Returns true if the module is configured to store packets. | 555 // Returns true if the module is configured to store packets. |
| 546 virtual bool StorePackets() const = 0; | 556 virtual bool StorePackets() const = 0; |
| 547 | 557 |
| 548 // Called on receipt of RTCP report block from remote side. | 558 // Called on receipt of RTCP report block from remote side. |
| 549 virtual void RegisterRtcpStatisticsCallback( | 559 virtual void RegisterRtcpStatisticsCallback( |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 651 | 661 |
| 652 /* | 662 /* |
| 653 * send a request for a keyframe | 663 * send a request for a keyframe |
| 654 * | 664 * |
| 655 * return -1 on failure else 0 | 665 * return -1 on failure else 0 |
| 656 */ | 666 */ |
| 657 virtual int32_t RequestKeyFrame() = 0; | 667 virtual int32_t RequestKeyFrame() = 0; |
| 658 }; | 668 }; |
| 659 } // namespace webrtc | 669 } // namespace webrtc |
| 660 #endif // WEBRTC_MODULES_RTP_RTCP_INCLUDE_RTP_RTCP_H_ | 670 #endif // WEBRTC_MODULES_RTP_RTCP_INCLUDE_RTP_RTCP_H_ |
| OLD | NEW |