// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROMECAST_PUBLIC_VIDEO_PLANE_H_ #define CHROMECAST_PUBLIC_VIDEO_PLANE_H_ namespace chromecast { struct RectF; struct Size; namespace media { class VideoPlane { public: // List of possible hardware transforms that can be applied to video. // Rotations are anticlockwise. enum Transform { TRANSFORM_NONE, ROTATE_90, ROTATE_180, ROTATE_270, FLIP_HORIZONTAL, FLIP_VERTICAL, }; virtual ~VideoPlane() {} // Updates the video plane geometry. // |screen_rect| specifies the rectangle that the video should occupy, // in screen resolution coordinates. // |transform| specifies how the video should be transformed within that // rectangle. virtual void SetGeometry(const RectF& screen_rect, Transform transform) = 0; }; } // namespace media } // namespace chromecast #endif // CHROMECAST_PUBLIC_VIDEO_PLANE_H_