Changelog¶
We are operating with semantic versioning <http://semver.org/>. However,
we are using v0.x.y as our heavy development period, and will increment x
to signal a major change (i.e. backwards incompatibilities) and increment
y
as a minor change (i.e. backwards compatible features).
v0.5.3¶
Minor:
- Expose
VideoFrame.pict_type
asPictureType
enum. (#402) - Expose
Codec.video_rates
andCodec.audio_rates
. (#381)
Patch:
- Fix
Packet.time_base
handling during flush. (#398) VideoFrame.reformat()
can throw exceptions when requested colorspace transforms aren’t possible.- Wrapping the stream object used to overwrite the
pix_fmt
attribute. (#390)
Runtime:
- Deprecate
VideoFrame.ptr
in favour ofVideoFrame.buffer_ptr
. - Deprecate
Plane.update_buffer()
andPacket.update_buffer
in favour ofPlane.update()
. (#407) - Deprecate
Plane.update_from_string()
in favour ofPlane.update()
. (#407) - Deprecate
AudioFrame.to_nd_array()
andVideoFrame.to_nd_array()
in favour ofAudioFrame.to_ndarray()
andVideoFrame.to_ndarray()
. (#404)
Build:
- CI covers more cases, including macOS. (#373 and #399)
- Fix many compilation warnings. (#379, #380, #387, and #388)
Docs:
v0.5.2¶
Build:
- Fixed Windows build, which broke in v0.5.1.
- Compiler checks are not cached by default. This behaviour is retained if you
source scripts/activate.sh
to develop PyAV. (#256) - Changed to
PYAV_SETUP_REFLECT_DEBUG=1
fromPYAV_DEBUG_BUILD=1
.
v0.5.1¶
Build:
- Set
PYAV_DEBUG_BUILD=1
to force a verbose reflection (mainly for being installed viapip
, which is why this is worth a release).
v0.5.0¶
Major:
- Dropped support for Libav in general. (#110)
- No longer uses libavresample.
Minor:
av.open
hascontainer_options
andstream_options
.Frame
includespts
inrepr
.
Fixes:
v0.4.1¶
Minor:
- Add Frame.interlaced_frame to indicate if the frame is interlaced. (#327 by @MPGek)
- Add FLTP support to
Frame.to_nd_array()
. (#288 by @rawler) - Expose
CodecContext.extradata
for codecs that have extra data, e.g. Huffman tables. (#287 by @adavoudi)
Fixes:
v0.4.0¶
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
andAudioResampler
will raiseValueError
if input frames inconsistantpts
.time_base
use has been revisited across the codebase, and may not be converted bettweenStream.time_base
andCodecContext.time_base
at the same times in the transcoding pipeline.CodecContext.rate
has been removed, but proxied toVideoCodecContext.framerate
andAudioCodecContext.sample_rate
. The definition is effectively inverted from the old one (i.e. for 24fps it used to be1/24
and is now24/1
).- Fractions (e.g.
time_base
,rate
) will beNone
if they are invalid. InputContainer.seek
andStream.seek
will raise TypeError if given a float, when previously they converted it from seconds.
Minor:
- Added
Packet.is_keyframe
andPacket.is_corrupt
. (#226) - Many more
time_base
,pts
and other attributes are writeable. Option
exposes much more of the API (but not get/set). (#243)- Expose metadata encoding controls. (#250)
- Expose
CodecContext.skip_frame
. (#259)
Fixes:
v0.3.3¶
Fixes:
v0.3.2¶
Minor:
- Expose basics of avfilter via
Filter
. - Add
Packet.time_base
. - Add
AudioFrame.to_nd_array
to match same onVideoFrame
. - Update Windows build process.
Fixes:
- Further improvements to the logging system. (#128)
v0.3.1¶
Minor:
av.logging.set_log_after_shutdown
renamed toset_print_after_shutdown
- Repeating log messages will be skipped, much like ffmpeg’s does by default
Fixes:
v0.3.0¶
Major:
- Python IO can write
- Improve build system to use Python’s C compiler for function detection; build system is much more robust
- MSVC support. (#115 by @vidartf)
- Continuous integration on Windows via AppVeyor. (by @vidartf)
Minor:
- Add
Packet.decode_one()
to skip packet flushing for codecs that would otherwise error StreamContainer
for easier selection of streams- Add buffer protocol support to Packet
Fixes:
- Fix bug when using Python IO on files larger than 2GB. (#109 by @xxr3376)
- Fix usage of changed Pillow API
Known Issues:
- VideoFrame is suspected to leak memory in narrow cases on Linux. (#128)
v0.2.4¶
v0.2.3¶
Warning
There was an issue with the PyPI distribution in which it required Cython to be installed.
Major:
- Python IO.
- Agressively releases GIL
- Add experimental Windows build. (#84)
Minor:
- Several new Stream/Packet/Frame attributes
Fixes:
v0.2.2¶
- Cythonization in setup.py; mostly a development issue.
- Fix for av.InputContainer.size over 2**31.
v0.2.1¶
- Python 3 compatibility!
- Build process fails if missing libraries.
- Fix linking of libavdevices.
v0.2.0¶
Warning
This version has an issue linking in libavdevices, and very likely will not work for you.
It sure has been a long time since this was released, and there was a lot of arbitrary changes that come with us wrapping an API as we are discovering it. Changes include, but are not limited to:
- Audio encoding.
- Exposing planes and buffers.
- Descriptors for channel layouts, video and audio formats, etc..
- Seeking.
- Many many more properties on all of the objects.
- Device support (e.g. webcams).
v0.1.0¶
- FIRST PUBLIC RELEASE!
- Container/video/audio formats.
- Audio layouts.
- Decoding video/audio/subtitles.
- Encoding video.
- Audio FIFOs and resampling.