ffmpeg-the-third/ffmpeg-sys-the-third
FreezyLemon fd2d71c92b
Support FFmpeg 7.0 (#48)
* sys: Run cargo fmt

* sys: Add new channel layout consts

* sys: Update build script for 7.0

- Add new FF_API flags
- Update version_check_info range
- Add ffmpeg_7_0 feature entry

* sys: Update non-exhaustive match statement

* Update enums

* Mark old APIs as removed with 7.0

* Make Audio frame work with 7.0

The .unwrap() in clone() is a bit wonky

* Add API for swr_alloc_set_opts2

* Use AVFrame::duration field in 7.0+

* Include 7.0 in CI runs

* Add fn ChanneLayoutIter::best

* Update examples for new API

* Add/update Context setter for ch layout
2024-04-29 21:38:37 -04:00
..
2024-04-29 21:38:37 -04:00
2023-01-23 09:59:27 -05:00
2024-04-29 21:38:37 -04:00
2024-04-14 13:52:11 -04:00
2023-01-23 10:02:54 -05:00

ffmpeg-sys-the-third on crates.io build

This is a fork of the abandoned ffmpeg-sys crate. You can find this crate as ffmpeg-sys-the-third on crates.io.

This crate contains low level bindings to FFmpeg. You're probably interested in the high level bindings instead: ffmpeg-next.

A word on versioning: major and minor versions track major and minor versions of FFmpeg, e.g. 4.2.x of this crate has been updated to support the 4.2.x series of FFmpeg. Patch level is reserved for bug fixes of this crate and does not track FFmpeg patch versions.

Feature flags

In addition to feature flags declared in Cargo.toml, this crate performs various compile-time version and feature detections and exposes the results in additional flags. These flags are briefly documented below; run cargo build -vv to view more details.

  • ffmpeg_<x>_<y> flags (new in v4.3.2), e.g. ffmpeg_4_4, indicating the FFmpeg installation being compiled against is at least version <x>.<y>. Currently available:

    • ffmpeg_3_0
    • ffmpeg_3_1
    • ffmpeg_3_2
    • ffmpeg_3_3
    • ffmpeg_3_1
    • ffmpeg_4_0
    • ffmpeg_4_1
    • ffmpeg_4_2
    • ffmpeg_4_3
    • ffmpeg_4_4
  • avcodec_version_greater_than_<x>_<y> (new in v4.3.2), e.g., avcodec_version_greater_than_58_90. The name should be self-explanatory.

  • ff_api_<feature>, e.g. ff_api_vaapi, corresponding to whether their respective uppercase deprecation guards evaluate to true.

  • ff_api_<feature>_is_defined, e.g. ff_api_vappi_is_defined, similar to above except these are enabled as long as the corresponding deprecation guards are defined.