commit 64eaf15e892322d1c1cf28688ce4ef2c0341d06e6128c967604ac329357d1c4a Author: Steve Kowalik Date: Fri Jun 13 05:42:49 2025 +0000 - Switch to pyproject macros. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-av?expand=0&rev=35 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/av-11.0.0.tar.gz b/av-11.0.0.tar.gz new file mode 100644 index 0000000..b58b2e4 --- /dev/null +++ b/av-11.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48223f000a252070f8e700ff634bb7fb3aa1b7bc7e450373029fbdd6f369ac31 +size 3652129 diff --git a/av-13.1.0.tar.gz b/av-13.1.0.tar.gz new file mode 100644 index 0000000..93347eb --- /dev/null +++ b/av-13.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3da736c55847d8596eb8c26c60e036f193001db3bc5c10da8665622d906c17e +size 3957908 diff --git a/av-14.2.0.tar.gz b/av-14.2.0.tar.gz new file mode 100644 index 0000000..8e582c6 --- /dev/null +++ b/av-14.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:132b5d52ca262b97b0356e8f48cbbe54d0ac232107a722ab8cc8c0c19eafa17b +size 4063022 diff --git a/python-av.changes b/python-av.changes new file mode 100644 index 0000000..0c252d8 --- /dev/null +++ b/python-av.changes @@ -0,0 +1,336 @@ +------------------------------------------------------------------- +Fri Jun 13 05:35:08 UTC 2025 - Steve Kowalik + +- Switch to pyproject macros. + +------------------------------------------------------------------- +Tue Mar 25 01:37:52 UTC 2025 - Mia Herkt + +- Update to 14.2.0: + See https://github.com/PyAV-Org/PyAV/compare/v13.1.0...v14.2.0 + +------------------------------------------------------------------- +Tue Nov 19 15:35:30 UTC 2024 - Mia Herkt + +- Disable tests because most of them have to be skipped due to + network access or are broken on crippled FFmpeg +- Update to 13.1.0: +Features: + * Allow passing Python objects around using `Frame.opaque` and + `Packet.opaque` + * Allow extradata to be set by encoders + * Add getting ffmpeg version info string + +Fixes: + * Remove the `deprecation` module in anticipation of PEP 702. + * Add type stubs to previously unannotated API sections. + * Improve type stubs for both `mypy` and `mypy --strict`. + * Permit only setting `time_base` with a Fraction, as mypy is + unable to respect different types in getters vs setters. + * Declare `write_packet` function as const + +- Changes in 13.0.0: +Major: + * Drop FFmpeg 5, Support FFmpeg 7. + * Drop Python 3.8, Support Python 3.13. + * Disallow initializing an AudioLayout object with an int. + * Disallow accessing gop_size, timebase as a decoder + (Raised deprecation warning before). + * Remove `ticks_per_frame` property because it was deprecated + in FFmpeg. + +Features: + * Add AttachmentStream class. + * Add `best()` method to StreamContainer. + * Add `set_audio_frame_size()` method to Graph object. + * Add `nb_channels` property to AudioLayout object. + * Add `from_bytes()` method to VideoFrame object. + +Fixes: + * Fix VideoCC's repl breaking when `self._format` is None. + * Fix getting `pix_fmt` property when VideoCC's `self._format` + is None. + +- Changes in 12.3.0: +Features: + * Support libav's `av_log_set_level` + * Add Graph.link_nodes + * Add default codec properties + * Add supported_codecs property to OutputContainer + * Add text and dialogue property to AssSubtitle, + remove TextSubtitle + +Fixes: + * Fix segfault when calling subtitle_stream.decode() + * flushing subtitle decoder requires a new uninitialized packet + * Set default color range for VideoReformatter.format() + * Resampler: format, layout accepts `str` `int` too + +- Changes in 12.2.0: +Features: + * Add a `make_writable` method to `Frame` instances + gh#PyAV-Org/PyAV#1414. + * Use `av_guess_sample_aspect_ratio` to report sample and + display aspect ratios. + +Fixes: + * Fix a crash when assigning an `AudioLayout` to + `AudioCodecContext.layout` + gh#PyAV-Org/PyAV#1434. + * Remove a circular reference which caused `AudioSampler` to + occupy memory until garbage collected + gh#PyAV-Org/PyAV#1429. + * Fix more type stubs, remove incorrect `__init__.pyi`. + +- Changes in 12.1.0: +Features: + * Allow disabling logs, disable logs by default. + * Add bitstream filters + * Expose CodecContext flush_buffers + +Fixes: + * Fix type stubs, add missing type stubs. + * Add S12M_TIMECODE + * Subtitle.text now returns bytes + * Allow packet.duration to be writable + * Remove deprecated `VideoStream.frame_rate` + +- Changes in 12.0.0: +Major: + * Add type hints. + * Deprecate VideoCodecContext.gop_size for decoders + * Deprecate frame.index + +Features: + * Allow using pathlib.Path for av.open + * Add `max_b_frames` property to CodecContext + * Add `encode_lazy` method to CodecContext + * Add `color_range` to CodecContext/Frame + * Set `time_base` for AudioResampler + * Add support for ffmpeg's AVCodecContext::delay + * Add `color_primaries`, `color_trc`, `colorspace` to VideoStream + * Add `bits_per_coded_sample` to VideoCodecContext + * AssSubtitle.ass now returns as bytes + * Expose DISPLAYMATRIX side data + +Fixes: + * Convert deprecated Cython extension class properties to + decorator syntax + * Check None packet when setting time_base after decode + * Remove deprecated `Buffer.to_bytes` + * Remove deprecated `Packet.decode_one` + +------------------------------------------------------------------- +Tue Dec 5 17:34:56 UTC 2023 - Dirk Müller + +- update to 11.0.0: + * Add support for FFmpeg 6.0, drop support for FFmpeg < 5.0. + * Add support for Python 3.12, drop support for Python < 3.8. + * Add support for the ENCODER_FLUSH encoder flag + * Add VideoFrame ndarray operations for yuv444p/yuvj444p formats + * Add setters for AVFrame.dts, AVPacket.is_keyframe and + AVPacket.is_corrupt (:issue:`1179`). + * Fix build using Cython 3 (:issue:`1140`). + * Populate new streams with codec parameters (:issue:`1044`). + * Explicitly set python_requires to avoid installing on + incompatible Python (:issue:`1057`). + * Make AudioFifo.__repr__ safe before the first frame + * Guard input container members against use after closes + +------------------------------------------------------------------- +Sun Aug 13 19:36:51 UTC 2023 - Dirk Müller + +- restrict to older Cython bindings version + +------------------------------------------------------------------- +Wed Mar 29 04:51:43 UTC 2023 - Mia Herkt + +- Require FFmpeg < 5 for now since tests are failing with recent + versions + +------------------------------------------------------------------- +Wed Nov 30 13:43:36 UTC 2022 - Guillaume GARDET + +- Update to 10.0.0: + * Add support for FFmpeg 5.0 and 5.1 (:issue:`817`). + * Drop support for FFmpeg < 4.3. + * Deprecate CodecContext.time_base for decoders (:issue:`966`). + * Deprecate VideoStream.framerate and VideoStream.rate (:issue:`1005`). + * Stop proxying Codec from Stream instances (:issue:`1037`). + * Add VideoFrame ndarray operations for gbrp formats (:issue:`986`). + * Add VideoFrame ndarray operations for gbrpf32 formats (:issue:`1028`). + * Add VideoFrame ndarray operations for nv12 format (:issue:`996`). + * Fix conversion to numpy array for multi-byte formats (:issue:`981`). + * Safely iterate over filter pads (:issue:`1000`). +- Drop upstream patch: + * python-av-ffmpeg5-compatibility.patch + +------------------------------------------------------------------- +Mon Aug 8 21:41:40 UTC 2022 - Atri Bhattacharya + +- Add python-av-ffmpeg5-compatibility.patch to drop references to + symbols in ffmpeg4 and dropped from ffmpeg5 to allow building + against ffmpeg5; patch taken from upstream git commit. + +------------------------------------------------------------------- +Mon May 2 21:45:05 UTC 2022 - Ferdinand Thiessen + +- Update to version 9.2.0 + * Add an io_open argument to av.open for multi-file custom I/O. + * Add support for AV_FRAME_DATA_SEI_UNREGISTERED + * Ship .pxd files to allow other libraries to cimport av + * Fix an ImportError when using Python 3.8/3.9 +- Update to version 9.1.0 + * Add VideoFrame ndarray operations for rgb48be, rgb48le, + rgb64be, rgb64le pixel formats. + * Add VideoFrame ndarray operations for gray16be, + gray16le pixel formats + * Make it possible to use av.open() on a pipe + * Use the "ASS without timings" format when decoding subtitles. + * Fix crash when closing an output container an encountering an I/O error + * Fix crash when probing corrupt raw format files + * Fix crash when manipulating streams with an unknown codec + * Remove obsolete KEEP_SIDE_DATA and MP4A_LATM flags which are + gone in FFmpeg 5.0. + * Deprecate to_bytes() method of Packet, Plane and SideData, + use bytes(packet) instead. +- Update to version 9.0.2 + * Fix framerate when writing video with FFmpeg 4.4 +- Update to version 9.0.0 + * Re-implement AudioResampler with aformat and buffersink + AudioResampler.resample() now returns a list of frames. + * Remove deprecated methods: AudioFrame.to_nd_array, + VideoFrame.to_nd_array and Stream.seek. + * Fix VideoFrame.to_image with height & width + * Fix setting Stream time_base + * Replace deprecated av_init_packet with av_packet_alloc + * Validate pixel format in VideoCodecContext.pix_fmt setter + * Fix AudioFrame ndarray conversion endianness + * Improve time_base support with filters + * Allow flushing filters by sending None + * Avoid unnecessary vsnprintf() calls in log_callback() + * Make Frame.from_ndarray raise ValueError instead of AssertionError. + +------------------------------------------------------------------- +Tue Jan 11 03:17:08 UTC 2022 - Steve Kowalik + +- Update to 8.1.0: + * Update FFmpeg to 4.3.2 for the binary wheels. + * Provide binary wheels for Python 3.10 (:issue:`820`). + * Stop providing binary wheels for end-of-life Python 3.6. + * Fix args order in Frame.__repr__ (:issue:`749`). + * Fix documentation to remove unavailable QUIET log level (:issue:`719`). + * Expose codec_context.codec_tag (:issue:`741`). + * Add example for encoding with a custom PTS (:issue:`725`). + * Use av_packet_rescale_ts in Packet._rebase_time() (:issue:`737`). + * Do not hardcode errno values in test suite (:issue:`729`). + * Use av_guess_format for output container format (:issue:`691`). + * Fix setting CodecContext.extradata (:issue:`658`, :issue:`740`). + * Fix documentation code block indentation (:issue:`783`). + * Fix link to Conda installation instructions (:issue:`782`). + * Export AudioStream from av.audio (:issue:`775`). + * Fix setting CodecContext.extradata (:issue:`801`). + +------------------------------------------------------------------- +Tue Feb 23 18:33:31 UTC 2021 - Ben Greiner + +- Update to 8.0.3 + * packaging and formatting (no relevant changes for openSUSE) +- Skip python36 build: With NumPy 1.20, python36-numpy is no + longer available in Tumbleweed (NEP 29) + +------------------------------------------------------------------- +Sat Aug 15 08:35:33 UTC 2020 - John Vandenberg + +- Add missing runtime dependency on numpy +- Require ffmpeg 4.3 +- Re-activate test suite, removing nose + +------------------------------------------------------------------- +Wed Jun 24 01:24:35 UTC 2020 - Steve Kowalik + +- Update to 8.0.2: + * v8.0.2 + + Minor: + - Enable GnuTLS support in the FFmpeg build used for binary wheels (:issue:`675`). + - Make binary wheels compatible with Mac OS X 10.9+ (:issue:`662`). + - Drop Python 2.x buffer protocol code. + - Remove references to previous repository location. + * v8.0.1 + + Minor: + - Enable additional FFmpeg features in the binary wheels. + - Use os.fsencode for both input and output file names (:issue:`600`). + * v8.0.0 + + Major: + - Drop support for Python 2 and Python 3.4. + - Provide binary wheels for Linux, Mac and Windows. + + Minor: + - Remove shims for obsolete FFmpeg versions (:issue:`588`). + - Add yuvj420p format for :meth:`VideoFrame.from_ndarray` and :meth:`VideoFrame.to_ndarray` (:issue:`583`). + - Add support for palette formats in :meth:`VideoFrame.from_ndarray` and :meth:`VideoFrame.to_ndarray` (:issue:`601`). + - Fix Python 3.8 deprecation warning related to abstract base classes (:issue:`616`). + - Remove ICC profiles from logos (:issue:`622`). + + Fixes: + - Avoid infinite timeout in :func:`av.open` (:issue:`589`). + +------------------------------------------------------------------- +Wed May 27 09:36:11 UTC 2020 - Petr Gajdos + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Sat Mar 14 08:45:07 UTC 2020 - Tomáš Chvátal + +- Fix build without py2 available + +------------------------------------------------------------------- +Mon Feb 24 01:48:27 UTC 2020 - steven.kowalik@suse.com + +- Update version to 7.0.1: + + Major: + * Drop support for FFmpeg < 4.0. (:issue:`559`) + * Introduce per-error exceptions, and mirror the builtin exception heirarchy. It is recommended to examine your error handling code, as common FFmpeg errors will result in ValueError baseclasses now. (:issue:`563`) + * Data stream's encode and decode return empty lists instead of none allowing common API use patterns with data streams. + * Remove whence parameter from :meth:`InputContainer.seek` as non-time seeking doesn't seem to actually be supported by any FFmpeg formats. + + Minor: + * Users can disable the logging system to avoid lockups in sub-interpreters. (:issue:`545`) + * Filters support audio in general, and a new :meth:`.Graph.add_abuffer`. (:issue:`562`) + * :func:`av.open` supports timeout parameters. (:issue:`480` and :issue:`316`) + * Expose :attr:`Stream.base_rate` and :attr:`Stream.guessed_rate`. (:issue:`564`) + * :meth:`.VideoFrame.reformat` can specify interpolation. + * Expose many sets of flags. + + Fixes: + * Removed deprecated AV_FRAME_DATA_QP_TABLE_* enums. (:issue:`607`) + * Fix typing in :meth:`.CodecContext.parse` and make it more robust. + * Fix wrong attribute in ByteSource. (:issue:`340`) + * Remove exception that would break audio remuxing. (:issue:`537`) + * Log messages include last FFmpeg error log in more helpful way. + * Use AVCodecParameters so FFmpeg doesn't complain. (:issue:`222`) + +------------------------------------------------------------------- +Thu Jul 25 11:52:20 UTC 2019 - pgajdos@suse.com + +- version update to 6.2.0 + * Allow :meth:`av.open` to be used as a context manager. + * Fix compatibility with PyPy, the full test suite now passes. (:issue:`130`) + * Add :meth:`.InputContainer.close` method. (:issue:`317`, :issue:`456`) + * Ensure audio output gets flushes when using a FIFO. (:issue:`511`) + * Make Python I/O buffer size configurable. (:issue:`512`) + * Make :class:`.AudioFrame` and :class:`VideoFrame` more garbage-collector + friendly by breaking a reference cycle. (:issue:`517`) + +------------------------------------------------------------------- +Tue Apr 16 10:10:03 UTC 2019 - Tomáš Chvátal + +- Fix the spec file to adhere requirements +- Do not use service and fetch files from pypi + +------------------------------------------------------------------- +Sun Apr 14 18:55:53 UTC 2019 - Antonio Larrosa + +- Moved scratchpad (examples) to share dir + +------------------------------------------------------------------- +Thu Mar 21 13:17:54 UTC 2019 - Adrian Schröter + +- initial package of version 6.1.2 diff --git a/python-av.spec b/python-av.spec new file mode 100644 index 0000000..03ca365 --- /dev/null +++ b/python-av.spec @@ -0,0 +1,73 @@ +# +# spec file for package python-av +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-av +Version: 14.2.0 +Release: 0 +Summary: Python bindings for FFmpeg's libraries +License: BSD-3-Clause +URL: https://github.com/PyAV-Org/PyAV +Source: https://files.pythonhosted.org/packages/source/a/av/av-%{version}.tar.gz +BuildRequires: %{python_module Cython} +BuildRequires: %{python_module devel >= 3.8} +BuildRequires: %{python_module numpy} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: pkgconfig +BuildRequires: python-rpm-macros +BuildRequires: (libavutil-devel >= 6 with libavutil-devel < 8) +BuildRequires: pkgconfig(libavdevice) +BuildRequires: pkgconfig(libavfilter) +BuildRequires: pkgconfig(libavutil) +Requires: python-numpy +Requires(post): update-alternatives +Requires(postun): update-alternatives +%python_subpackages + +%description +Pythonic bindings for FFmpeg's libraries. + +%prep +%autosetup -p1 -n av-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_clone -a %{buildroot}%{_bindir}/pyav +%python_expand %fdupes %{buildroot}%{$python_sitearch} +%python_expand rm %{buildroot}%{$python_sitearch}/av/filter/*.{c,h} + +%post +%python_install_alternative pyav + +%postun +%python_uninstall_alternative pyav + +%files %{python_files} +%license LICENSE.txt +%doc README.md +%python_alternative %{_bindir}/pyav +%{python_sitearch}/av +%{python_sitearch}/av-%{version}.dist-info + +%changelog