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
d2b6557fbc
codec/encoder/audio: add open_with() constructor
2015-10-26 20:27:04 +01:00
6bb6a806ed
codec/encoder/video: add open_with() constructor
2015-10-26 20:26:21 +01:00
306b9c6698
codec/packet: refactoring to allow zero-copy packet creation
2015-10-09 14:09:35 +02:00
132c514e3f
*: returning &mut Self from setters was an awful idea
...
Deref breaks things.
2015-10-04 03:21:52 +02:00
e7cd9fd94f
codec/encoder: set the medium if it's unknown
2015-10-01 23:34:59 +02:00
8570e3a5b4
codec/encoder/video: add inline attributes
2015-10-01 20:40:17 +02:00
f3d6f901be
codec/encoder/video: add mb_lmin and mb_lmax writers
2015-10-01 20:39:50 +02:00
1497c645be
codec/encoder/video: also check width and height in encode
2015-10-01 01:28:56 +02:00
3ba84fb7ea
codec/encoder/video: check the passed frame is in the proper format
2015-09-27 20:30:44 +02:00
e1e6e8cca7
codec/encoder/audio: check the passed frame is in the proper format
2015-09-27 20:30:14 +02:00
510e8604b6
*: refactor setters to return self
2015-09-26 18:01:23 +02:00
66284eb045
codec: add magic traits to get codecs by name and id
2015-09-25 21:33:08 +02:00
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
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
f2fb08e491
util/dictionary: refactor and make more sound
2015-09-08 18:26:29 +02:00
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
62acd3ef02
*: use Into<Rational> instead of Rational for setters
2015-08-25 15:53:46 +02:00
bb4263b7be
util/rational: some more refactoring
2015-06-25 22:23:33 +02:00
1e5d77816a
*: update to 2.7
2015-06-19 01:04:49 +02:00
d56ac34413
*: use is_null instead of == ptr::null()
2015-06-08 15:48:28 +02:00