606847cc50
codec: introduce Parameters
...
As of ffmpeg 3.1, a new `AVCodecParameters` type and related API introduced.
This commit contains minimal changes to support new API.
2016-12-03 01:41:29 +01:00
e1c132bd08
codec/packet: add set_pts/dts
methods
2016-11-29 01:07:26 +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
f5941792f9
codec/id: fix voxware feature name
2016-03-30 22:51:44 +02:00
b6c92b2805
crate: check headers for ifdefs
2015-12-03 18:23:06 +01: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
2cf4da707a
codec/packet: unify duration()
to return i64
...
As all other instances of timestamps (duration/pts/dts)
2015-10-25 22:33:22 +01:00
01b5f74fb0
codec/subtitle: refactor Rect handling
2015-10-25 22:32:42 +01:00
5677b0ee6e
codec/packet: fix SideDataIter.size_hint
2015-10-25 22:32:02 +01:00
ac0ef697cf
codec/decoder/opened: add flush
method
2015-10-14 18:24:42 +02:00
8b6e41f68c
codec/packet/borrow: remove unused imports
2015-10-09 17:50:15 +02:00
306b9c6698
codec/packet: refactoring to allow zero-copy packet creation
2015-10-09 14:09:35 +02:00
7e2ebcf36b
codec/packet: use size to know if a packet is empty
2015-10-07 16:20:46 +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
14c7586030
codec/packet: add inline attributes
2015-10-01 20:41:42 +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
5883148188
codec/packet: make it Sync
2015-09-29 01:11:36 +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
d93e465f2b
codec/packet: avoid segfault with empty packet writing
2015-09-27 04:47:00 +02:00
510e8604b6
*: refactor setters to return self
2015-09-26 18:01:23 +02:00
4747a5a123
codec/packet: style fix
2015-09-26 17:36:27 +02:00
66284eb045
codec: add magic traits to get codecs by name and id
2015-09-25 21:33:08 +02:00
1fc224fbae
codec/packet: add data access and constructor
2015-09-22 02:44:37 +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
cc054229cf
decoder/{audio,video}: add max_bit_rate()
2015-09-18 21:44:58 +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
34ff7bafbf
codec/decoder: add time_base()
method
2015-09-18 21:41:45 +02:00
9736980b02
codec/context: make destructors safe
2015-09-17 17:33:31 +02:00
19548810dd
*: update to 2.8
2015-09-15 20:53:49 +02:00
79ecba2fad
codec/context: add set_flags()
method
2015-09-14 13:55:19 +02:00
46f198033f
codec: add Flags
(CODEC_FLAG_*
)
2015-09-14 13:53:55 +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
a84b30b3f0
codec/audio: fix ChannelLayoutIter.best()
...
Somehow the condition `cur.channels() > cur.channels()` slipped in which will
always be `false`. The correct condition is `cur.channels() > acc.channels()`.
2015-09-12 09:24:26 +02:00
c8a38a926f
codec/audio: implement ChannelLayoutIter.best()
...
Is some cases the decoder channel layout is not supported by the selected
encoder. A selection from the channel layouts supported by the encoder is
needed. For this the method `best()` is introduced.
2015-09-11 18:26:40 +02:00
91134301a5
encoder/video: add getter methods needed for video transcoding
2015-09-09 20:05:42 +02:00
45b1d9ab9b
codec/subtitle: remove unneeded import
2015-09-09 19:39:04 +02:00
8d8e2aa94e
codec/subtitle: properly use Option for pts handling
2015-09-09 16:45:16 +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
1f80007e5e
format: split input and output formats
2015-09-04 16:30:19 +02:00
fbf5cd94eb
codec: make lifetimes saner
2015-09-04 16:28:56 +02:00