From 0d44946471a69b1061e853d468e262029e8eafda Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Sat, 1 Aug 2020 20:15:30 +0800 Subject: [PATCH] Update version_check_info to support FFmpeg 3.0 through 4.3 lavc version for FFmpeg 3.1: 57.107; lavc version for FFmpeg 4.3: 58.91. --- sys/build.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sys/build.rs b/sys/build.rs index 161bfd7..0ec2e87 100644 --- a/sys/build.rs +++ b/sys/build.rs @@ -11,8 +11,10 @@ use std::path::{Path, PathBuf}; use std::process::Command; use std::str; +use bindgen::callbacks::{ + EnumVariantCustomBehavior, EnumVariantValue, IntKind, MacroParsingBehavior, ParseCallbacks, +}; use regex::Regex; -use bindgen::callbacks::{EnumVariantCustomBehavior, EnumVariantValue, IntKind, ParseCallbacks, MacroParsingBehavior}; #[derive(Debug)] struct Library { @@ -52,11 +54,13 @@ impl ParseCallbacks for Callbacks { let codec_flag = Regex::new(r"^AV_CODEC_FLAG").unwrap(); let error_max_size = Regex::new(r"^AV_ERROR_MAX_STRING_SIZE").unwrap(); - if value >= i64::min_value() as i64 && value <= i64::max_value() as i64 + if value >= i64::min_value() as i64 + && value <= i64::max_value() as i64 && ch_layout.is_match(_name) { Some(IntKind::ULongLong) - } else if value >= i32::min_value() as i64 && value <= i32::max_value() as i64 + } else if value >= i32::min_value() as i64 + && value <= i32::max_value() as i64 && (codec_cap.is_match(_name) || codec_flag.is_match(_name)) { Some(IntKind::UInt) @@ -399,7 +403,7 @@ fn check_features( )); } - let version_check_info = [("avcodec", 56, 60, 0, 80)]; + let version_check_info = [("avcodec", 56, 60, 0, 108)]; for &(lib, begin_version_major, end_version_major, begin_version_minor, end_version_minor) in version_check_info.iter() {