Skip to main content

vapoursynth4_sys/
constants.rs

1/*
2 This Source Code Form is subject to the terms of the Mozilla Public
3 License, v. 2.0. If a copy of the MPL was not distributed with this
4 file, You can obtain one at http://mozilla.org/MPL/2.0/.
5*/
6
7//! VSConstants4.h
8
9#![allow(non_camel_case_types)]
10
11/// Numbering of the `_Range` frame property, which follows H.273.
12///
13/// Added in API 4.2 to replace [`VSColorRange`], whose two values are the other
14/// way around. Filters compiled against API 4.2 or later must only use `_Range`.
15#[repr(C)]
16#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
17pub enum VSRange {
18    VSC_RANGE_LIMITED = 0,
19    VSC_RANGE_FULL = 1,
20}
21
22/// Numbering of the deprecated `_ColorRange` frame property.
23#[repr(C)]
24#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
25#[cfg_attr(
26    feature = "vs-42",
27    deprecated(
28        note = "API 4.2 replaces `_ColorRange` with `_Range`; use `VSRange`, whose 0 and 1 mean the opposite"
29    )
30)]
31pub enum VSColorRange {
32    VSC_RANGE_FULL = 0,
33    VSC_RANGE_LIMITED = 1,
34}
35
36#[repr(C)]
37#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
38pub enum VSChromaLocation {
39    VSC_CHROMA_LEFT = 0,
40    VSC_CHROMA_CENTER = 1,
41    VSC_CHROMA_TOP_LEFT = 2,
42    VSC_CHROMA_TOP = 3,
43    VSC_CHROMA_BOTTOM_LEFT = 4,
44    VSC_CHROMA_BOTTOM = 5,
45}
46
47#[repr(C)]
48#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
49pub enum VSFieldBased {
50    VSC_FIELD_PROGRESSIVE = 0,
51    VSC_FIELD_BOTTOM = 1,
52    VSC_FIELD_TOP = 2,
53}
54
55#[repr(C)]
56#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
57pub enum VSMatrixCoefficients {
58    VSC_MATRIX_RGB = 0,
59    VSC_MATRIX_BT709 = 1,
60    VSC_MATRIX_UNSPECIFIED = 2,
61    VSC_MATRIX_FCC = 4,
62    VSC_MATRIX_BT470_BG = 5,
63    /// Equivalent to 5.
64    VSC_MATRIX_ST170_M = 6,
65    VSC_MATRIX_ST240_M = 7,
66    VSC_MATRIX_YCGCO = 8,
67    VSC_MATRIX_BT2020_NCL = 9,
68    VSC_MATRIX_BT2020_CL = 10,
69    VSC_MATRIX_CHROMATICITY_DERIVED_NCL = 12,
70    VSC_MATRIX_CHROMATICITY_DERIVED_CL = 13,
71    VSC_MATRIX_ICTCP = 14,
72}
73
74#[repr(C)]
75#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
76pub enum VSTransferCharacteristics {
77    VSC_TRANSFER_BT709 = 1,
78    VSC_TRANSFER_UNSPECIFIED = 2,
79    VSC_TRANSFER_BT470_M = 4,
80    VSC_TRANSFER_BT470_BG = 5,
81    /// Equivalent to 1.
82    VSC_TRANSFER_BT601 = 6,
83    VSC_TRANSFER_ST240_M = 7,
84    VSC_TRANSFER_LINEAR = 8,
85    VSC_TRANSFER_LOG_100 = 9,
86    VSC_TRANSFER_LOG_316 = 10,
87    VSC_TRANSFER_IEC_61966_2_4 = 11,
88    VSC_TRANSFER_IEC_61966_2_1 = 13,
89    /// Equivalent to 1.
90    VSC_TRANSFER_BT2020_10 = 14,
91    /// Equivalent to 1.
92    VSC_TRANSFER_BT2020_12 = 15,
93    VSC_TRANSFER_ST2084 = 16,
94    VSC_TRANSFER_ARIB_B67 = 18,
95}
96
97#[repr(C)]
98#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
99pub enum VSColorPrimaries {
100    VSC_PRIMARIES_BT709 = 1,
101    VSC_PRIMARIES_UNSPECIFIED = 2,
102    VSC_PRIMARIES_BT470_M = 4,
103    VSC_PRIMARIES_BT470_BG = 5,
104    VSC_PRIMARIES_ST170_M = 6,
105    /// Equivalent to 6.
106    VSC_PRIMARIES_ST240_M = 7,
107    VSC_PRIMARIES_FILM = 8,
108    VSC_PRIMARIES_BT2020 = 9,
109    VSC_PRIMARIES_ST428 = 10,
110    VSC_PRIMARIES_ST431_2 = 11,
111    VSC_PRIMARIES_ST432_1 = 12,
112    VSC_PRIMARIES_EBU3213_E = 22,
113}