Skip to content

Commit bf79dd0

Browse files
committed
FFmpeg 8.1 support
1 parent 118f7e7 commit bf79dd0

File tree

7 files changed

+91
-4
lines changed

7 files changed

+91
-4
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ jobs:
114114
strategy:
115115
fail-fast: false
116116
matrix:
117-
ffmpeg_version: ["6.1", "7.0", "7.1", "8.0"]
117+
ffmpeg_version: ["6.1", "7.0", "7.1", "8.0", "8.1"]
118118
env:
119119
FFMPEG_DIR: /home/runner/work/rust-ffmpeg/rust-ffmpeg/ffmpeg-${{ matrix.ffmpeg_version }}-linux-clang-default
120120
steps:

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ffmpeg-next"
3-
version = "8.0.0"
3+
version = "8.1.0"
44
build = "build.rs"
55

66
authors = ["meh. <[email protected]>", "Zhiming Wang <[email protected]>"]
@@ -107,12 +107,12 @@ rpi = []
107107

108108
[dependencies]
109109
libc = "0.2"
110-
bitflags = "2.9"
110+
bitflags = "2.11"
111111

112112
[dependencies.image]
113113
version = "0.25"
114114
optional = true
115115

116116
[dependencies.ffmpeg-sys-next]
117-
version = "8.0.0"
117+
version = "8.1.0"
118118
default-features = false

src/codec/id.rs

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,27 @@ pub enum Id {
691691
G728,
692692
#[cfg(feature = "ffmpeg_8_0")]
693693
IVTV_VBI,
694+
695+
#[cfg(feature = "ffmpeg_8_1")]
696+
JPEGXS,
697+
#[cfg(feature = "ffmpeg_8_1")]
698+
ADPCM_IMA_HVQM4,
699+
#[cfg(feature = "ffmpeg_8_1")]
700+
ADPCM_IMA_PDA,
701+
#[cfg(feature = "ffmpeg_8_1")]
702+
ADPCM_N64,
703+
#[cfg(feature = "ffmpeg_8_1")]
704+
ADPCM_IMA_HVQM2,
705+
#[cfg(feature = "ffmpeg_8_1")]
706+
ADPCM_IMA_MAGIX,
707+
#[cfg(feature = "ffmpeg_8_1")]
708+
ADPCM_PSXC,
709+
#[cfg(feature = "ffmpeg_8_1")]
710+
ADPCM_CIRCUS,
711+
#[cfg(feature = "ffmpeg_8_1")]
712+
ADPCM_IMA_ESCAPE,
713+
#[cfg(feature = "ffmpeg_8_1")]
714+
AHX,
694715
}
695716

696717
impl Id {
@@ -1389,6 +1410,27 @@ impl From<AVCodecID> for Id {
13891410
AV_CODEC_ID_G728 => Id::G728,
13901411
#[cfg(feature = "ffmpeg_8_0")]
13911412
AV_CODEC_ID_IVTV_VBI => Id::IVTV_VBI,
1413+
1414+
#[cfg(feature = "ffmpeg_8_1")]
1415+
AV_CODEC_ID_JPEGXS => Id::JPEGXS,
1416+
#[cfg(feature = "ffmpeg_8_1")]
1417+
AV_CODEC_ID_ADPCM_IMA_HVQM4 => Id::ADPCM_IMA_HVQM4,
1418+
#[cfg(feature = "ffmpeg_8_1")]
1419+
AV_CODEC_ID_ADPCM_IMA_PDA => Id::ADPCM_IMA_PDA,
1420+
#[cfg(feature = "ffmpeg_8_1")]
1421+
AV_CODEC_ID_ADPCM_N64 => Id::ADPCM_N64,
1422+
#[cfg(feature = "ffmpeg_8_1")]
1423+
AV_CODEC_ID_ADPCM_IMA_HVQM2 => Id::ADPCM_IMA_HVQM2,
1424+
#[cfg(feature = "ffmpeg_8_1")]
1425+
AV_CODEC_ID_ADPCM_IMA_MAGIX => Id::ADPCM_IMA_MAGIX,
1426+
#[cfg(feature = "ffmpeg_8_1")]
1427+
AV_CODEC_ID_ADPCM_PSXC => Id::ADPCM_PSXC,
1428+
#[cfg(feature = "ffmpeg_8_1")]
1429+
AV_CODEC_ID_ADPCM_CIRCUS => Id::ADPCM_CIRCUS,
1430+
#[cfg(feature = "ffmpeg_8_1")]
1431+
AV_CODEC_ID_ADPCM_IMA_ESCAPE => Id::ADPCM_IMA_ESCAPE,
1432+
#[cfg(feature = "ffmpeg_8_1")]
1433+
AV_CODEC_ID_AHX => Id::AHX,
13921434
}
13931435
}
13941436
}
@@ -2079,6 +2121,27 @@ impl From<Id> for AVCodecID {
20792121
Id::G728 => AV_CODEC_ID_G728,
20802122
#[cfg(feature = "ffmpeg_8_0")]
20812123
Id::IVTV_VBI => AV_CODEC_ID_IVTV_VBI,
2124+
2125+
#[cfg(feature = "ffmpeg_8_1")]
2126+
Id::JPEGXS => AV_CODEC_ID_JPEGXS,
2127+
#[cfg(feature = "ffmpeg_8_1")]
2128+
Id::ADPCM_IMA_HVQM4 => AV_CODEC_ID_ADPCM_IMA_HVQM4,
2129+
#[cfg(feature = "ffmpeg_8_1")]
2130+
Id::ADPCM_IMA_PDA => AV_CODEC_ID_ADPCM_IMA_PDA,
2131+
#[cfg(feature = "ffmpeg_8_1")]
2132+
Id::ADPCM_N64 => AV_CODEC_ID_ADPCM_N64,
2133+
#[cfg(feature = "ffmpeg_8_1")]
2134+
Id::ADPCM_IMA_HVQM2 => AV_CODEC_ID_ADPCM_IMA_HVQM2,
2135+
#[cfg(feature = "ffmpeg_8_1")]
2136+
Id::ADPCM_IMA_MAGIX => AV_CODEC_ID_ADPCM_IMA_MAGIX,
2137+
#[cfg(feature = "ffmpeg_8_1")]
2138+
Id::ADPCM_PSXC => AV_CODEC_ID_ADPCM_PSXC,
2139+
#[cfg(feature = "ffmpeg_8_1")]
2140+
Id::ADPCM_CIRCUS => AV_CODEC_ID_ADPCM_CIRCUS,
2141+
#[cfg(feature = "ffmpeg_8_1")]
2142+
Id::ADPCM_IMA_ESCAPE => AV_CODEC_ID_ADPCM_IMA_ESCAPE,
2143+
#[cfg(feature = "ffmpeg_8_1")]
2144+
Id::AHX => AV_CODEC_ID_AHX,
20822145
}
20832146
}
20842147
}

src/codec/packet/side_data.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ pub enum Type {
7373
THREE_D_REFERENCE_DISPLAYS,
7474
#[cfg(feature = "ffmpeg_8_0")]
7575
RTCP_SR,
76+
77+
#[cfg(feature = "ffmpeg_8_1")]
78+
EXIF,
7679
}
7780

7881
impl From<AVPacketSideDataType> for Type {
@@ -144,6 +147,9 @@ impl From<AVPacketSideDataType> for Type {
144147
AV_PKT_DATA_3D_REFERENCE_DISPLAYS => Type::THREE_D_REFERENCE_DISPLAYS,
145148
#[cfg(feature = "ffmpeg_8_0")]
146149
AV_PKT_DATA_RTCP_SR => Type::RTCP_SR,
150+
151+
#[cfg(feature = "ffmpeg_8_1")]
152+
AV_PKT_DATA_EXIF => Type::EXIF,
147153
}
148154
}
149155
}
@@ -217,6 +223,9 @@ impl From<Type> for AVPacketSideDataType {
217223
Type::THREE_D_REFERENCE_DISPLAYS => AV_PKT_DATA_3D_REFERENCE_DISPLAYS,
218224
#[cfg(feature = "ffmpeg_8_0")]
219225
Type::RTCP_SR => AV_PKT_DATA_RTCP_SR,
226+
227+
#[cfg(feature = "ffmpeg_8_1")]
228+
Type::EXIF => AV_PKT_DATA_EXIF,
220229
}
221230
}
222231
}

src/util/color/primaries.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ impl From<AVColorPrimaries> for Primaries {
6666
AVCOL_PRI_JEDEC_P22 => Primaries::JEDEC_P22,
6767
#[cfg(feature = "ffmpeg_4_3")]
6868
AVCOL_PRI_EBU3213 => Primaries::EBU3213,
69+
70+
#[cfg(feature = "ffmpeg_8_1")]
71+
AVCOL_PRI_EXT_BASE | AVCOL_PRI_EXT_NB => Primaries::Reserved0,
6972
}
7073
}
7174
}

src/util/color/transfer_characteristic.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ impl From<AVColorTransferCharacteristic> for TransferCharacteristic {
6363
AVCOL_TRC_SMPTE2084 => TransferCharacteristic::SMPTE2084,
6464
AVCOL_TRC_SMPTE428 => TransferCharacteristic::SMPTE428,
6565
AVCOL_TRC_ARIB_STD_B67 => TransferCharacteristic::ARIB_STD_B67,
66+
67+
#[cfg(feature = "ffmpeg_8_1")]
68+
AVCOL_TRC_EXT_BASE | AVCOL_TRC_EXT_NB => TransferCharacteristic::Reserved0,
6669
}
6770
}
6871
}

src/util/frame/side_data.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ pub enum Type {
7272

7373
#[cfg(feature = "ffmpeg_8_0")]
7474
THREE_D_REFERENCE_DISPLAYS,
75+
76+
#[cfg(feature = "ffmpeg_8_1")]
77+
EXIF,
7578
}
7679

7780
impl Type {
@@ -148,6 +151,9 @@ impl From<AVFrameSideDataType> for Type {
148151

149152
#[cfg(feature = "ffmpeg_8_0")]
150153
AV_FRAME_DATA_3D_REFERENCE_DISPLAYS => Type::THREE_D_REFERENCE_DISPLAYS,
154+
155+
#[cfg(feature = "ffmpeg_8_1")]
156+
AV_FRAME_DATA_EXIF => Type::EXIF,
151157
}
152158
}
153159
}
@@ -217,6 +223,9 @@ impl From<Type> for AVFrameSideDataType {
217223

218224
#[cfg(feature = "ffmpeg_8_0")]
219225
Type::THREE_D_REFERENCE_DISPLAYS => AV_FRAME_DATA_3D_REFERENCE_DISPLAYS,
226+
227+
#[cfg(feature = "ffmpeg_8_1")]
228+
Type::EXIF => AV_FRAME_DATA_EXIF,
220229
}
221230
}
222231
}

0 commit comments

Comments
 (0)