// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_CAST_RECEIVER_BROWSER_PUBLIC_STREAMING_RESOLUTION_OBSERVER_H_
#define COMPONENTS_CAST_RECEIVER_BROWSER_PUBLIC_STREAMING_RESOLUTION_OBSERVER_H_
#include "base/observer_list_types.h"
namespace gfx {
class Rect;
} // namespace gfx
namespace media {
struct VideoTransformation;
} // namespace media
namespace cast_receiver {
// Observer to be informed when the resolution of an ongoing Cast mirroring or
// remoting stream (as supported by the cast_streaming component) is changed.
// TODO(crbug.com/1358690): Remove this class.
class StreamingResolutionObserver : public base::CheckedObserver {
public:
~StreamingResolutionObserver() override = default;
// Called when the running streaming application changes the resolution of
// its generated video frames.
virtual void OnStreamingResolutionChanged(
const gfx::Rect& size,
const media::VideoTransformation& transformation) = 0;
};
} // namespace cast_receiver
#endif // COMPONENTS_CAST_RECEIVER_BROWSER_PUBLIC_STREAMING_RESOLUTION_OBSERVER_H_