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)11 InFlightFrameDelivery::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()18 InFlightFrameDelivery::~InFlightFrameDelivery() {
19   Done();
20 }
21 
Done()22 void InFlightFrameDelivery::Done() {
23   if (!post_delivery_callback_.is_null()) {
24     std::move(post_delivery_callback_).Run();
25   }
26 }
27 
ProvideFeedback(const media::VideoFrameFeedback & feedback)28 void 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