Index: content/renderer/media/media_stream_video_renderer_sink.cc |
diff --git a/content/renderer/media/media_stream_video_renderer_sink.cc b/content/renderer/media/media_stream_video_renderer_sink.cc |
index 709f9d51d8f11139c35d11b2eb15235c36a52848..6fff1d9c81f58097bac9f37b1e307f3f24bb1c79 100644 |
--- a/content/renderer/media/media_stream_video_renderer_sink.cc |
+++ b/content/renderer/media/media_stream_video_renderer_sink.cc |
@@ -40,6 +40,10 @@ MediaStreamVideoRendererSink::MediaStreamVideoRendererSink( |
} |
MediaStreamVideoRendererSink::~MediaStreamVideoRendererSink() { |
+ if (gpu_memory_buffer_pool_) { |
+ media_task_runner_->DeleteSoon(FROM_HERE, |
+ gpu_memory_buffer_pool_.release()); |
+ } |
} |
void MediaStreamVideoRendererSink::Start() { |
@@ -109,6 +113,9 @@ void MediaStreamVideoRendererSink::OnVideoFrame( |
return; |
} |
+ // |gpu_memory_buffer_pool_| deletion is going to be posted to |
+ // |media_task_runner_|. base::Unretained() usage is fine since |
+ // |gpu_memory_buffer_pool_| outlives the task. |
media_task_runner_->PostTask( |
FROM_HERE, |
base::Bind( |