mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-16 23:30:48 +01:00
[InsertableStreams] Ensure encoder queue is valid in OnTransformedFrame
In RTPSenderVideoFrameTransformerDelegate::TransformFrame(), the encoder queue might still be null when a frame queued by a previous delegate arrives. This could happen in the context of renegotiation that results in a codec reset. In this case, the frame should be dropped. Bug: webrtc:12691 Change-Id: Ib738ce31738cffc7e01053dbc82237f457fc2286 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216393 Commit-Queue: Guido Urdaneta <guidou@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33866}
This commit is contained in:
parent
1a5f36b9b9
commit
bd27adb714
1 changed files with 4 additions and 3 deletions
|
@ -129,9 +129,10 @@ void RTPSenderVideoFrameTransformerDelegate::OnTransformedFrame(
|
||||||
std::unique_ptr<TransformableFrameInterface> frame) {
|
std::unique_ptr<TransformableFrameInterface> frame) {
|
||||||
MutexLock lock(&sender_lock_);
|
MutexLock lock(&sender_lock_);
|
||||||
|
|
||||||
// The encoder queue gets destroyed after the sender; as long as the sender is
|
// The encoder queue normally gets destroyed after the sender;
|
||||||
// alive, it's safe to post.
|
// however, it might still be null by the time a previously queued frame
|
||||||
if (!sender_)
|
// arrives.
|
||||||
|
if (!sender_ || !encoder_queue_)
|
||||||
return;
|
return;
|
||||||
rtc::scoped_refptr<RTPSenderVideoFrameTransformerDelegate> delegate = this;
|
rtc::scoped_refptr<RTPSenderVideoFrameTransformerDelegate> delegate = this;
|
||||||
encoder_queue_->PostTask(ToQueuedTask(
|
encoder_queue_->PostTask(ToQueuedTask(
|
||||||
|
|
Loading…
Reference in a new issue