1 // Copyright 2017 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "components/viz/service/frame_sinks/video_capture/in_flight_frame_delivery.h" 6 7 #include <utility> 8 9 namespace viz { 10 InFlightFrameDelivery(base::OnceClosure post_delivery_callback,base::OnceCallback<void (const media::VideoFrameFeedback &)> feedback_callback)11InFlightFrameDelivery::InFlightFrameDelivery( 12 base::OnceClosure post_delivery_callback, 13 base::OnceCallback<void(const media::VideoFrameFeedback&)> 14 feedback_callback) 15 : post_delivery_callback_(std::move(post_delivery_callback)), 16 feedback_callback_(std::move(feedback_callback)) {} 17 ~InFlightFrameDelivery()18InFlightFrameDelivery::~InFlightFrameDelivery() { 19 Done(); 20 } 21 Done()22void InFlightFrameDelivery::Done() { 23 if (!post_delivery_callback_.is_null()) { 24 std::move(post_delivery_callback_).Run(); 25 } 26 } 27 ProvideFeedback(const media::VideoFrameFeedback & feedback)28void InFlightFrameDelivery::ProvideFeedback( 29 const media::VideoFrameFeedback& feedback) { 30 if (!feedback_callback_.is_null()) { 31 std::move(feedback_callback_).Run(feedback); 32 } 33 } 34 35 } // namespace viz 36