Update readme/changelog also remove deprecated features before anyone tries to depend on them

This commit is contained in:
Josh Holmer 2023-01-23 14:34:54 -05:00
parent cff28ba207
commit bf05578b40
3 changed files with 10 additions and 63 deletions

View File

@ -1,49 +1,9 @@
5.0.0 ## Version 1.0.0
-----
- Introduce conditional compilation flags to preserve functions that are - Fork from https://github.com/zmwangx/rust-ffmpeg
removed from ffmpeg 5.0 and onwards. - Fix building against git ffmpeg by making enums non-exhaustive
- Fix examples so they are using the ffmpeg-sanctionned way of doing - Reset versioning. The new versioning scheme makes the crate version independent of the ffmpeg version,
things. More specifically, AVStream.codec has been removed, and the but tags the ffmpeg version as semver metadata. When including this crate as a dependency, you only need
correct way of getting the codec from a stream is to use to specify the crate version itself e.g. "1.0.0". The tagged ffmpeg version is merely informative and indicates
Context::from_parameters(stream.parameters()) and then that context's the latest stable ffmpeg at the time the version of the crate was released, which is also the version that
encoder / decoder. this crate is tested against.
4.4.0
-----
- crate: `ffmpeg43` feature flag (noop since 4.3.4) has been dropped from default features.
- codec: deprecate APIs based on deprecated (since FFmpeg 3.1) `avcodec_decode_video2()` / `avcodec_decode_audio4()` / `avcodec_encode_video2()` /`avcodec_encode_audio2()` -- `decoder::Video::decode()`, `decode::Audio::decode()`, `encoder::Video::encode()` and `encoder::Audio::decode()`. Users should migrate to `send_packet()` / `send_eof()`, `receive_frame()`, `send_frame()` / `send_eof()`, and `receive_packet()` APIs instead, which are based on the modern send/receive APIs. See [documentation in `libavcodec/avcodec.h`](https://github.com/FFmpeg/FFmpeg/blob/n4.3.1/libavcodec/avcodec.h#L84-L196) for details. (#28)
- codec: fix signature of `Packet::write_interleaved`; previously `Result<bool, Error>`, now `Result<(), Error>`. (#25)
4.3.8
-----
- software::resampling: add Context::get_with for specifying additional options. (#41)
4.3.7
-----
- codec: fix codec description potential null ptr issue. (#36)
4.3.6
-----
- util: fix Windows compatibility due to unavailable errnos. (#30)
4.3.5
-----
- util: add `util::log` module to expose FFmpeg's logging facilities.
- filter: add method `Source::close()` to expose `av_buffersrc_close`. (#23)
- codec: add new encoding/decoding APIs `send_frame()` / `send_eof()`, `receive_packet()` to `encoder::{Audio, Video}` and `send_packet()` / `send_eof()`, `receive_frame()` to `decoder::{Audio, Video}` based on modern send/receive APIs (instead of `avcodec_decode_video2()` / `avcodec_decode_audio4()` / `avcodec_encode_video2()` /`avcodec_encode_audio2()` which have been deprecated since FFmpeg 3.1). Users should consider switching to the new APIs. See [documentation in `libavcodec/avcodec.h`](https://github.com/FFmpeg/FFmpeg/blob/n4.3.1/libavcodec/avcodec.h#L84-L196) for details. (#28)
- util: introduce new `Error` variant `Error::Other { errno }` for wrapped POSIX error codes (see the `AVERROR` macro in `libavutil/error.h`), and reexport common POSIX error codes under `util::error`. (#24)
4.3.4
-----
- crate: FFmpeg version detection is now automatic, obseleting feature flags `ffmpeg4`, `ffmpeg41`, `ffmpeg42` and `ffmpeg43`. The flags are kept as noop for now, will be removed in 5.0.

View File

@ -1,6 +1,6 @@
[package] [package]
name = "ffmpeg-the-third" name = "ffmpeg-the-third"
version = "1.0.0+ffmpeg-5.1.2" version = "1.0.1+ffmpeg-5.1.2"
build = "build.rs" build = "build.rs"
authors = ["meh. <meh@schizofreni.co>", "Zhiming Wang <i@zhimingwang.org>"] authors = ["meh. <meh@schizofreni.co>", "Zhiming Wang <i@zhimingwang.org>"]
@ -25,15 +25,6 @@ default = [
"non-exhaustive-enums", "non-exhaustive-enums",
] ]
# ffmpeg<xy> are obsolete features kept for backward compatibility purposes and
# don't do anything anymore (equivalents are automatically specified through
# compile-time detection in ffmpeg-sys-the-third). Deprecation plan: all these
# features will be removed come 5.0.
ffmpeg43 = []
ffmpeg42 = []
ffmpeg41 = []
ffmpeg4 = []
static = ["ffmpeg-sys-the-third/static"] static = ["ffmpeg-sys-the-third/static"]
build = ["static", "ffmpeg-sys-the-third/build"] build = ["static", "ffmpeg-sys-the-third/build"]

View File

@ -6,7 +6,7 @@ This is a fork of the abandoned [ffmpeg-next](https://crates.io/crates/ffmpeg-ne
Currently supported FFmpeg versions: 4.x, 5.x. Currently supported FFmpeg versions: 4.x, 5.x.
Build instructions can be found on the [wiki](https://github.com/shssoichiro/ffmpeg-the-third/wiki/Notes-on-building). Build instructions can be found on the [wiki](https://github.com/zmwangx/rust-ffmpeg/wiki/Notes-on-building).
Documentation: Documentation:
@ -14,10 +14,6 @@ Documentation:
- [FFmpeg user manual](https://ffmpeg.org/ffmpeg-all.html); - [FFmpeg user manual](https://ffmpeg.org/ffmpeg-all.html);
- [FFmpeg Doxygen](https://ffmpeg.org/doxygen/trunk/). - [FFmpeg Doxygen](https://ffmpeg.org/doxygen/trunk/).
_Note on upgrading to v4.3.4 or later: v4.3.4 introduced automatic FFmpeg version detection, obsoleting feature flags `ffmpeg4`, `ffmpeg41`, `ffmpeg42` and `ffmpeg43`. If you manually specify any of these features, now is the time to remove them; if you use `ffmpeg43` through the `default` feature, it's still on for backward-compatibility but it has turned into a no-op, and you don't need to do anything. Deprecation plan: `ffmpeg43` will be dropped from default features come 4.4, and all these features will be removed come 5.0._
_See [CHANGELOG.md](CHANGELOG.md) for other information on version upgrades._ _See [CHANGELOG.md](CHANGELOG.md) for other information on version upgrades._
A word on versioning: major and minor versions of this crate 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 changes to this crate and does not track FFmpeg patch versions. Since we can only freely bump the patch level, versioning of this crate differs from semver: minor versions may behave like semver major versions and introduce backward-incompatible changes; patch versions may behave like semver minor versions and introduce new APIs. Please peg the version you use accordingly.
**If you have significant, demonstrable experience in Rust and multimedia-related programming, please let me know, I'll be more than happy to invite you as a collaborator.** **If you have significant, demonstrable experience in Rust and multimedia-related programming, please let me know, I'll be more than happy to invite you as a collaborator.**