FFmpeg 7.1 support (#74)
* Add new build-lib features * Update CI to use 7.1 jrottenberg/ffmpeg does not have 7.1 yet * Add libavcodec version for 7.1 * Add FF_API flags for 7.1 * Update crate versions, bump MSRV to 1.65 * Add new audio channel masks * Add new AVColorSpace variants * Add new AVFrameSideDataType variants * Add new AVCodecID variants * Add new AVPacketSideDataType variants
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "ffmpeg-sys-the-third"
|
||||
version = "2.0.0+ffmpeg-7.0"
|
||||
version = "2.1.0+ffmpeg-7.1"
|
||||
links = "ffmpeg"
|
||||
edition = "2021"
|
||||
|
||||
@ -19,7 +19,7 @@ keywords = ["audio", "video"]
|
||||
categories = ["multimedia", "external-ffi-bindings"]
|
||||
|
||||
# When changing MSRV: Also update build.yml and README.md
|
||||
rust-version = "1.61.0"
|
||||
rust-version = "1.65.0"
|
||||
|
||||
[lib]
|
||||
# Disable doctests as a workaround for https://github.com/rust-lang/rust-bindgen/issues/1313
|
||||
@ -98,35 +98,48 @@ build-lib-vmaf = ["build"]
|
||||
# encoders/decoders
|
||||
build-lib-aacplus = ["build"]
|
||||
build-lib-celt = ["build"]
|
||||
build-lib-codec2 = ["build"]
|
||||
build-lib-dav1d = ["build"]
|
||||
build-lib-davs2 = ["build"]
|
||||
build-lib-dcadec = ["build"]
|
||||
build-lib-faac = ["build"]
|
||||
build-lib-fdk-aac = ["build"]
|
||||
build-lib-gsm = ["build"]
|
||||
build-lib-ilbc = ["build"]
|
||||
build-lib-jxl = ["build"]
|
||||
build-lib-kvazaar = ["build"]
|
||||
build-lib-lc3 = ["build"]
|
||||
build-lib-lcevc-dec = ["build"]
|
||||
build-lib-mp3lame = ["build"]
|
||||
build-lib-opencore-amrnb = ["build"]
|
||||
build-lib-opencore-amrwb = ["build"]
|
||||
build-lib-openh264 = ["build"]
|
||||
build-lib-openjpeg = ["build"]
|
||||
build-lib-opus = ["build"]
|
||||
build-lib-rav1e = ["build"]
|
||||
build-lib-schroedinger = ["build"]
|
||||
build-lib-shine = ["build"]
|
||||
build-lib-snappy = ["build"]
|
||||
build-lib-speex = ["build"]
|
||||
build-lib-stagefright-h264 = ["build"]
|
||||
build-lib-svtav1 = ["build"]
|
||||
build-lib-theora = ["build"]
|
||||
build-lib-twolame = ["build"]
|
||||
build-lib-uavs3d = ["build"]
|
||||
build-lib-utvideo = ["build"]
|
||||
build-lib-vo-aacenc = ["build"]
|
||||
build-lib-vo-amrwbenc = ["build"]
|
||||
build-lib-vorbis = ["build"]
|
||||
build-lib-vpx = ["build"]
|
||||
build-lib-vvenc = ["build"]
|
||||
build-lib-wavpack = ["build"]
|
||||
build-lib-webp = ["build"]
|
||||
build-lib-x264 = ["build"]
|
||||
build-lib-x265 = ["build"]
|
||||
build-lib-xeve = ["build"]
|
||||
build-lib-xevd = ["build"]
|
||||
build-lib-xavs = ["build"]
|
||||
build-lib-xavs2 = ["build"]
|
||||
build-lib-avs = ["build"]
|
||||
build-lib-xvid = ["build"]
|
||||
|
||||
|
@ -121,6 +121,9 @@ static AVUTIL_FEATURES: &[AVFeature] = &[
|
||||
AVFeature::new("PALETTE_HAS_CHANGED"),
|
||||
AVFeature::new("VULKAN_CONTIGUOUS_MEMORY"),
|
||||
AVFeature::new("H274_FILM_GRAIN_VCS"),
|
||||
AVFeature::new("MOD_UINTP2"),
|
||||
AVFeature::new("RISCV_FD_ZBA"),
|
||||
AVFeature::new("VULKAN_FIXED_QUEUES"),
|
||||
];
|
||||
|
||||
static AVCODEC_FEATURES: &[AVFeature] = &[
|
||||
@ -209,6 +212,7 @@ static AVCODEC_FEATURES: &[AVFeature] = &[
|
||||
AVFeature::new("AVCODEC_CLOSE"),
|
||||
AVFeature::new("BUFFER_MIN_SIZE"),
|
||||
AVFeature::new("VDPAU_ALLOC_GET_SET"),
|
||||
AVFeature::new("QUALITY_FACTOR"),
|
||||
];
|
||||
|
||||
static AVFORMAT_FEATURES: &[AVFeature] = &[
|
||||
@ -231,6 +235,7 @@ static AVFORMAT_FEATURES: &[AVFeature] = &[
|
||||
AVFeature::new("ALLOW_FLUSH"),
|
||||
AVFeature::new("AVSTREAM_SIDE_DATA"),
|
||||
AVFeature::new("GET_DUR_ESTIMATE_METHOD"),
|
||||
AVFeature::new("INTERNAL_TIMING"),
|
||||
];
|
||||
|
||||
static AVDEVICE_FEATURES: &[AVFeature] = &[
|
||||
@ -484,13 +489,18 @@ static EXTERNAL_BUILD_LIBS: &[(&str, &str)] = &[
|
||||
// Encoders/decoders
|
||||
("AACPLUS", "libaacplus"),
|
||||
("CELT", "libcelt"),
|
||||
("DCADEC", "libdcadec"),
|
||||
("CODEC2", "libcodec2"),
|
||||
("DAV1D", "libdav1d"),
|
||||
("DAVS2", "libdavs2"),
|
||||
("DCADEC", "libdcadec"),
|
||||
("FAAC", "libfaac"),
|
||||
("FDK_AAC", "libfdk-aac"),
|
||||
("GSM", "libgsm"),
|
||||
("ILBC", "libilbc"),
|
||||
("VAZAAR", "libvazaar"),
|
||||
("JXL", "libjxl"),
|
||||
("KVAZAAR", "libkvazaar"),
|
||||
("LC3", "liblc3"),
|
||||
("LCEVC_DEC", "liblcevc-dec"),
|
||||
("MP3LAME", "libmp3lame"),
|
||||
("OPENCORE_AMRNB", "libopencore-amrnb"),
|
||||
("OPENCORE_AMRWB", "libopencore-amrwb"),
|
||||
@ -498,22 +508,30 @@ static EXTERNAL_BUILD_LIBS: &[(&str, &str)] = &[
|
||||
("OPENH265", "libopenh265"),
|
||||
("OPENJPEG", "libopenjpeg"),
|
||||
("OPUS", "libopus"),
|
||||
("RAV1E", "librav1e"),
|
||||
("SCHROEDINGER", "libschroedinger"),
|
||||
("SHINE", "libshine"),
|
||||
("SNAPPY", "libsnappy"),
|
||||
("SPEEX", "libspeex"),
|
||||
("STAGEFRIGHT_H264", "libstagefright-h264"),
|
||||
("SVTAV1", "libsvtav1"),
|
||||
("THEORA", "libtheora"),
|
||||
("TWOLAME", "libtwolame"),
|
||||
("UAVS3D", "libuavs3d"),
|
||||
("UTVIDEO", "libutvideo"),
|
||||
("VO_AACENC", "libvo-aacenc"),
|
||||
("VO_AMRWBENC", "libvo-amrwbenc"),
|
||||
("VORBIS", "libvorbis"),
|
||||
("VPX", "libvpx"),
|
||||
("VVENC", "libvvenc"),
|
||||
("WAVPACK", "libwavpack"),
|
||||
("WEBP", "libwebp"),
|
||||
("X264", "libx264"),
|
||||
("X265", "libx265"),
|
||||
("XEVE", "libxeve"),
|
||||
("XEVD", "libxevd"),
|
||||
("XAVS", "libxavs"),
|
||||
("XAVS2", "libxavs2"),
|
||||
("AVS", "libavs"),
|
||||
("XVID", "libxvid"),
|
||||
// Protocols
|
||||
@ -837,6 +855,7 @@ fn check_features(include_paths: &[PathBuf]) {
|
||||
("ffmpeg_6_0", 60, 3),
|
||||
("ffmpeg_6_1", 60, 31),
|
||||
("ffmpeg_7_0", 61, 3),
|
||||
("ffmpeg_7_1", 61, 19),
|
||||
];
|
||||
|
||||
let lavc_version = *versions
|
||||
|
@ -137,6 +137,15 @@ pub const AV_CH_BOTTOM_FRONT_CENTER: u64 = 1 << (AV_CHAN_BOTTOM_FRONT_CENTER as
|
||||
pub const AV_CH_BOTTOM_FRONT_LEFT: u64 = 1 << (AV_CHAN_BOTTOM_FRONT_LEFT as i32);
|
||||
pub const AV_CH_BOTTOM_FRONT_RIGHT: u64 = 1 << (AV_CHAN_BOTTOM_FRONT_RIGHT as i32);
|
||||
|
||||
#[cfg(feature = "ffmpeg_7_1")]
|
||||
pub const AV_CH_SIDE_SURROUND_LEFT: u64 = 1 << (AV_CHAN_SIDE_SURROUND_LEFT as i32);
|
||||
#[cfg(feature = "ffmpeg_7_1")]
|
||||
pub const AV_CH_SIDE_SURROUND_RIGHT: u64 = 1 << (AV_CHAN_SIDE_SURROUND_RIGHT as i32);
|
||||
#[cfg(feature = "ffmpeg_7_1")]
|
||||
pub const AV_CH_TOP_SURROUND_LEFT: u64 = 1 << (AV_CHAN_TOP_SURROUND_LEFT as i32);
|
||||
#[cfg(feature = "ffmpeg_7_1")]
|
||||
pub const AV_CH_TOP_SURROUND_RIGHT: u64 = 1 << (AV_CHAN_TOP_SURROUND_RIGHT as i32);
|
||||
|
||||
// Audio channel layouts
|
||||
pub const AV_CH_LAYOUT_MONO: u64 = AV_CH_FRONT_CENTER;
|
||||
pub const AV_CH_LAYOUT_STEREO: u64 = AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT;
|
||||
|
Reference in New Issue
Block a user