Index: content/browser/renderer_host/media/video_capture_controller.cc |
diff --git a/content/browser/renderer_host/media/video_capture_controller.cc b/content/browser/renderer_host/media/video_capture_controller.cc |
index 364ee972973814589184db0e1db2c5dfa8e6620c..f3b360cf4eaeb69021733c15848f78de2c18369f 100644 |
--- a/content/browser/renderer_host/media/video_capture_controller.cc |
+++ b/content/browser/renderer_host/media/video_capture_controller.cc |
@@ -243,7 +243,7 @@ void VideoCaptureController::ReturnBuffer( |
const VideoCaptureControllerID& id, |
VideoCaptureControllerEventHandler* event_handler, |
int buffer_id, |
- uint32 sync_point) { |
+ const std::vector<uint32>& sync_points) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
ControllerClient* client = FindClient(id, event_handler, controller_clients_); |
@@ -259,8 +259,10 @@ void VideoCaptureController::ReturnBuffer( |
scoped_refptr<media::VideoFrame> frame = iter->second; |
client->active_buffers.erase(iter); |
- if (frame->format() == media::VideoFrame::NATIVE_TEXTURE) |
- frame->mailbox_holder()->sync_point = sync_point; |
+ if (frame->format() == media::VideoFrame::NATIVE_TEXTURE) { |
+ for (size_t i = 0; i < sync_points.size(); i++) |
+ frame->AppendReleaseSyncPoint(sync_points[i]); |
+ } |
buffer_pool_->RelinquishConsumerHold(buffer_id, 1); |
} |