Add RequestKeyFrame with Fir to RtcpTransceiver

Bug: webrtc:8239
Change-Id: If094d434a7be20cdff5c80447322d68a4a7a4580
Reviewed-on: https://webrtc-review.googlesource.com/22961
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20833}
This commit is contained in:
Danil Chapovalov
2017-11-22 14:00:41 +01:00
committed by Commit Bot
parent 65c392265f
commit 2ddf98d894
5 changed files with 145 additions and 42 deletions

View File

@ -90,18 +90,32 @@ void RtcpTransceiver::UnsetRemb() {
});
}
void RtcpTransceiver::RequestKeyFrame(std::vector<uint32_t> ssrcs) {
void RtcpTransceiver::SendPictureLossIndication(std::vector<uint32_t> ssrcs) {
// TODO(danilchap): Replace with lambda with move capture when available.
struct RequestKeyFrameClosure {
struct Closure {
void operator()() {
if (ptr)
ptr->RequestKeyFrame(ssrcs);
ptr->SendPictureLossIndication(ssrcs);
}
rtc::WeakPtr<RtcpTransceiverImpl> ptr;
std::vector<uint32_t> ssrcs;
};
task_queue_->PostTask(RequestKeyFrameClosure{ptr_, std::move(ssrcs)});
task_queue_->PostTask(Closure{ptr_, std::move(ssrcs)});
}
void RtcpTransceiver::SendFullIntraRequest(std::vector<uint32_t> ssrcs) {
// TODO(danilchap): Replace with lambda with move capture when available.
struct Closure {
void operator()() {
if (ptr)
ptr->SendFullIntraRequest(ssrcs);
}
rtc::WeakPtr<RtcpTransceiverImpl> ptr;
std::vector<uint32_t> ssrcs;
};
task_queue_->PostTask(Closure{ptr_, std::move(ssrcs)});
}
} // namespace webrtc