gstreamer-rs/gstreamer-editing-services-sys/tests/abi.rs

1340 lines
37 KiB
Rust
Raw Normal View History

2019-08-05 10:06:30 +00:00
// This file was generated by gir (https://github.com/gtk-rs/gir @ 8f15e55)
2018-10-31 12:34:15 +00:00
// from gir-files (https://github.com/gtk-rs/gir-files @ ???)
// DO NOT EDIT
extern crate gstreamer_editing_services_sys;
extern crate shell_words;
extern crate tempdir;
2019-06-18 10:04:39 +00:00
use gstreamer_editing_services_sys::*;
2018-10-31 12:34:15 +00:00
use std::env;
use std::error::Error;
use std::mem::{align_of, size_of};
2019-06-18 10:04:39 +00:00
use std::path::Path;
2018-10-31 12:34:15 +00:00
use std::process::Command;
use std::str;
static PACKAGES: &[&str] = &["gst-editing-services-1.0"];
#[derive(Clone, Debug)]
struct Compiler {
pub args: Vec<String>,
}
impl Compiler {
pub fn new() -> Result<Compiler, Box<Error>> {
let mut args = get_var("CC", "cc")?;
args.push("-Wno-deprecated-declarations".to_owned());
// For %z support in printf when using MinGW.
args.push("-D__USE_MINGW_ANSI_STDIO".to_owned());
args.extend(get_var("CFLAGS", "")?);
args.extend(get_var("CPPFLAGS", "")?);
args.extend(pkg_config_cflags(PACKAGES)?);
Ok(Compiler { args })
}
pub fn define<'a, V: Into<Option<&'a str>>>(&mut self, var: &str, val: V) {
let arg = match val.into() {
None => format!("-D{}", var),
Some(val) => format!("-D{}={}", var, val),
};
self.args.push(arg);
}
pub fn compile(&self, src: &Path, out: &Path) -> Result<(), Box<Error>> {
let mut cmd = self.to_command();
cmd.arg(src);
cmd.arg("-o");
cmd.arg(out);
let status = cmd.spawn()?.wait()?;
if !status.success() {
2019-06-18 10:04:39 +00:00
return Err(format!("compilation command {:?} failed, {}", &cmd, status).into());
2018-10-31 12:34:15 +00:00
}
Ok(())
}
fn to_command(&self) -> Command {
let mut cmd = Command::new(&self.args[0]);
cmd.args(&self.args[1..]);
cmd
}
}
fn get_var(name: &str, default: &str) -> Result<Vec<String>, Box<Error>> {
match env::var(name) {
Ok(value) => Ok(shell_words::split(&value)?),
Err(env::VarError::NotPresent) => Ok(shell_words::split(default)?),
Err(err) => Err(format!("{} {}", name, err).into()),
}
}
fn pkg_config_cflags(packages: &[&str]) -> Result<Vec<String>, Box<Error>> {
if packages.is_empty() {
return Ok(Vec::new());
}
let mut cmd = Command::new("pkg-config");
cmd.arg("--cflags");
cmd.args(packages);
let out = cmd.output()?;
if !out.status.success() {
2019-06-18 10:04:39 +00:00
return Err(format!("command {:?} returned {}", &cmd, out.status).into());
2018-10-31 12:34:15 +00:00
}
let stdout = str::from_utf8(&out.stdout)?;
Ok(shell_words::split(stdout.trim())?)
}
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
struct Layout {
size: usize,
alignment: usize,
}
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
struct Results {
/// Number of successfully completed tests.
passed: usize,
/// Total number of failed tests (including those that failed to compile).
failed: usize,
/// Number of tests that failed to compile.
failed_to_compile: usize,
}
impl Results {
fn record_passed(&mut self) {
self.passed += 1;
}
fn record_failed(&mut self) {
self.failed += 1;
}
fn record_failed_to_compile(&mut self) {
self.failed += 1;
self.failed_to_compile += 1;
}
fn summary(&self) -> String {
format!(
"{} passed; {} failed (compilation errors: {})",
2019-06-18 10:04:39 +00:00
self.passed, self.failed, self.failed_to_compile
)
2018-10-31 12:34:15 +00:00
}
fn expect_total_success(&self) {
if self.failed == 0 {
println!("OK: {}", self.summary());
} else {
panic!("FAILED: {}", self.summary());
};
}
}
#[test]
fn cross_validate_constants_with_c() {
let tmpdir = tempdir::TempDir::new("abi").expect("temporary directory");
let cc = Compiler::new().expect("configured compiler");
2019-06-18 10:04:39 +00:00
assert_eq!(
"1",
get_c_value(tmpdir.path(), &cc, "1").expect("C constant"),
"failed to obtain correct constant value for 1"
);
2018-10-31 12:34:15 +00:00
2019-06-18 10:04:39 +00:00
let mut results: Results = Default::default();
2018-10-31 12:34:15 +00:00
for (i, &(name, rust_value)) in RUST_CONSTANTS.iter().enumerate() {
match get_c_value(tmpdir.path(), &cc, name) {
Err(e) => {
results.record_failed_to_compile();
eprintln!("{}", e);
2019-06-18 10:04:39 +00:00
}
2018-10-31 12:34:15 +00:00
Ok(ref c_value) => {
if rust_value == c_value {
results.record_passed();
} else {
results.record_failed();
2019-06-18 10:04:39 +00:00
eprintln!(
"Constant value mismatch for {}\nRust: {:?}\nC: {:?}",
name, rust_value, c_value
);
2018-10-31 12:34:15 +00:00
}
}
};
if (i + 1) % 25 == 0 {
println!("constants ... {}", results.summary());
}
}
results.expect_total_success();
}
#[test]
fn cross_validate_layout_with_c() {
let tmpdir = tempdir::TempDir::new("abi").expect("temporary directory");
let cc = Compiler::new().expect("configured compiler");
2019-06-18 10:04:39 +00:00
assert_eq!(
Layout {
size: 1,
alignment: 1
},
get_c_layout(tmpdir.path(), &cc, "char").expect("C layout"),
"failed to obtain correct layout for char type"
);
2018-10-31 12:34:15 +00:00
2019-06-18 10:04:39 +00:00
let mut results: Results = Default::default();
2018-10-31 12:34:15 +00:00
for (i, &(name, rust_layout)) in RUST_LAYOUTS.iter().enumerate() {
match get_c_layout(tmpdir.path(), &cc, name) {
Err(e) => {
results.record_failed_to_compile();
eprintln!("{}", e);
2019-06-18 10:04:39 +00:00
}
2018-10-31 12:34:15 +00:00
Ok(c_layout) => {
if rust_layout == c_layout {
results.record_passed();
} else {
results.record_failed();
2019-06-18 10:04:39 +00:00
eprintln!(
"Layout mismatch for {}\nRust: {:?}\nC: {:?}",
name, rust_layout, &c_layout
);
2018-10-31 12:34:15 +00:00
}
}
};
if (i + 1) % 25 == 0 {
println!("layout ... {}", results.summary());
}
}
results.expect_total_success();
}
fn get_c_layout(dir: &Path, cc: &Compiler, name: &str) -> Result<Layout, Box<Error>> {
let exe = dir.join("layout");
let mut cc = cc.clone();
cc.define("ABI_TYPE_NAME", name);
cc.compile(Path::new("tests/layout.c"), &exe)?;
let mut abi_cmd = Command::new(exe);
let output = abi_cmd.output()?;
if !output.status.success() {
2019-06-18 10:04:39 +00:00
return Err(format!("command {:?} failed, {:?}", &abi_cmd, &output).into());
2018-10-31 12:34:15 +00:00
}
let stdout = str::from_utf8(&output.stdout)?;
let mut words = stdout.trim().split_whitespace();
let size = words.next().unwrap().parse().unwrap();
let alignment = words.next().unwrap().parse().unwrap();
2019-06-18 10:04:39 +00:00
Ok(Layout { size, alignment })
2018-10-31 12:34:15 +00:00
}
fn get_c_value(dir: &Path, cc: &Compiler, name: &str) -> Result<String, Box<Error>> {
let exe = dir.join("constant");
let mut cc = cc.clone();
cc.define("ABI_CONSTANT_NAME", name);
cc.compile(Path::new("tests/constant.c"), &exe)?;
let mut abi_cmd = Command::new(exe);
let output = abi_cmd.output()?;
if !output.status.success() {
2019-06-18 10:04:39 +00:00
return Err(format!("command {:?} failed, {:?}", &abi_cmd, &output).into());
2018-10-31 12:34:15 +00:00
}
let output = str::from_utf8(&output.stdout)?.trim();
2019-06-18 10:04:39 +00:00
if !output.starts_with("###gir test###") || !output.ends_with("###gir test###") {
return Err(format!(
"command {:?} return invalid output, {:?}",
&abi_cmd, &output
)
.into());
}
Ok(String::from(&output[14..(output.len() - 14)]))
2018-10-31 12:34:15 +00:00
}
const RUST_LAYOUTS: &[(&str, Layout)] = &[
2019-06-18 10:04:39 +00:00
(
"GESAsset",
Layout {
size: size_of::<GESAsset>(),
alignment: align_of::<GESAsset>(),
},
),
(
"GESAssetClass",
Layout {
size: size_of::<GESAssetClass>(),
alignment: align_of::<GESAssetClass>(),
},
),
(
"GESAssetLoadingReturn",
Layout {
size: size_of::<GESAssetLoadingReturn>(),
alignment: align_of::<GESAssetLoadingReturn>(),
},
),
(
"GESAudioSource",
Layout {
size: size_of::<GESAudioSource>(),
alignment: align_of::<GESAudioSource>(),
},
),
(
"GESAudioSourceClass",
Layout {
size: size_of::<GESAudioSourceClass>(),
alignment: align_of::<GESAudioSourceClass>(),
},
),
(
"GESAudioTestSource",
Layout {
size: size_of::<GESAudioTestSource>(),
alignment: align_of::<GESAudioTestSource>(),
},
),
(
"GESAudioTestSourceClass",
Layout {
size: size_of::<GESAudioTestSourceClass>(),
alignment: align_of::<GESAudioTestSourceClass>(),
},
),
(
"GESAudioTrack",
Layout {
size: size_of::<GESAudioTrack>(),
alignment: align_of::<GESAudioTrack>(),
},
),
(
"GESAudioTrackClass",
Layout {
size: size_of::<GESAudioTrackClass>(),
alignment: align_of::<GESAudioTrackClass>(),
},
),
(
"GESAudioTransition",
Layout {
size: size_of::<GESAudioTransition>(),
alignment: align_of::<GESAudioTransition>(),
},
),
(
"GESAudioTransitionClass",
Layout {
size: size_of::<GESAudioTransitionClass>(),
alignment: align_of::<GESAudioTransitionClass>(),
},
),
(
"GESAudioUriSource",
Layout {
size: size_of::<GESAudioUriSource>(),
alignment: align_of::<GESAudioUriSource>(),
},
),
(
"GESAudioUriSourceClass",
Layout {
size: size_of::<GESAudioUriSourceClass>(),
alignment: align_of::<GESAudioUriSourceClass>(),
},
),
(
"GESBaseEffect",
Layout {
size: size_of::<GESBaseEffect>(),
alignment: align_of::<GESBaseEffect>(),
},
),
(
"GESBaseEffectClass",
Layout {
size: size_of::<GESBaseEffectClass>(),
alignment: align_of::<GESBaseEffectClass>(),
},
),
(
"GESBaseEffectClip",
Layout {
size: size_of::<GESBaseEffectClip>(),
alignment: align_of::<GESBaseEffectClip>(),
},
),
(
"GESBaseEffectClipClass",
Layout {
size: size_of::<GESBaseEffectClipClass>(),
alignment: align_of::<GESBaseEffectClipClass>(),
},
),
(
"GESBaseTransitionClip",
Layout {
size: size_of::<GESBaseTransitionClip>(),
alignment: align_of::<GESBaseTransitionClip>(),
},
),
(
"GESBaseTransitionClipClass",
Layout {
size: size_of::<GESBaseTransitionClipClass>(),
alignment: align_of::<GESBaseTransitionClipClass>(),
},
),
(
"GESBaseXmlFormatter",
Layout {
size: size_of::<GESBaseXmlFormatter>(),
alignment: align_of::<GESBaseXmlFormatter>(),
},
),
(
"GESBaseXmlFormatterClass",
Layout {
size: size_of::<GESBaseXmlFormatterClass>(),
alignment: align_of::<GESBaseXmlFormatterClass>(),
},
),
(
"GESChildrenControlMode",
Layout {
size: size_of::<GESChildrenControlMode>(),
alignment: align_of::<GESChildrenControlMode>(),
},
),
(
"GESClip",
Layout {
size: size_of::<GESClip>(),
alignment: align_of::<GESClip>(),
},
),
(
"GESClipAsset",
Layout {
size: size_of::<GESClipAsset>(),
alignment: align_of::<GESClipAsset>(),
},
),
(
"GESClipAssetClass",
Layout {
size: size_of::<GESClipAssetClass>(),
alignment: align_of::<GESClipAssetClass>(),
},
),
(
"GESClipClass",
Layout {
size: size_of::<GESClipClass>(),
alignment: align_of::<GESClipClass>(),
},
),
(
"GESCommandLineFormatter",
Layout {
size: size_of::<GESCommandLineFormatter>(),
alignment: align_of::<GESCommandLineFormatter>(),
},
),
(
"GESCommandLineFormatterClass",
Layout {
size: size_of::<GESCommandLineFormatterClass>(),
alignment: align_of::<GESCommandLineFormatterClass>(),
},
),
(
"GESContainer",
Layout {
size: size_of::<GESContainer>(),
alignment: align_of::<GESContainer>(),
},
),
(
"GESContainerClass",
Layout {
size: size_of::<GESContainerClass>(),
alignment: align_of::<GESContainerClass>(),
},
),
(
"GESEdge",
Layout {
size: size_of::<GESEdge>(),
alignment: align_of::<GESEdge>(),
},
),
(
"GESEditMode",
Layout {
size: size_of::<GESEditMode>(),
alignment: align_of::<GESEditMode>(),
},
),
(
"GESEffect",
Layout {
size: size_of::<GESEffect>(),
alignment: align_of::<GESEffect>(),
},
),
(
"GESEffectAsset",
Layout {
size: size_of::<GESEffectAsset>(),
alignment: align_of::<GESEffectAsset>(),
},
),
(
"GESEffectAssetClass",
Layout {
size: size_of::<GESEffectAssetClass>(),
alignment: align_of::<GESEffectAssetClass>(),
},
),
(
"GESEffectClass",
Layout {
size: size_of::<GESEffectClass>(),
alignment: align_of::<GESEffectClass>(),
},
),
(
"GESEffectClip",
Layout {
size: size_of::<GESEffectClip>(),
alignment: align_of::<GESEffectClip>(),
},
),
(
"GESEffectClipClass",
Layout {
size: size_of::<GESEffectClipClass>(),
alignment: align_of::<GESEffectClipClass>(),
},
),
(
"GESError",
Layout {
size: size_of::<GESError>(),
alignment: align_of::<GESError>(),
},
),
(
"GESExtractableInterface",
Layout {
size: size_of::<GESExtractableInterface>(),
alignment: align_of::<GESExtractableInterface>(),
},
),
(
"GESFormatter",
Layout {
size: size_of::<GESFormatter>(),
alignment: align_of::<GESFormatter>(),
},
),
(
"GESFormatterClass",
Layout {
size: size_of::<GESFormatterClass>(),
alignment: align_of::<GESFormatterClass>(),
},
),
(
"GESGroup",
Layout {
size: size_of::<GESGroup>(),
alignment: align_of::<GESGroup>(),
},
),
(
"GESGroupClass",
Layout {
size: size_of::<GESGroupClass>(),
alignment: align_of::<GESGroupClass>(),
},
),
(
"GESImageSource",
Layout {
size: size_of::<GESImageSource>(),
alignment: align_of::<GESImageSource>(),
},
),
(
"GESImageSourceClass",
Layout {
size: size_of::<GESImageSourceClass>(),
alignment: align_of::<GESImageSourceClass>(),
},
),
(
"GESLayer",
Layout {
size: size_of::<GESLayer>(),
alignment: align_of::<GESLayer>(),
},
),
(
"GESLayerClass",
Layout {
size: size_of::<GESLayerClass>(),
alignment: align_of::<GESLayerClass>(),
},
),
(
"GESMetaContainerInterface",
Layout {
size: size_of::<GESMetaContainerInterface>(),
alignment: align_of::<GESMetaContainerInterface>(),
},
),
(
"GESMetaFlag",
Layout {
size: size_of::<GESMetaFlag>(),
alignment: align_of::<GESMetaFlag>(),
},
),
(
"GESMultiFileSource",
Layout {
size: size_of::<GESMultiFileSource>(),
alignment: align_of::<GESMultiFileSource>(),
},
),
(
"GESMultiFileSourceClass",
Layout {
size: size_of::<GESMultiFileSourceClass>(),
alignment: align_of::<GESMultiFileSourceClass>(),
},
),
(
"GESOperation",
Layout {
size: size_of::<GESOperation>(),
alignment: align_of::<GESOperation>(),
},
),
(
"GESOperationClass",
Layout {
size: size_of::<GESOperationClass>(),
alignment: align_of::<GESOperationClass>(),
},
),
(
"GESOperationClip",
Layout {
size: size_of::<GESOperationClip>(),
alignment: align_of::<GESOperationClip>(),
},
),
(
"GESOperationClipClass",
Layout {
size: size_of::<GESOperationClipClass>(),
alignment: align_of::<GESOperationClipClass>(),
},
),
(
"GESOverlayClip",
Layout {
size: size_of::<GESOverlayClip>(),
alignment: align_of::<GESOverlayClip>(),
},
),
(
"GESOverlayClipClass",
Layout {
size: size_of::<GESOverlayClipClass>(),
alignment: align_of::<GESOverlayClipClass>(),
},
),
(
"GESPipeline",
Layout {
size: size_of::<GESPipeline>(),
alignment: align_of::<GESPipeline>(),
},
),
(
"GESPipelineClass",
Layout {
size: size_of::<GESPipelineClass>(),
alignment: align_of::<GESPipelineClass>(),
},
),
(
"GESPipelineFlags",
Layout {
size: size_of::<GESPipelineFlags>(),
alignment: align_of::<GESPipelineFlags>(),
},
),
(
"GESPitiviFormatter",
Layout {
size: size_of::<GESPitiviFormatter>(),
alignment: align_of::<GESPitiviFormatter>(),
},
),
(
"GESPitiviFormatterClass",
Layout {
size: size_of::<GESPitiviFormatterClass>(),
alignment: align_of::<GESPitiviFormatterClass>(),
},
),
(
"GESProject",
Layout {
size: size_of::<GESProject>(),
alignment: align_of::<GESProject>(),
},
),
(
"GESProjectClass",
Layout {
size: size_of::<GESProjectClass>(),
alignment: align_of::<GESProjectClass>(),
},
),
(
"GESSource",
Layout {
size: size_of::<GESSource>(),
alignment: align_of::<GESSource>(),
},
),
(
"GESSourceClass",
Layout {
size: size_of::<GESSourceClass>(),
alignment: align_of::<GESSourceClass>(),
},
),
(
"GESSourceClip",
Layout {
size: size_of::<GESSourceClip>(),
alignment: align_of::<GESSourceClip>(),
},
),
(
"GESSourceClipClass",
Layout {
size: size_of::<GESSourceClipClass>(),
alignment: align_of::<GESSourceClipClass>(),
},
),
(
"GESTestClip",
Layout {
size: size_of::<GESTestClip>(),
alignment: align_of::<GESTestClip>(),
},
),
(
"GESTestClipClass",
Layout {
size: size_of::<GESTestClipClass>(),
alignment: align_of::<GESTestClipClass>(),
},
),
(
"GESTextHAlign",
Layout {
size: size_of::<GESTextHAlign>(),
alignment: align_of::<GESTextHAlign>(),
},
),
(
"GESTextOverlay",
Layout {
size: size_of::<GESTextOverlay>(),
alignment: align_of::<GESTextOverlay>(),
},
),
(
"GESTextOverlayClass",
Layout {
size: size_of::<GESTextOverlayClass>(),
alignment: align_of::<GESTextOverlayClass>(),
},
),
(
"GESTextOverlayClip",
Layout {
size: size_of::<GESTextOverlayClip>(),
alignment: align_of::<GESTextOverlayClip>(),
},
),
(
"GESTextOverlayClipClass",
Layout {
size: size_of::<GESTextOverlayClipClass>(),
alignment: align_of::<GESTextOverlayClipClass>(),
},
),
(
"GESTextVAlign",
Layout {
size: size_of::<GESTextVAlign>(),
alignment: align_of::<GESTextVAlign>(),
},
),
(
"GESTimeline",
Layout {
size: size_of::<GESTimeline>(),
alignment: align_of::<GESTimeline>(),
},
),
(
"GESTimelineClass",
Layout {
size: size_of::<GESTimelineClass>(),
alignment: align_of::<GESTimelineClass>(),
},
),
(
"GESTimelineElement",
Layout {
size: size_of::<GESTimelineElement>(),
alignment: align_of::<GESTimelineElement>(),
},
),
(
"GESTimelineElementClass",
Layout {
size: size_of::<GESTimelineElementClass>(),
alignment: align_of::<GESTimelineElementClass>(),
},
),
(
"GESTitleClip",
Layout {
size: size_of::<GESTitleClip>(),
alignment: align_of::<GESTitleClip>(),
},
),
(
"GESTitleClipClass",
Layout {
size: size_of::<GESTitleClipClass>(),
alignment: align_of::<GESTitleClipClass>(),
},
),
(
"GESTitleSource",
Layout {
size: size_of::<GESTitleSource>(),
alignment: align_of::<GESTitleSource>(),
},
),
(
"GESTitleSourceClass",
Layout {
size: size_of::<GESTitleSourceClass>(),
alignment: align_of::<GESTitleSourceClass>(),
},
),
(
"GESTrack",
Layout {
size: size_of::<GESTrack>(),
alignment: align_of::<GESTrack>(),
},
),
(
"GESTrackClass",
Layout {
size: size_of::<GESTrackClass>(),
alignment: align_of::<GESTrackClass>(),
},
),
(
"GESTrackElement",
Layout {
size: size_of::<GESTrackElement>(),
alignment: align_of::<GESTrackElement>(),
},
),
(
"GESTrackElementAsset",
Layout {
size: size_of::<GESTrackElementAsset>(),
alignment: align_of::<GESTrackElementAsset>(),
},
),
(
"GESTrackElementAssetClass",
Layout {
size: size_of::<GESTrackElementAssetClass>(),
alignment: align_of::<GESTrackElementAssetClass>(),
},
),
(
"GESTrackElementClass",
Layout {
size: size_of::<GESTrackElementClass>(),
alignment: align_of::<GESTrackElementClass>(),
},
),
(
"GESTrackType",
Layout {
size: size_of::<GESTrackType>(),
alignment: align_of::<GESTrackType>(),
},
),
(
"GESTransition",
Layout {
size: size_of::<GESTransition>(),
alignment: align_of::<GESTransition>(),
},
),
(
"GESTransitionClass",
Layout {
size: size_of::<GESTransitionClass>(),
alignment: align_of::<GESTransitionClass>(),
},
),
(
"GESTransitionClip",
Layout {
size: size_of::<GESTransitionClip>(),
alignment: align_of::<GESTransitionClip>(),
},
),
(
"GESTransitionClipClass",
Layout {
size: size_of::<GESTransitionClipClass>(),
alignment: align_of::<GESTransitionClipClass>(),
},
),
(
"GESUriClip",
Layout {
size: size_of::<GESUriClip>(),
alignment: align_of::<GESUriClip>(),
},
),
(
"GESUriClipAsset",
Layout {
size: size_of::<GESUriClipAsset>(),
alignment: align_of::<GESUriClipAsset>(),
},
),
(
"GESUriClipAssetClass",
Layout {
size: size_of::<GESUriClipAssetClass>(),
alignment: align_of::<GESUriClipAssetClass>(),
},
),
(
"GESUriClipClass",
Layout {
size: size_of::<GESUriClipClass>(),
alignment: align_of::<GESUriClipClass>(),
},
),
(
"GESUriSourceAsset",
Layout {
size: size_of::<GESUriSourceAsset>(),
alignment: align_of::<GESUriSourceAsset>(),
},
),
(
"GESUriSourceAssetClass",
Layout {
size: size_of::<GESUriSourceAssetClass>(),
alignment: align_of::<GESUriSourceAssetClass>(),
},
),
(
"GESVideoSource",
Layout {
size: size_of::<GESVideoSource>(),
alignment: align_of::<GESVideoSource>(),
},
),
(
"GESVideoSourceClass",
Layout {
size: size_of::<GESVideoSourceClass>(),
alignment: align_of::<GESVideoSourceClass>(),
},
),
(
"GESVideoStandardTransitionType",
Layout {
size: size_of::<GESVideoStandardTransitionType>(),
alignment: align_of::<GESVideoStandardTransitionType>(),
},
),
(
"GESVideoTestPattern",
Layout {
size: size_of::<GESVideoTestPattern>(),
alignment: align_of::<GESVideoTestPattern>(),
},
),
(
"GESVideoTestSource",
Layout {
size: size_of::<GESVideoTestSource>(),
alignment: align_of::<GESVideoTestSource>(),
},
),
(
"GESVideoTestSourceClass",
Layout {
size: size_of::<GESVideoTestSourceClass>(),
alignment: align_of::<GESVideoTestSourceClass>(),
},
),
(
"GESVideoTrack",
Layout {
size: size_of::<GESVideoTrack>(),
alignment: align_of::<GESVideoTrack>(),
},
),
(
"GESVideoTrackClass",
Layout {
size: size_of::<GESVideoTrackClass>(),
alignment: align_of::<GESVideoTrackClass>(),
},
),
(
"GESVideoTransition",
Layout {
size: size_of::<GESVideoTransition>(),
alignment: align_of::<GESVideoTransition>(),
},
),
(
"GESVideoTransitionClass",
Layout {
size: size_of::<GESVideoTransitionClass>(),
alignment: align_of::<GESVideoTransitionClass>(),
},
),
(
"GESVideoUriSource",
Layout {
size: size_of::<GESVideoUriSource>(),
alignment: align_of::<GESVideoUriSource>(),
},
),
(
"GESVideoUriSourceClass",
Layout {
size: size_of::<GESVideoUriSourceClass>(),
alignment: align_of::<GESVideoUriSourceClass>(),
},
),
(
"GESXmlFormatter",
Layout {
size: size_of::<GESXmlFormatter>(),
alignment: align_of::<GESXmlFormatter>(),
},
),
(
"GESXmlFormatterClass",
Layout {
size: size_of::<GESXmlFormatterClass>(),
alignment: align_of::<GESXmlFormatterClass>(),
},
),
2018-10-31 12:34:15 +00:00
];
const RUST_CONSTANTS: &[(&str, &str)] = &[
("(gint) GES_ASSET_LOADING_ASYNC", "1"),
("(gint) GES_ASSET_LOADING_ERROR", "0"),
("(gint) GES_ASSET_LOADING_OK", "2"),
("(gint) GES_CHILDREN_IGNORE_NOTIFIES", "1"),
("(gint) GES_CHILDREN_LAST", "4"),
("(gint) GES_CHILDREN_UPDATE", "0"),
("(gint) GES_CHILDREN_UPDATE_ALL_VALUES", "3"),
("(gint) GES_CHILDREN_UPDATE_OFFSETS", "2"),
("(gint) GES_EDGE_END", "1"),
("(gint) GES_EDGE_NONE", "2"),
("(gint) GES_EDGE_START", "0"),
("(gint) GES_EDIT_MODE_NORMAL", "0"),
("(gint) GES_EDIT_MODE_RIPPLE", "1"),
("(gint) GES_EDIT_MODE_ROLL", "2"),
("(gint) GES_EDIT_MODE_SLIDE", "4"),
("(gint) GES_EDIT_MODE_TRIM", "3"),
("(gint) GES_ERROR_ASSET_LOADING", "1"),
("(gint) GES_ERROR_ASSET_WRONG_ID", "0"),
("(gint) GES_ERROR_FORMATTER_MALFORMED_INPUT_FILE", "2"),
2018-10-31 12:34:15 +00:00
("GES_META_DESCRIPTION", "description"),
("GES_META_FORMATTER_EXTENSION", "extension"),
("GES_META_FORMATTER_MIMETYPE", "mimetype"),
("GES_META_FORMATTER_NAME", "name"),
("GES_META_FORMATTER_RANK", "rank"),
("GES_META_FORMATTER_VERSION", "version"),
("GES_META_FORMAT_VERSION", "format-version"),
("(guint) GES_META_READABLE", "1"),
("(guint) GES_META_READ_WRITE", "3"),
2018-10-31 12:34:15 +00:00
("GES_META_VOLUME", "volume"),
("GES_META_VOLUME_DEFAULT", "1.000000"),
("(guint) GES_META_WRITABLE", "2"),
2018-10-31 12:34:15 +00:00
("GES_MULTI_FILE_URI_PREFIX", "multifile://"),
("GES_PADDING", "4"),
("GES_PADDING_LARGE", "20"),
("(guint) GES_PIPELINE_MODE_PREVIEW", "3"),
("(guint) GES_PIPELINE_MODE_PREVIEW_AUDIO", "1"),
("(guint) GES_PIPELINE_MODE_PREVIEW_VIDEO", "2"),
("(guint) GES_PIPELINE_MODE_RENDER", "4"),
("(guint) GES_PIPELINE_MODE_SMART_RENDER", "8"),
("(gint) GES_TEXT_HALIGN_ABSOLUTE", "5"),
("(gint) GES_TEXT_HALIGN_CENTER", "1"),
("(gint) GES_TEXT_HALIGN_LEFT", "0"),
("(gint) GES_TEXT_HALIGN_POSITION", "4"),
("(gint) GES_TEXT_HALIGN_RIGHT", "2"),
("(gint) GES_TEXT_VALIGN_ABSOLUTE", "5"),
("(gint) GES_TEXT_VALIGN_BASELINE", "0"),
("(gint) GES_TEXT_VALIGN_BOTTOM", "1"),
("(gint) GES_TEXT_VALIGN_CENTER", "4"),
("(gint) GES_TEXT_VALIGN_POSITION", "3"),
("(gint) GES_TEXT_VALIGN_TOP", "2"),
2019-05-15 22:00:42 +00:00
("GES_TIMELINE_ELEMENT_NO_LAYER_PRIORITY", "4294967295"),
("(guint) GES_TRACK_TYPE_AUDIO", "2"),
("(guint) GES_TRACK_TYPE_CUSTOM", "16"),
("(guint) GES_TRACK_TYPE_TEXT", "8"),
("(guint) GES_TRACK_TYPE_UNKNOWN", "1"),
("(guint) GES_TRACK_TYPE_VIDEO", "4"),
2019-05-15 22:00:42 +00:00
("GES_VERSION_MAJOR", "1"),
("GES_VERSION_MICRO", "1"),
2019-05-15 22:00:42 +00:00
("GES_VERSION_MINOR", "16"),
("GES_VERSION_NANO", "0"),
2019-06-18 10:04:39 +00:00
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DBL",
"45",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_DTL",
"46",
),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_H", "22"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNDOOR_V", "21"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_D", "65"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_L", "66"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_R", "68"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BARNVEE_U", "67"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_LR", "1"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BAR_WIPE_TB", "2"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_H", "44"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOWTIE_V", "43"),
2019-06-18 10:04:39 +00:00
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BC",
"25",
),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BL", "6"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_BR", "5"),
2019-06-18 10:04:39 +00:00
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_LC",
"26",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_RC",
"24",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TC",
"23",
),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TL", "3"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_BOX_WIPE_TR", "4"),
2019-06-18 10:04:39 +00:00
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW12",
"201",
),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW3", "202"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW6", "203"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_CLOCK_CW9", "204"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE", "512"),
2019-06-18 10:04:39 +00:00
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TL",
"41",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DIAGONAL_TR",
"42",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIH",
"236",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FIV",
"235",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOH",
"214",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLEFAN_FOV",
"213",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OH",
"228",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_OV",
"227",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PD",
"226",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDBL",
"246",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PDTL",
"245",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_DOUBLESWEEP_PV",
"225",
),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_B", "233"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CR", "212"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_CT", "211"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_L", "234"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_R", "232"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_FAN_T", "231"),
2019-06-18 10:04:39 +00:00
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CI",
"7",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_FOUR_BOX_WIPE_CO",
"8",
),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_IRIS_RECT", "101"),
2019-06-18 10:04:39 +00:00
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DBD",
"47",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_MISC_DIAGONAL_DD",
"48",
),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE", "0"),
2019-06-18 10:04:39 +00:00
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_FB",
"207",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBH",
"206",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_PINWHEEL_TBV",
"205",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_B",
"253",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_L",
"252",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_R",
"254",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SALOONDOOR_T",
"251",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWB",
"223",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBL",
"242",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWBR",
"243",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWL",
"224",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWR",
"222",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWT",
"221",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTL",
"241",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_SINGLESWEEP_CWTR",
"244",
),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_D", "61"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_L", "62"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_R", "64"),
("(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_VEE_U", "63"),
2019-06-18 10:04:39 +00:00
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_H",
"264",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_R",
"261",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_U",
"262",
),
(
"(gint) GES_VIDEO_STANDARD_TRANSITION_TYPE_WINDSHIELD_V",
"263",
),
("(gint) GES_VIDEO_TEST_CHROMA_ZONE_PLATE", "16"),
("(gint) GES_VIDEO_TEST_GAMUT", "15"),
("(gint) GES_VIDEO_TEST_PATTERN_BLACK", "2"),
("(gint) GES_VIDEO_TEST_PATTERN_BLINK", "12"),
("(gint) GES_VIDEO_TEST_PATTERN_BLUE", "6"),
("(gint) GES_VIDEO_TEST_PATTERN_CHECKERS1", "7"),
("(gint) GES_VIDEO_TEST_PATTERN_CHECKERS2", "8"),
("(gint) GES_VIDEO_TEST_PATTERN_CHECKERS4", "9"),
("(gint) GES_VIDEO_TEST_PATTERN_CHECKERS8", "10"),
("(gint) GES_VIDEO_TEST_PATTERN_CIRCULAR", "11"),
("(gint) GES_VIDEO_TEST_PATTERN_GREEN", "5"),
("(gint) GES_VIDEO_TEST_PATTERN_RED", "4"),
("(gint) GES_VIDEO_TEST_PATTERN_SMPTE", "0"),
("(gint) GES_VIDEO_TEST_PATTERN_SMPTE75", "13"),
("(gint) GES_VIDEO_TEST_PATTERN_SNOW", "1"),
("(gint) GES_VIDEO_TEST_PATTERN_SOLID", "17"),
("(gint) GES_VIDEO_TEST_PATTERN_WHITE", "3"),
("(gint) GES_VIDEO_TEST_ZONE_PLATE", "14"),
2018-10-31 12:34:15 +00:00
];