Wire up RTX in VideoReceiveStream.
Also adds a test to make sure that a retransmitted frame is actually
received and decoded on the remote side. The previous NACK test checked
retransmission, but not that the receiver actually takes care of the
retransmitted packet.
BUG=2399
R=mflodman@webrtc.org, stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/7469004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@5422 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/video_receive_stream.h b/video_receive_stream.h
index ac1afc6..ae1b112 100644
--- a/video_receive_stream.h
+++ b/video_receive_stream.h
@@ -26,10 +26,7 @@
namespace newapi {
// RTCP mode to use. Compound mode is described by RFC 4585 and reduced-size
// RTCP mode is described by RFC 5506.
-enum RtcpMode {
- kRtcpCompound,
- kRtcpReducedSize
-};
+enum RtcpMode { kRtcpCompound, kRtcpReducedSize };
} // namespace newapi
class VideoDecoder;
@@ -138,9 +135,21 @@
// See FecConfig for description.
FecConfig fec;
- // RTX settings for video payloads that may be received. RTX is disabled
- // if there's no config present.
- std::map<int, RtxConfig> rtx;
+ // RTX settings for incoming video payloads that may be received. RTX is
+ // disabled if there's no config present.
+ struct Rtx {
+ Rtx() : ssrc(0), payload_type(0) {}
+
+ // SSRCs to use for the RTX streams.
+ uint32_t ssrc;
+
+ // Payload type to use for the RTX stream.
+ int payload_type;
+ };
+
+ // Map from video RTP payload type -> RTX config.
+ typedef std::map<int, Rtx> RtxMap;
+ RtxMap rtx;
// RTP header extensions used for the received stream.
std::vector<RtpExtension> extensions;