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 5bd8ac2e6197265b21a949beae5625a99c85bed4..c0a98c1e9f71e4a258696e65fc2e23cf862a824c 100644 |
--- a/content/browser/renderer_host/media/video_capture_controller.cc |
+++ b/content/browser/renderer_host/media/video_capture_controller.cc |
@@ -240,7 +240,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_); |
@@ -256,8 +256,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); |
} |