------
Major:
- ``CodecContext`` has taken over encoding/decoding, and can work in isolation
of streams/containers.
- ``Stream.encode`` returns a list of packets, instead of a single packet.
- ``AudioFifo`` and ``AudioResampler`` will raise ``ValueError`` if input frames
inconsistent ``pts``.
- ``time_base`` use has been revisited across the codebase, and may not be converted
between ``Stream.time_base`` and ``CodecContext.time_base`` at the same times
in the transcoding pipeline.
- ``CodecContext.rate`` has been removed, but proxied to ``VideoCodecContext.framerate``
and ``AudioCodecContext.sample_rate``. The definition is effectively inverted from
the old one (i.e. for 24fps it used to be ``1/24`` and is now ``24/1``).
- Fractions (e.g. ``time_base``, ``rate``) will be ``None`` if they are invalid.
- ``InputContainer.seek`` and ``Stream.seek`` will raise TypeError if given
a float, when previously they converted it from seconds.
Minor:
- Added ``Packet.is_keyframe`` and ``Packet.is_corrupt``.
(:issue:`226`)
- Many more ``time_base``, ``pts`` and other attributes are writable.
- ``Option`` exposes much more of the API (but not get/set).
(:issue:`243`)
- Expose metadata encoding controls.
(:issue:`250`)
- Expose ``CodecContext.skip_frame``.
(:issue:`259`)
Patch:
- Build doesn't fail if you don't have git installed.
(:issue:`184`)
- Developer environment works better with Python3.
(:issue:`248`)
- Fix Container deallocation resulting in segfaults.
(:issue:`253`)