Implemented NACK based reference picture selection.
This CL implements NACK based reference picture selection for VP8. A separate class is used for keeping track of the references and managing the VP8 encode flags. Appropriate tests have also been added. BUG= TEST= Review URL: http://webrtc-codereview.appspot.com/284002 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1082 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -86,9 +86,9 @@ VCMGenericEncoder::Encode(const VideoFrame& inputFrame,
|
||||
}
|
||||
|
||||
WebRtc_Word32
|
||||
VCMGenericEncoder::SetPacketLoss(WebRtc_Word32 packetLoss)
|
||||
VCMGenericEncoder::SetChannelParameters(WebRtc_Word32 packetLoss, int rtt)
|
||||
{
|
||||
return _encoder.SetPacketLoss(packetLoss);
|
||||
return _encoder.SetChannelParameters(packetLoss, rtt);
|
||||
}
|
||||
|
||||
WebRtc_Word32
|
||||
|
||||
@@ -110,9 +110,9 @@ public:
|
||||
*/
|
||||
WebRtc_Word32 SetRates(WebRtc_UWord32 newBitRate, WebRtc_UWord32 frameRate);
|
||||
/**
|
||||
* Set a new packet loss rate
|
||||
* Set a new packet loss rate and a new round-trip time in milliseconds.
|
||||
*/
|
||||
WebRtc_Word32 SetPacketLoss(WebRtc_Word32 packetLoss);
|
||||
WebRtc_Word32 SetChannelParameters(WebRtc_Word32 packetLoss, int rtt);
|
||||
WebRtc_Word32 CodecConfigParameters(WebRtc_UWord8* buffer, WebRtc_Word32 size);
|
||||
/**
|
||||
* Register a transport callback which will be called to deliver the encoded buffers
|
||||
|
||||
@@ -547,7 +547,7 @@ VideoCodingModuleImpl::FrameRate() const
|
||||
WebRtc_Word32
|
||||
VideoCodingModuleImpl::SetChannelParameters(WebRtc_UWord32 availableBandWidth,
|
||||
WebRtc_UWord8 lossRate,
|
||||
WebRtc_UWord32 RTT)
|
||||
WebRtc_UWord32 rtt)
|
||||
{
|
||||
WEBRTC_TRACE(webrtc::kTraceModuleCall,
|
||||
webrtc::kTraceVideoCoding,
|
||||
@@ -558,10 +558,10 @@ VideoCodingModuleImpl::SetChannelParameters(WebRtc_UWord32 availableBandWidth,
|
||||
CriticalSectionScoped sendCs(_sendCritSect);
|
||||
WebRtc_UWord32 targetRate = _mediaOpt.SetTargetRates(availableBandWidth,
|
||||
lossRate,
|
||||
RTT);
|
||||
rtt);
|
||||
if (_encoder != NULL)
|
||||
{
|
||||
ret = _encoder->SetPacketLoss(lossRate);
|
||||
ret = _encoder->SetChannelParameters(lossRate, rtt);
|
||||
if (ret < 0 )
|
||||
{
|
||||
return ret;
|
||||
@@ -582,14 +582,14 @@ VideoCodingModuleImpl::SetChannelParameters(WebRtc_UWord32 availableBandWidth,
|
||||
}
|
||||
|
||||
WebRtc_Word32
|
||||
VideoCodingModuleImpl::SetReceiveChannelParameters(WebRtc_UWord32 RTT)
|
||||
VideoCodingModuleImpl::SetReceiveChannelParameters(WebRtc_UWord32 rtt)
|
||||
{
|
||||
WEBRTC_TRACE(webrtc::kTraceModuleCall,
|
||||
webrtc::kTraceVideoCoding,
|
||||
VCMId(_id),
|
||||
"SetReceiveChannelParameters()");
|
||||
CriticalSectionScoped receiveCs(_receiveCritSect);
|
||||
_receiver.UpdateRtt(RTT);
|
||||
_receiver.UpdateRtt(rtt);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -113,10 +113,10 @@ public:
|
||||
virtual WebRtc_Word32 SetChannelParameters(
|
||||
WebRtc_UWord32 availableBandWidth,
|
||||
WebRtc_UWord8 lossRate,
|
||||
WebRtc_UWord32 RTT);
|
||||
WebRtc_UWord32 rtt);
|
||||
|
||||
// Set recieve channel parameters
|
||||
virtual WebRtc_Word32 SetReceiveChannelParameters(WebRtc_UWord32 RTT);
|
||||
virtual WebRtc_Word32 SetReceiveChannelParameters(WebRtc_UWord32 rtt);
|
||||
|
||||
// Register a transport callback which will be called to deliver the
|
||||
// encoded buffers
|
||||
|
||||
Reference in New Issue
Block a user