Index: media/cast/framer/framer.cc |
diff --git a/media/cast/framer/framer.cc b/media/cast/framer/framer.cc |
index d510d8b7ba90c7c83730ad92dd12bb93af667a21..2e2a5028efa77d8fb16293ecc43ab8057c46d44b 100644 |
--- a/media/cast/framer/framer.cc |
+++ b/media/cast/framer/framer.cc |
@@ -58,14 +58,7 @@ bool Framer::InsertPacket(const uint8* payload_data, |
it->second->InsertPacket(payload_data, payload_size, rtp_header); |
} |
- bool complete = (packet_type == kNewPacketCompletingFrame); |
- if (complete) { |
- // ACK as soon as possible. |
- VLOG(2) << "Complete frame " << static_cast<int>(rtp_header.frame_id); |
- cast_msg_builder_->CompleteFrameReceived(rtp_header.frame_id, |
- rtp_header.is_key_frame); |
- } |
- return complete; |
+ return packet_type == kNewPacketCompletingFrame; |
} |
// This does not release the frame. |
@@ -83,6 +76,11 @@ bool Framer::GetEncodedAudioFrame(transport::EncodedAudioFrame* audio_frame, |
*next_frame = false; |
} |
+ if (next_frame) { |
+ VLOG(2) << "ACK frame " << frame_id; |
+ cast_msg_builder_->CompleteFrameReceived(frame_id); |
+ } |
+ |
ConstFrameIterator it = frames_.find(frame_id); |
DCHECK(it != frames_.end()); |
if (it == frames_.end()) |
@@ -93,7 +91,10 @@ bool Framer::GetEncodedAudioFrame(transport::EncodedAudioFrame* audio_frame, |
// This does not release the frame. |
bool Framer::GetEncodedVideoFrame(transport::EncodedVideoFrame* video_frame, |
- bool* next_frame) { |
+ bool* next_frame, |
+ bool* have_multiple_decodable_frames) { |
+ *have_multiple_decodable_frames = frame_id_map_.HaveMultipleDecodableFrames(); |
+ |
uint32 frame_id; |
// Find frame id. |
if (frame_id_map_.NextContinuousFrame(&frame_id)) { |
@@ -110,6 +111,11 @@ bool Framer::GetEncodedVideoFrame(transport::EncodedVideoFrame* video_frame, |
*next_frame = false; |
} |
+ if (next_frame) { |
imcheng
2014/05/14 20:11:24
*next_frame
hubbe
2014/05/14 21:46:16
Done (so much for test coverage)
|
+ VLOG(2) << "ACK frame " << frame_id; |
+ cast_msg_builder_->CompleteFrameReceived(frame_id); |
+ } |
+ |
ConstFrameIterator it = frames_.find(frame_id); |
DCHECK(it != frames_.end()); |
if (it == frames_.end()) |