Skip to content

Commit 11552be

Browse files
authored
chore: Update constants for FFmpeg 8.1 (#152)
1 parent 95cb0ee commit 11552be

7 files changed

Lines changed: 213 additions & 18 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/target
22
Cargo.lock
33
/.vscode
4+
/.codex

Cargo.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,13 @@ use_prebuilt_binding = []
4444
ffmpeg5 = []
4545
# FFmpeg 6.* support
4646
ffmpeg6 = ["ffmpeg5"]
47+
# FFmpeg 6.1+ support
48+
ffmpeg6_1 = ["ffmpeg6"]
4749
# FFmpeg 7.* support
48-
ffmpeg7 = ["ffmpeg6"]
50+
ffmpeg7 = ["ffmpeg6_1"]
4951
# FFmpeg 7.1+ support
5052
ffmpeg7_1 = ["ffmpeg7"]
5153
# FFmpeg 8.* support
5254
ffmpeg8 = ["ffmpeg7_1"]
55+
# FFmpeg 8.1+ support
56+
ffmpeg8_1 = ["ffmpeg8"]
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
name: ffmpeg-constant-sync
3+
description: Use when auditing or updating hand-written FFmpeg constants, macro aliases, and version-gated feature flags in Rust bindings. Trigger for tasks like comparing `pixfmt.h` / `channel_layout.h` / `error.h` against `src/avutil/*.rs`, checking whether FFmpeg 8.1 added constants, determining the first FFmpeg release that introduced a symbol, or adding `ffmpegX_Y` feature gates in `Cargo.toml`.
4+
---
5+
6+
# FFmpeg Constant Sync
7+
8+
Audit upstream FFmpeg header macros against this repository's hand-written Rust constants, then gate each symbol by the earliest release tag that actually contains it.
9+
10+
Prefer release tags such as `n7.1`, `n8.0`, `n8.1` when answering questions about `.0` or `.1` releases. Only use release branches to inspect current maintenance-line state; branch heads may contain later backports.
11+
12+
## Use This Skill For
13+
14+
- Checking whether a specific FFmpeg release added any new constants.
15+
- Syncing `src/avutil/pixfmt.rs`, `src/avutil/channel_layout.rs`, or `src/avutil/error.rs`.
16+
- Deciding whether a symbol belongs behind `ffmpeg6`, `ffmpeg6_1`, `ffmpeg7_1`, `ffmpeg8`, `ffmpeg8_1`, etc.
17+
- Adding missing feature boundaries in `Cargo.toml`.
18+
- Verifying that Rust-exported constants match upstream macro names.
19+
20+
## Files To Audit
21+
22+
- `Cargo.toml`
23+
- `src/avutil/pixfmt.rs`
24+
- `src/avutil/channel_layout.rs`
25+
- `src/avutil/error.rs`
26+
- Sometimes `src/lib.rs` and `src/avutil/mod.rs` if a whole module is feature-gated
27+
28+
Primary upstream headers:
29+
30+
- `libavutil/pixfmt.h`
31+
- `libavutil/channel_layout.h`
32+
- `libavutil/error.h`
33+
34+
## Workflow
35+
36+
1. Identify the local hand-written constants and their current `#[cfg(feature = ...)]` gates.
37+
2. Compare upstream header macros to local Rust exports.
38+
3. For every disputed symbol, find the earliest FFmpeg release tag that contains it.
39+
4. Update `Cargo.toml` feature boundaries if an intermediate version boundary is missing.
40+
5. Gate symbols by the earliest release that contains them.
41+
6. Verify with `DOCS_RS=1 cargo check` across the relevant feature chain.
42+
43+
## Rules
44+
45+
- Use release tags for release questions:
46+
- Good: `n7.1`, `n8.0`, `n8.1`
47+
- Less reliable for `.0` / `.1` questions: `release/8.0`, `release/8.1`
48+
- Gate by first availability, not by the first version this repository happened to support.
49+
- If a later feature inherits an earlier one, prefer the narrowest correct gate:
50+
- Example: if a symbol exists since FFmpeg 6.0, use `ffmpeg6`, not `any(feature = "ffmpeg6", feature = "ffmpeg7")`
51+
- When checking whether `8.1` added constants, diff `n8.0` vs `n8.1` directly.
52+
- Distinguish:
53+
- Missing symbol entirely
54+
- Symbol present but feature gate too new
55+
- Symbol present but feature gate too broad or imprecise
56+
- Symbol already provided by generated `binding.rs`, so do not duplicate it in hand-written code
57+
58+
## Version Mapping
59+
60+
Current repository feature boundaries should follow this pattern when needed:
61+
62+
- `ffmpeg5`
63+
- `ffmpeg6`
64+
- `ffmpeg6_1`
65+
- `ffmpeg7`
66+
- `ffmpeg7_1`
67+
- `ffmpeg8`
68+
- `ffmpeg8_1`
69+
70+
If the repo is missing a needed boundary, add it to `Cargo.toml` before moving symbol gates.
71+
72+
## Verification
73+
74+
- Run `DOCS_RS=1 cargo check --features <feature>` for each affected boundary.
75+
- At minimum, check the earliest feature that should expose a symbol and the previous feature that should not.
76+
- If you need exact command patterns, read `references/tag-audit-commands.md`.
77+
78+
## Output Expectations
79+
80+
When reporting results:
81+
82+
- State whether the release added new constants or not.
83+
- Name the exact tag pair used for the comparison.
84+
- Call out symbols whose gates moved.
85+
- Separate “missing constant” from “wrong version gate”.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface:
2+
display_name: "FFmpeg Constant Sync"
3+
short_description: "Audit and sync FFmpeg constant gates"
4+
default_prompt: "Use $ffmpeg-constant-sync to audit hand-written FFmpeg constants and version gates against upstream release tags."
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Tag Audit Commands
2+
3+
Use these patterns when auditing FFmpeg constants.
4+
5+
## Diff two release tags
6+
7+
```bash
8+
diff -u \
9+
<(git -C /path/to/ffmpeg show n8.0:libavutil/pixfmt.h | rg '^#define AV_PIX_FMT_') \
10+
<(git -C /path/to/ffmpeg show n8.1:libavutil/pixfmt.h | rg '^#define AV_PIX_FMT_')
11+
```
12+
13+
Repeat with:
14+
15+
- `libavutil/channel_layout.h`
16+
- `libavutil/error.h`
17+
18+
Useful filters:
19+
20+
- `^#define AV_PIX_FMT_`
21+
- `^#define AV_CH_`
22+
- `^#define AV_CH_LAYOUT_`
23+
- `^#define AV_CHANNEL_LAYOUT_`
24+
- `^#define AVERROR_`
25+
26+
## Find the first release tag containing a symbol
27+
28+
```bash
29+
for tag in n5.0 n6.0 n6.1 n7.0 n7.1 n8.0 n8.1; do
30+
if git -C /path/to/ffmpeg show "$tag:libavutil/pixfmt.h" | rg -q '^#define AV_PIX_FMT_GRAY32\b'; then
31+
echo "$tag"
32+
break
33+
fi
34+
done
35+
```
36+
37+
Switch files by symbol family:
38+
39+
- `AV_PIX_FMT_*` -> `libavutil/pixfmt.h`
40+
- `AV_CH_*`, `AV_CH_LAYOUT_*`, `AV_CHANNEL_LAYOUT_*` -> `libavutil/channel_layout.h`
41+
- `AVERROR_*` -> `libavutil/error.h`
42+
43+
## Compare local hand-written aliases with upstream macros
44+
45+
```bash
46+
comm -23 \
47+
<(git -C /path/to/ffmpeg show n8.1:libavutil/pixfmt.h | rg '^#define AV_PIX_FMT_[A-Z0-9_]+\s+AV_PIX_FMT_NE' | sed -E 's/^#define (AV_PIX_FMT_[A-Z0-9_]+).*/\1/' | sort -u) \
48+
<(rg '^AV_PIX_FMT_NE!\(' src/avutil/pixfmt.rs | sed -E 's/^AV_PIX_FMT_NE!\((AV_PIX_FMT_[A-Z0-9_]+).*/\1/' | sort -u)
49+
```
50+
51+
## Compile checks
52+
53+
```bash
54+
DOCS_RS=1 cargo check --features ffmpeg6
55+
DOCS_RS=1 cargo check --features ffmpeg6_1
56+
DOCS_RS=1 cargo check --features ffmpeg7
57+
DOCS_RS=1 cargo check --features ffmpeg7_1
58+
DOCS_RS=1 cargo check --features ffmpeg8
59+
DOCS_RS=1 cargo check --features ffmpeg8_1
60+
```
61+
62+
Use the smallest affected subset when possible, but include the boundary before and after the symbol’s first supported version.

src/avutil/error.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ pub const AVERROR_HTTP_BAD_REQUEST: c_int = FFERRTAG!(0xF8, b'4', b'0', b'0');
4545
pub const AVERROR_HTTP_UNAUTHORIZED: c_int = FFERRTAG!(0xF8, b'4', b'0', b'1');
4646
pub const AVERROR_HTTP_FORBIDDEN: c_int = FFERRTAG!(0xF8, b'4', b'0', b'3');
4747
pub const AVERROR_HTTP_NOT_FOUND: c_int = FFERRTAG!(0xF8, b'4', b'0', b'4');
48+
#[cfg(feature = "ffmpeg7_1")]
49+
pub const AVERROR_HTTP_TOO_MANY_REQUESTS: c_int = FFERRTAG!(0xF8, b'4', b'2', b'9');
4850
pub const AVERROR_HTTP_OTHER_4XX: c_int = FFERRTAG!(0xF8, b'4', b'X', b'X');
4951
pub const AVERROR_HTTP_SERVER_ERROR: c_int = FFERRTAG!(0xF8, b'5', b'X', b'X');
5052

src/avutil/pixfmt.rs

Lines changed: 54 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ AV_PIX_FMT_NE!(AV_PIX_FMT_0BGR32, AV_PIX_FMT_0BGR, AV_PIX_FMT_RGB0);
2020
AV_PIX_FMT_NE!(AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY9BE, AV_PIX_FMT_GRAY9LE);
2121
AV_PIX_FMT_NE!(AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY10BE, AV_PIX_FMT_GRAY10LE);
2222
AV_PIX_FMT_NE!(AV_PIX_FMT_GRAY12, AV_PIX_FMT_GRAY12BE, AV_PIX_FMT_GRAY12LE);
23+
AV_PIX_FMT_NE!(AV_PIX_FMT_GRAY14, AV_PIX_FMT_GRAY14BE, AV_PIX_FMT_GRAY14LE);
2324
AV_PIX_FMT_NE!(AV_PIX_FMT_GRAY16, AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_GRAY16LE);
25+
#[cfg(feature = "ffmpeg8")]
26+
AV_PIX_FMT_NE!(AV_PIX_FMT_GRAY32, AV_PIX_FMT_GRAY32BE, AV_PIX_FMT_GRAY32LE);
2427
AV_PIX_FMT_NE!(AV_PIX_FMT_YA16, AV_PIX_FMT_YA16BE, AV_PIX_FMT_YA16LE);
2528
AV_PIX_FMT_NE!(AV_PIX_FMT_RGB48, AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGB48LE);
2629
AV_PIX_FMT_NE!(AV_PIX_FMT_RGB565, AV_PIX_FMT_RGB565BE, AV_PIX_FMT_RGB565LE);
@@ -50,6 +53,10 @@ AV_PIX_FMT_NE!(AV_PIX_FMT_YUV444P14, AV_PIX_FMT_YUV444P14BE, AV_PIX_FMT_YUV444P1
5053
AV_PIX_FMT_NE!(AV_PIX_FMT_YUV420P16, AV_PIX_FMT_YUV420P16BE, AV_PIX_FMT_YUV420P16LE);
5154
AV_PIX_FMT_NE!(AV_PIX_FMT_YUV422P16, AV_PIX_FMT_YUV422P16BE, AV_PIX_FMT_YUV422P16LE);
5255
AV_PIX_FMT_NE!(AV_PIX_FMT_YUV444P16, AV_PIX_FMT_YUV444P16BE, AV_PIX_FMT_YUV444P16LE);
56+
#[cfg(feature = "ffmpeg8")]
57+
AV_PIX_FMT_NE!(AV_PIX_FMT_YUV444P10MSB, AV_PIX_FMT_YUV444P10MSBBE, AV_PIX_FMT_YUV444P10MSBLE);
58+
#[cfg(feature = "ffmpeg8")]
59+
AV_PIX_FMT_NE!(AV_PIX_FMT_YUV444P12MSB, AV_PIX_FMT_YUV444P12MSBBE, AV_PIX_FMT_YUV444P12MSBLE);
5360

5461
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP9BE , AV_PIX_FMT_GBRP9LE);
5562
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP10BE, AV_PIX_FMT_GBRP10LE);
@@ -58,26 +65,44 @@ AV_PIX_FMT_NE!(AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP14BE, AV_PIX_FMT_GBRP14LE);
5865
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRP16, AV_PIX_FMT_GBRP16BE, AV_PIX_FMT_GBRP16LE);
5966
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRAP10, AV_PIX_FMT_GBRAP10BE, AV_PIX_FMT_GBRAP10LE);
6067
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRAP12, AV_PIX_FMT_GBRAP12BE, AV_PIX_FMT_GBRAP12LE);
61-
#[cfg(feature = "ffmpeg7")]
68+
#[cfg(feature = "ffmpeg6_1")]
6269
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRAP14, AV_PIX_FMT_GBRAP14BE, AV_PIX_FMT_GBRAP14LE);
6370
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRAP16, AV_PIX_FMT_GBRAP16BE, AV_PIX_FMT_GBRAP16LE);
71+
#[cfg(feature = "ffmpeg8")]
72+
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRAP32, AV_PIX_FMT_GBRAP32BE, AV_PIX_FMT_GBRAP32LE);
73+
#[cfg(feature = "ffmpeg8")]
74+
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRP10MSB, AV_PIX_FMT_GBRP10MSBBE, AV_PIX_FMT_GBRP10MSBLE);
75+
#[cfg(feature = "ffmpeg8")]
76+
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRP12MSB, AV_PIX_FMT_GBRP12MSBBE, AV_PIX_FMT_GBRP12MSBLE);
6477

6578
AV_PIX_FMT_NE!(AV_PIX_FMT_BAYER_BGGR16, AV_PIX_FMT_BAYER_BGGR16BE, AV_PIX_FMT_BAYER_BGGR16LE);
6679
AV_PIX_FMT_NE!(AV_PIX_FMT_BAYER_RGGB16, AV_PIX_FMT_BAYER_RGGB16BE, AV_PIX_FMT_BAYER_RGGB16LE);
6780
AV_PIX_FMT_NE!(AV_PIX_FMT_BAYER_GBRG16, AV_PIX_FMT_BAYER_GBRG16BE, AV_PIX_FMT_BAYER_GBRG16LE);
6881
AV_PIX_FMT_NE!(AV_PIX_FMT_BAYER_GRBG16, AV_PIX_FMT_BAYER_GRBG16BE, AV_PIX_FMT_BAYER_GRBG16LE);
6982

83+
#[cfg(feature = "ffmpeg8")]
84+
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRPF16, AV_PIX_FMT_GBRPF16BE, AV_PIX_FMT_GBRPF16LE);
85+
#[cfg(feature = "ffmpeg8")]
86+
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRAPF16, AV_PIX_FMT_GBRAPF16BE, AV_PIX_FMT_GBRAPF16LE);
7087
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRPF32BE, AV_PIX_FMT_GBRPF32LE);
7188
AV_PIX_FMT_NE!(AV_PIX_FMT_GBRAPF32, AV_PIX_FMT_GBRAPF32BE, AV_PIX_FMT_GBRAPF32LE);
7289

90+
#[cfg(feature = "ffmpeg8")]
91+
AV_PIX_FMT_NE!(AV_PIX_FMT_GRAYF16, AV_PIX_FMT_GRAYF16BE, AV_PIX_FMT_GRAYF16LE);
7392
AV_PIX_FMT_NE!(AV_PIX_FMT_GRAYF32, AV_PIX_FMT_GRAYF32BE, AV_PIX_FMT_GRAYF32LE);
93+
#[cfg(feature = "ffmpeg8")]
94+
AV_PIX_FMT_NE!(AV_PIX_FMT_YAF16, AV_PIX_FMT_YAF16BE, AV_PIX_FMT_YAF16LE);
95+
#[cfg(feature = "ffmpeg8")]
96+
AV_PIX_FMT_NE!(AV_PIX_FMT_YAF32, AV_PIX_FMT_YAF32BE, AV_PIX_FMT_YAF32LE);
7497

7598
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA420P9BE , AV_PIX_FMT_YUVA420P9LE);
7699
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA422P9BE , AV_PIX_FMT_YUVA422P9LE);
77100
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_YUVA444P9BE , AV_PIX_FMT_YUVA444P9LE);
78101
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA420P10BE, AV_PIX_FMT_YUVA420P10LE);
79102
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA422P10BE, AV_PIX_FMT_YUVA422P10LE);
80103
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA444P10, AV_PIX_FMT_YUVA444P10BE, AV_PIX_FMT_YUVA444P10LE);
104+
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA422P12, AV_PIX_FMT_YUVA422P12BE, AV_PIX_FMT_YUVA422P12LE);
105+
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA444P12, AV_PIX_FMT_YUVA444P12BE, AV_PIX_FMT_YUVA444P12LE);
81106
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA420P16, AV_PIX_FMT_YUVA420P16BE, AV_PIX_FMT_YUVA420P16LE);
82107
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA422P16, AV_PIX_FMT_YUVA422P16BE, AV_PIX_FMT_YUVA422P16LE);
83108
AV_PIX_FMT_NE!(AV_PIX_FMT_YUVA444P16, AV_PIX_FMT_YUVA444P16BE, AV_PIX_FMT_YUVA444P16LE);
@@ -86,40 +111,52 @@ AV_PIX_FMT_NE!(AV_PIX_FMT_XYZ12, AV_PIX_FMT_XYZ12BE, AV_PIX_FMT_XYZ12LE);
86111
AV_PIX_FMT_NE!(AV_PIX_FMT_NV20, AV_PIX_FMT_NV20BE, AV_PIX_FMT_NV20LE);
87112
AV_PIX_FMT_NE!(AV_PIX_FMT_AYUV64, AV_PIX_FMT_AYUV64BE, AV_PIX_FMT_AYUV64LE);
88113
AV_PIX_FMT_NE!(AV_PIX_FMT_P010, AV_PIX_FMT_P010BE, AV_PIX_FMT_P010LE);
89-
#[cfg(any(feature = "ffmpeg6", feature = "ffmpeg7"))]
114+
#[cfg(feature = "ffmpeg6")]
90115
AV_PIX_FMT_NE!(AV_PIX_FMT_P012, AV_PIX_FMT_P012BE, AV_PIX_FMT_P012LE);
91116
AV_PIX_FMT_NE!(AV_PIX_FMT_P016, AV_PIX_FMT_P016BE, AV_PIX_FMT_P016LE);
92117

93-
#[cfg(any(feature = "ffmpeg5", feature = "ffmpeg6", feature = "ffmpeg7"))]
118+
#[cfg(feature = "ffmpeg5")]
94119
AV_PIX_FMT_NE!(AV_PIX_FMT_Y210, AV_PIX_FMT_Y210BE, AV_PIX_FMT_Y210LE);
95-
#[cfg(any(feature = "ffmpeg6", feature = "ffmpeg7"))]
120+
#[cfg(feature = "ffmpeg6")]
96121
AV_PIX_FMT_NE!(AV_PIX_FMT_Y212, AV_PIX_FMT_Y212BE, AV_PIX_FMT_Y212LE);
97-
#[cfg(any(feature = "ffmpeg6", feature = "ffmpeg7"))]
122+
#[cfg(feature = "ffmpeg8")]
123+
AV_PIX_FMT_NE!(AV_PIX_FMT_Y216, AV_PIX_FMT_Y216BE, AV_PIX_FMT_Y216LE);
124+
#[cfg(feature = "ffmpeg6")]
98125
AV_PIX_FMT_NE!(AV_PIX_FMT_XV30, AV_PIX_FMT_XV30BE, AV_PIX_FMT_XV30LE);
99-
#[cfg(any(feature = "ffmpeg6", feature = "ffmpeg7"))]
126+
#[cfg(feature = "ffmpeg6")]
100127
AV_PIX_FMT_NE!(AV_PIX_FMT_XV36, AV_PIX_FMT_XV36BE, AV_PIX_FMT_XV36LE);
101-
#[cfg(any(feature = "ffmpeg5", feature = "ffmpeg6", feature = "ffmpeg7"))]
128+
#[cfg(feature = "ffmpeg8")]
129+
AV_PIX_FMT_NE!(AV_PIX_FMT_XV48, AV_PIX_FMT_XV48BE, AV_PIX_FMT_XV48LE);
130+
#[cfg(feature = "ffmpeg8")]
131+
AV_PIX_FMT_NE!(AV_PIX_FMT_V30X, AV_PIX_FMT_V30XBE, AV_PIX_FMT_V30XLE);
132+
#[cfg(feature = "ffmpeg5")]
102133
AV_PIX_FMT_NE!(AV_PIX_FMT_X2RGB10, AV_PIX_FMT_X2RGB10BE, AV_PIX_FMT_X2RGB10LE);
103-
#[cfg(any(feature = "ffmpeg5", feature = "ffmpeg6", feature = "ffmpeg7"))]
134+
#[cfg(feature = "ffmpeg5")]
104135
AV_PIX_FMT_NE!(AV_PIX_FMT_X2BGR10, AV_PIX_FMT_X2BGR10BE, AV_PIX_FMT_X2BGR10LE);
105136

106-
#[cfg(any(feature = "ffmpeg5", feature = "ffmpeg6", feature = "ffmpeg7"))]
137+
#[cfg(feature = "ffmpeg5")]
107138
AV_PIX_FMT_NE!(AV_PIX_FMT_P210, AV_PIX_FMT_P210BE, AV_PIX_FMT_P210LE);
108-
#[cfg(any(feature = "ffmpeg5", feature = "ffmpeg6", feature = "ffmpeg7"))]
139+
#[cfg(feature = "ffmpeg5")]
109140
AV_PIX_FMT_NE!(AV_PIX_FMT_P410, AV_PIX_FMT_P410BE, AV_PIX_FMT_P410LE);
110-
#[cfg(feature = "ffmpeg7")]
141+
#[cfg(feature = "ffmpeg6_1")]
111142
AV_PIX_FMT_NE!(AV_PIX_FMT_P212, AV_PIX_FMT_P212BE, AV_PIX_FMT_P212LE);
112-
#[cfg(feature = "ffmpeg7")]
143+
#[cfg(feature = "ffmpeg6_1")]
113144
AV_PIX_FMT_NE!(AV_PIX_FMT_P412, AV_PIX_FMT_P412BE, AV_PIX_FMT_P412LE);
114-
#[cfg(any(feature = "ffmpeg5", feature = "ffmpeg6", feature = "ffmpeg7"))]
145+
#[cfg(feature = "ffmpeg5")]
115146
AV_PIX_FMT_NE!(AV_PIX_FMT_P216, AV_PIX_FMT_P216BE, AV_PIX_FMT_P216LE);
116-
#[cfg(any(feature = "ffmpeg5", feature = "ffmpeg6", feature = "ffmpeg7"))]
147+
#[cfg(feature = "ffmpeg5")]
117148
AV_PIX_FMT_NE!(AV_PIX_FMT_P416, AV_PIX_FMT_P416BE, AV_PIX_FMT_P416LE);
118149

119-
#[cfg(any(feature = "ffmpeg6", feature = "ffmpeg7"))]
150+
#[cfg(feature = "ffmpeg8")]
151+
AV_PIX_FMT_NE!(AV_PIX_FMT_RGBF16, AV_PIX_FMT_RGBF16BE, AV_PIX_FMT_RGBF16LE);
152+
#[cfg(feature = "ffmpeg6")]
120153
AV_PIX_FMT_NE!(AV_PIX_FMT_RGBAF16, AV_PIX_FMT_RGBAF16BE, AV_PIX_FMT_RGBAF16LE);
121154

122-
#[cfg(any(feature = "ffmpeg6", feature = "ffmpeg7"))]
155+
#[cfg(feature = "ffmpeg6")]
123156
AV_PIX_FMT_NE!(AV_PIX_FMT_RGBF32, AV_PIX_FMT_RGBF32BE, AV_PIX_FMT_RGBF32LE);
124-
#[cfg(any(feature = "ffmpeg6", feature = "ffmpeg7"))]
157+
#[cfg(feature = "ffmpeg6")]
125158
AV_PIX_FMT_NE!(AV_PIX_FMT_RGBAF32, AV_PIX_FMT_RGBAF32BE, AV_PIX_FMT_RGBAF32LE);
159+
#[cfg(feature = "ffmpeg8")]
160+
AV_PIX_FMT_NE!(AV_PIX_FMT_RGB96, AV_PIX_FMT_RGB96BE, AV_PIX_FMT_RGB96LE);
161+
#[cfg(feature = "ffmpeg8")]
162+
AV_PIX_FMT_NE!(AV_PIX_FMT_RGBA128, AV_PIX_FMT_RGBA128BE, AV_PIX_FMT_RGBA128LE);

0 commit comments

Comments
 (0)