610 Commits

Author SHA1 Message Date
FreezyLemon
22fda65cda
Add AVHeader type to build.rs (#39)
* Rename `is_feature` to `optional`

* Replace Library::new with two separate functions

* Add AVHeader abstraction

* Add Library::enabled helper function
2024-04-27 19:57:23 -04:00
FreezyLemon
3206eedcf0
Add ChannelLayout API (#38)
* Create channel_layout directory

* Rename ChannelLayout -> ChannelLayoutMask

* Add enum Channel (<-> AVChannel)

* Add struct ChannelCustom (<-> AVChannelCustom)

* Add enum ChannelOrder (<-> AVChannelOrder)

* Add struct ChannelLayout

- Smart copy-on-write pointer to AVChannelLayout
- idiomatic Rust API wrapping around FFmpeg APIs
- no Ambisonic support (yet)
- consts will need to be manually updated

* Add ChannelLayoutIter (iterator over all standard layouts)

* Add codec/Audio::ch_layouts

* Add ch_layout API to Audio-related structs
2024-04-23 08:59:15 -04:00
FreezyLemon
3a9f4584a0 Update metadata in Cargo.toml 2024-04-14 13:52:11 -04:00
FreezyLemon
e7901750b4
ffmpeg-sys: Add basic impls for AVChannelLayout (#37) 2024-04-14 13:51:12 -04:00
FreezyLemon
ae70fa3f81
Use allowlist instead of blocklist in build script (#31) 2024-04-14 12:43:48 -04:00
FreezyLemon
684f758978
Replace avutil macros with const fns & clean up some code (#33)
* Replace tag/error macros with const fns

* Remove c_int -> c_int cast

These should always use the same type alias

* Remove duplicate av_strerror definition

* Document breaking change
2024-04-10 09:27:50 -04:00
FreezyLemon
1aa002a2b2 Add FF_API flags from 6.1 2024-04-10 09:26:03 -04:00
FreezyLemon
3cb87c9cae Add FF_API flags from 5.1 2024-04-10 09:26:03 -04:00
FreezyLemon
6231b4bc3a
Move channel_layout_fixed.h to rust (#28)
* Move channel layout definitions to Rust

* Add channel layouts new in 6.1

* Add new AVChannelLayout consts

* Add new channel layout values to ChannelLayout

* Realign ChannelLayout consts
2024-04-10 09:24:10 -04:00
FreezyLemon
d519d152b3
Specify MSRV & verify in CI (#23) 2024-04-08 13:44:49 -04:00
FreezyLemon
c25b7b4dcc Run sys (bindgen) tests in CI 2024-04-07 09:23:38 -04:00
FreezyLemon
82336f4dbb
Refactor fn build in build script (#25)
* Introduce helper fn cargo_feature_enabled

* Move switch and enable! to trait

This allows a simpler `configure.` invocation

* Move external libraries into static list

* Fix incorrect feature name for libdrm
2024-04-07 09:22:37 -04:00
FreezyLemon
2d8dd6c0a5 Remove num_cpus dependency
available_parallelism is stable in Rust 1.59.0
2024-04-07 09:21:19 -04:00
FreezyLemon
52a07ed0c6
Add AVFeature type to build.rs (#22) 2024-04-06 21:35:08 -04:00
FreezyLemon
7a8643f2cc
Migrate crates to Rust edition 2021 (#24)
* Migrate ffmpeg-sys to Edition 2021

* Migrate ffmpeg to Edition 2021

* Remove now-redundant imports

* Reorder imports after edition migration
2024-04-06 21:31:36 -04:00
FreezyLemon
f601a4bb69
Fix Windows CI (#18)
- Update actions
- Download FFmpeg from github
- Remove explicit newline from cmds
  (added automatically)
2024-04-03 14:51:44 -04:00
FreezyLemon
9eab7820bb
Fix PadIter in FFmpeg pre-5.0 (#17) 2024-04-03 14:51:12 -04:00
FreezyLemon
f269020af8
Add missing enum variants for FFmpeg 6.1 (#16) 2024-04-03 12:27:13 -04:00
FreezyLemon
e294e14fe2
Update and fix CI (#15) 2024-04-03 09:26:55 -04:00
FreezyLemon
30aabf9033
Add FFmpeg 6.1 support (#14)
Co-authored-by: Rafie <simulping@protonmail.com>
2024-04-02 08:47:59 -04:00
Josh Holmer
1af767b881 Silence clippy false positive 2023-11-08 08:34:32 -05:00
Nebojsa Sabovic
05bad6e9e0 Propagate errors in Input::packets(). 2023-04-28 09:05:12 -04:00
Mikhail Katychev
fa2b8d13ad
Add macOS package manager search paths for pkg-config (#8) 2023-03-23 11:11:48 -04:00
Josh Holmer
0d11595259
Fix ffmpeg 6.0 support and have it verified in docker/CI properly (#7) 2023-03-08 15:09:08 -05:00
Josh Holmer
e3d3c4a11e Fix ffmpeg 4.x 2023-03-07 13:29:18 -05:00
Josh Holmer
3954c3002d
Update README.md 2023-03-07 13:25:16 -05:00
Josh Holmer
c6dd54003e Support ffmpeg 6.0
Closes #6
2023-03-07 13:21:43 -05:00
Josh Holmer
83a831befb Support ffmpeg 6.0 in sys 2023-03-07 13:08:58 -05:00
Josh Holmer
4c03911ac4 sys version 1.0.2 2023-02-10 17:30:28 -05:00
Mahmoud Al-Qudsi
d1fea08f3f Fix build against clang 16
This patch upgrades the `bindgen` dependency to version 0.64 which includes a
fix for an upstream issue broken builds when building w/ clang 16 or newer [0].

The use of a wildcard `*` was removed in bindgen 0.62 [1], code has been updated
to use the regex approach instead to continue working.

[0]: https://github.com/rust-lang/rust-bindgen/pull/2316
[1]: https://github.com/rust-lang/rust-bindgen/issues/2373
2023-02-10 17:29:37 -05:00
Josh Holmer
689a39d9eb Publish sys 1.0.1
Closes #4
2023-02-10 17:29:03 -05:00
Josh Holmer
53c873890c Version 1.1.2 2023-02-06 09:43:10 -05:00
Mahmoud Al-Qudsi
2cf12148f9 Fix ffmpeg git branch/tag release names
The ffmpeg project changed their branch/tag naming structure. There is now a
branch for the major.minor version using the old naming scheme
(release/major.minor) and a tag called n{major}.{minor}[.{patch}].

This change broke the static builds which checked out no-longer-existing ffmpeg
branches with their old name.
2023-02-03 17:05:20 -05:00
Josh Holmer
ed9703b739 Fix an issue where compilation may fail on some non-x64 platforms 2023-02-02 13:29:08 -05:00
Josh Holmer
fe89e158c0 Add serialize support for enums 2023-01-24 02:38:11 -05:00
Josh Holmer
42448a8d45 Remove another remnant of that deprecated feature set 2023-01-23 14:39:58 -05:00
Josh Holmer
83da52ba95 Update changelog again 2023-01-23 14:37:29 -05:00
Josh Holmer
bf05578b40 Update readme/changelog also remove deprecated features before anyone tries to depend on them 2023-01-23 14:35:36 -05:00
Josh Holmer
cff28ba207 Fix things from renaming and clippy 2023-01-23 10:22:10 -05:00
Josh Holmer
b23133e43c Update bindgen as far as we can without it breaking which they didn't document whatever caused enums to break in 0.62 2023-01-23 10:16:46 -05:00
Josh Holmer
e3d9480221 Fix build script and versioning 2023-01-23 10:11:43 -05:00
Josh Holmer
028bdb490c Update more links 2023-01-23 10:02:54 -05:00
Josh Holmer
170e3926ec Fix sys clippy lints 2023-01-23 10:01:15 -05:00
Josh Holmer
cbe6033984 Add sys crate and rename things 2023-01-23 09:59:27 -05:00
FreezyLemon
92a8c6a9d8 add feature non-exhaustive-enums 2023-01-23 09:53:56 -05:00
FreezyLemon
28c356dd98 add wildcard branches for matches on enums 2023-01-23 09:53:52 -05:00
Polochon-street
022eaa28cf Fix clippy 2022-09-07 23:49:28 +02:00
Polochon-street
0d52510c2b
Merge pull request #107 from zmwangx/bump-ffmpeg-5-1
Bump to 5.1.0
2022-08-08 18:47:48 +02:00
Polochon-street
b6b2311fcf Bump to 5.1.1 2022-08-08 18:37:14 +02:00
Polochon-street
4275a8b0a2
Merge pull request #99 from zmwangx/bump-ffmpeg-version
Bump ffmpeg version to release it
2022-03-24 17:16:23 +01:00