Commit Graph

452 Commits

Author SHA1 Message Date
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
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
9eab7820bb Fix PadIter in FFmpeg pre-5.0 (#17) 2024-04-03 14:51:12 -04:00
f269020af8 Add missing enum variants for FFmpeg 6.1 (#16) 2024-04-03 12:27:13 -04:00
30aabf9033 Add FFmpeg 6.1 support (#14)
Co-authored-by: Rafie <simulping@protonmail.com>
2024-04-02 08:47:59 -04:00
1af767b881 Silence clippy false positive 2023-11-08 08:34:32 -05:00
05bad6e9e0 Propagate errors in Input::packets(). 2023-04-28 09:05:12 -04:00
e3d3c4a11e Fix ffmpeg 4.x 2023-03-07 13:29:18 -05:00
c6dd54003e Support ffmpeg 6.0
Closes #6
2023-03-07 13:21:43 -05:00
ed9703b739 Fix an issue where compilation may fail on some non-x64 platforms 2023-02-02 13:29:08 -05:00
fe89e158c0 Add serialize support for enums 2023-01-24 02:38:11 -05:00
42448a8d45 Remove another remnant of that deprecated feature set 2023-01-23 14:39:58 -05:00
cff28ba207 Fix things from renaming and clippy 2023-01-23 10:22:10 -05:00
92a8c6a9d8 add feature non-exhaustive-enums 2023-01-23 09:53:56 -05:00
28c356dd98 add wildcard branches for matches on enums 2023-01-23 09:53:52 -05:00
022eaa28cf Fix clippy 2022-09-07 23:49:28 +02:00
b6b2311fcf Bump to 5.1.1 2022-08-08 18:37:14 +02:00
a0d7fdb30f Fix get best stream 2022-02-20 18:15:08 -05:00
22ad8b9598 Bump version to use ffmpeg 5 2022-02-11 17:58:42 +01:00
1955c3ddeb Merge pull request #76 from zmwangx/fix-linting
Fix linting errors
2021-10-02 23:30:31 +02:00
f559e13afc Fix linting errors 2021-10-02 22:51:32 +02:00
d5e9f34b6a fix build on platforms where std::os::raw::c_char is not i8
c_char may be i8 or u8, depending on target platform: https://doc.rust-lang.org/std/os/raw/type.c_char.html
2021-07-28 13:18:27 -07:00
19ab5f67ad Fix linting errors 2021-07-07 16:52:30 +02:00
9c7ecb9b53 Initial ffmpeg 4.4 support 2021-05-06 17:08:45 -04:00
dc2a82f890 software::resampling::Context: add get_with method (#41)
get_with allows setting additional options not covered by swr_alloc_set_opts.

Signed-off-by: Zhiming Wang <i@zhimingwang.org>
2020-12-13 10:39:04 +08:00
b0722df007 Fix clippy::match_like_matches_macro 2020-10-11 10:10:08 +08:00
6f0a14ee8b codec: fix codec description potential null ptr issue
Codecs may not have .long_name initialized.

Issue raised by Pilyushkin in #34.
2020-10-04 11:37:59 +08:00
6a7a69e1e7 util::error: drop reserved errnos that are not available on Windows
Signed-off-by: Zhiming Wang <i@zhimingwang.org>
2020-08-12 10:30:11 +08:00
545180cad0 format: context::{input,output}::dump: fix url/path printing
Previously the unwrapped CString did not have long enough lifetime to be
printed; not sure why there's no compiler warning.
2020-08-11 00:30:58 +08:00
48b5751752 lib: export util::log 2020-08-10 21:57:55 +08:00
d07530267e format: mark Context::nb_streams as public 2020-08-09 13:58:48 +08:00
1849a07aa6 lib: export util::error 2020-08-09 13:58:24 +08:00
c9d223e8fe util::error: correct comment regarding errno reexports 2020-08-09 13:57:43 +08:00
81e142c6b7 util: introduce new Error variant Error:Other { errno }
Do not hide all the POSIX error codes behind a useless Error::Unknown.

Fixes #24.
2020-08-08 23:16:09 +08:00
5affb85148 codec: fix signature of Packet::write_interleaved
av_interleaved_write_frame never returns 1, so bool makes no sense:
https://github.com/FFmpeg/FFmpeg/blob/n4.3.1/libavformat/avformat.h#L2592-L2635

Fixes #25.
2020-08-08 22:48:01 +08:00
6f44fb79fd codec: deprecate encoder's encode/flush and decoder's decode 2020-08-08 01:16:44 +08:00
07fe207ac2 codec: implement DerefMut for encoder::Audio and encoder::Subtitle 2020-08-08 00:38:09 +08:00
363001febe codec: expose modern send/receive packet/frame APIs
avcodec_encode_video2()/avcodec_decode_video2/avcodec_encode_audio2()/avcodec_decode_audio4()
have been deprecated since FFmpeg 3.1, with modern
avcodec_send_packet()/avcodec_receive_frame()/avcodec_send_frame()/avcodec_receive_packet()
as replacements.

This commit adds send_packet(), send_eof() and receive_frame() to
decoder::Opened; send_frame(), send_eof() and receive_packet() to
encoder::Encoder to expose these modern APIs.
2020-08-08 00:37:54 +08:00
516f8069f6 Packet setters 2020-08-07 22:43:53 +08:00
50e1ccaca4 Don't panic on OOM 2020-08-07 22:43:53 +08:00
f0903fb69b Allow null codec 2020-08-07 22:43:52 +08:00
f73dca70b4 Debug for Context 2020-08-07 22:43:52 +08:00
aa8df7d0d2 DRY nb_streams 2020-08-07 22:42:17 +08:00
53570d13d7 Add Debug for dictionary 2020-08-07 22:42:17 +08:00
b31b5507fb Add Send trait to resampling::Context 2020-08-07 22:31:11 +08:00
f1ccd4e696 filter::Source: add close method
Expose av_buffersrc_close.
2020-08-03 18:49:14 +08:00
d3270133be Add log::util module 2020-08-03 18:46:49 +08:00
b28e852eb0 Implement automatic FFmpeg version detection
Based on ffmpeg-sys-next 4.3.2.
2020-08-02 11:44:13 +08:00
1d0d42d81a filter: test_paditer: register_all before testing the overlay filter
avfilter_register_all required on FFmpeg <4 before avfilter_get_by_name can
find the builtin filters.
2020-07-26 12:42:57 +08:00
e947bc5606 Fix clippy::transmute_ptr_to_ptr 2020-07-26 12:26:20 +08:00