// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; namespace osu.Framework.Graphics.Video { /// /// Represents a list of usable hardware video decoders. /// /// /// Contains decoders for ALL platforms. /// [Flags] // todo: revisit when we have a way to exclude enum members from naming rules [SuppressMessage("ReSharper", "InconsistentNaming")] public enum HardwareVideoDecoder { /// /// Disables hardware decoding. /// [Description("None")] None, /// /// Windows and Linux only. /// [Description("Nvidia NVDEC (CUDA)")] NVDEC = 1, /// /// Windows and Linux only. /// [Description("Intel Quick Sync Video")] QuickSyncVideo = 1 << 2, /// /// Windows only. /// [Description("DirectX Video Acceleration 2.0")] DXVA2 = 1 << 3, /// /// Linux only. /// [Description("VDPAU")] VDPAU = 1 << 4, /// /// Linux only. /// [Description("VA-API")] VAAPI = 1 << 5, /// /// Android only. /// [Description("Android MediaCodec")] MediaCodec = 1 << 6, /// /// Apple devices only. /// [Description("Apple VideoToolbox")] VideoToolbox = 1 << 7, /// /// Windows only. /// [Description("Direct3D 11 Video Acceleration")] D3D11VA = 1 << 8, [Description("Any")] Any = int.MaxValue, } }