Commit Graph

65 Commits

Author SHA1 Message Date
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
fe89e158c0 Add serialize support for enums 2023-01-24 02:38:11 -05:00
22ad8b9598 Bump version to use ffmpeg 5 2022-02-11 17:58:42 +01:00
19ab5f67ad Fix linting errors 2021-07-07 16:52:30 +02: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
307f52c002 Reformat code with latest cargo fmt 2020-06-02 17:54:31 +08:00
587ec66592 Fix libc::int64_t deprecation 2020-05-31 13:34:24 +08:00
0bcd4550b8 *: format code with rustfmt and fix clippy suggestions
* Add avformat_close_input call to clean up AVFormantContext
* Format code with rustfmt
* Fix clippy lint double_parens
* Fix clippy lint deref_addrof
* Fix clippy lint identity_conversion
* Fix clippy lint match_ref_pats
* Fix clippy lint cast_lossless
* Fix clippy lint cmp_null
* Fix clippy lint clone_on_ref_ptr
* Fix clippy lint map_clone
* Fix clippy lint needless_borrow
* Fix clippy lint needless_pass_by_value
* Fix clippy lints for examples
* Fix clippy lint unused_io_amount
* Fix clippy lint new_without_default
* Ignore inline_always clippy lint
* Add vim temp files to .gitignore
2018-04-10 16:06:42 +02:00
9e933fa4fb codec/encoder/video: add colorspace and color_range accessors 2017-06-14 13:01:59 +02:00
8609619a5d codec: impl AsMut for all Context wrappers 2016-12-03 01:43:30 +01:00
4df56b516f codec/parameters: impl AsRef for all codec::Context wrappers 2016-12-03 01:43:23 +01:00
2ed824aaac *: upgrade to 3.2
Fix errors when built with https://github.com/meh/rust-ffmpeg-sys/pull/35.
2016-11-27 23:16:47 +01:00
859c01f268 codec/encoder/video: add missing feature flag (quant_bias) 2016-05-20 14:08:32 +02:00
e4fcdad658 codec/encoder/video: add missing feature flag (motion_est) 2016-05-20 14:08:32 +02:00
meh
d2b6557fbc codec/encoder/audio: add open_with() constructor 2015-10-26 20:27:04 +01:00
meh
6bb6a806ed codec/encoder/video: add open_with() constructor 2015-10-26 20:26:21 +01:00
meh
306b9c6698 codec/packet: refactoring to allow zero-copy packet creation 2015-10-09 14:09:35 +02:00
meh
132c514e3f *: returning &mut Self from setters was an awful idea
Deref breaks things.
2015-10-04 03:21:52 +02:00
meh
e7cd9fd94f codec/encoder: set the medium if it's unknown 2015-10-01 23:34:59 +02:00
meh
8570e3a5b4 codec/encoder/video: add inline attributes 2015-10-01 20:40:17 +02:00
meh
f3d6f901be codec/encoder/video: add mb_lmin and mb_lmax writers 2015-10-01 20:39:50 +02:00
meh
1497c645be codec/encoder/video: also check width and height in encode 2015-10-01 01:28:56 +02:00
meh
3ba84fb7ea codec/encoder/video: check the passed frame is in the proper format 2015-09-27 20:30:44 +02:00
meh
e1e6e8cca7 codec/encoder/audio: check the passed frame is in the proper format 2015-09-27 20:30:14 +02:00
meh
510e8604b6 *: refactor setters to return self 2015-09-26 18:01:23 +02:00
meh
66284eb045 codec: add magic traits to get codecs by name and id 2015-09-25 21:33:08 +02:00
meh
2ca44d08d4 *: fix UB with CString usage 2015-09-22 02:44:13 +02:00
c8a95364a2 encoder/{audio,video}: add flush() methods` 2015-09-19 12:37:28 +02:00
de8585b24d codec/encoder: add set_max_bit_rate() 2015-09-18 21:44:35 +02:00
2366506e63 codec/encoder: rename set_rate() to set_bit_rate()
This commit serves the purpose to remove ambiguity:
- The decoder actually calls the getter for this field `bit_rate()`
- The audio decoder/encoder have methods called `{set_}rate()` for the _rate`
- The encoder/audio `set_rate()` shadows the encoder/mod `set_rate()`
2015-09-18 21:44:14 +02:00
meh
9736980b02 codec/context: make destructors safe 2015-09-17 17:33:31 +02:00
bc2a39a48b codec/encoder: add set_time_base()
The documentation [1] states: `encoding: MUST be set by user`.

[1]: https://ffmpeg.org/doxygen/trunk/structAVCodecContext.html#ab7bfeb9fa5840aac090e2b0bd0ef7589
2015-09-13 20:21:07 +02:00
91134301a5 encoder/video: add getter methods needed for video transcoding 2015-09-09 20:05:42 +02:00
29450c4260 {en,de}coder/audio: add frame_size() method 2015-09-08 19:11:18 +02:00
meh
f2fb08e491 util/dictionary: refactor and make more sound 2015-09-08 18:26:29 +02:00
meh
fbf5cd94eb codec: make lifetimes saner 2015-09-04 16:28:56 +02:00
a2979c828d encoder/audio: add getters for fields where setters exist 2015-09-02 16:15:02 +02:00
0e83f8a0c4 encoder/audio: add set_channels()
For this a method for `ChannelLayout` to retrieve the number of channels was
also added.
2015-08-31 22:59:35 +02:00
2d3b77f43b codec/encoder/audio: add set_channel_layout() 2015-08-30 16:39:00 +02:00
0d80d5e3de codec/encoder/audio: add set_format() 2015-08-30 16:38:32 +02:00
370890d1cf codec/encoder/audio: add set_rate() 2015-08-30 16:38:00 +02:00
40c13a7238 codec/encoder: remove deprecated set_time_base() 2015-08-30 16:26:26 +02:00
c867dd6259 codec: improve encoder state transitions
This commit improves the state transitions for the `codec::*` structs as
discussed in #7.
2015-08-29 21:19:14 +02:00
ee6004d05e codec: improve decoder state transitions
This commit improves the state transitions for the `codec::*` structs as
discussed in #7.
2015-08-29 21:08:31 +02:00
meh
62acd3ef02 *: use Into<Rational> instead of Rational for setters 2015-08-25 15:53:46 +02:00
meh
bb4263b7be util/rational: some more refactoring 2015-06-25 22:23:33 +02:00
meh
1e5d77816a *: update to 2.7 2015-06-19 01:04:49 +02:00
meh
d56ac34413 *: use is_null instead of == ptr::null() 2015-06-08 15:48:28 +02:00