Releases: rlaphoenix/pydvdcss
Releases · rlaphoenix/pydvdcss
v1.4.0
Added
- Added function
open_stream()
that calls thedvdcss_open_stream
function of the libdvdcss library. - Defined
dvdcss_stream_cb
,pf_seek
,pf_read
,pf_readv
, anddvdcss_open_stream
.
Changed
- Various structural and organisational changes to the repository, CI/CD, and more.
- Updated dependencies as far as I could while keeping support for actively supported versions of Python.
- Moved all documentation dependencies from dev to main group as optionals installed through the
docs
extra.
Removed
- Dropped support for Python 3.5, 3.6, and 3.7. This is to have support for the latest dependency versions.
- Removed all uses of poetry-dynamic-versioning as it's simply unnecessary.
v1.3.2
Added
- Added custom base exception
PyDvdCssException
which will be used for all custom pydvdcss exceptions.
Changed
- A custom exception
LibDvdCssNotFound
is now raised when a shared library.so
/.dll
was not found. - Define library prototypes directly instead of opening CFUNCTYPE functions. This reduces the amount of objects and
memory used up by each DvdCss() object.
Fixed
- Also check for local libdvdcss shared library
.so
files relative to the project.
v1.3.1
Fixed
- Fix no library found check, the local libdvdcss shared library
.so
/.dll
search set the dll path to the temporary
search path whether it existed or not, therefore if none of them ever existed it would still have finished with a
path set to thedll
variable, making the rest of the code think it found a library.
v1.3.0
Added
- Sphinx documentation to /docs and automated builds with ReadTheDocs at https://pydvdcss.readthedocs.io
- Added dunamai dependency for use in the Documentation.
- Added poetry-dynamic-versioning dependency for automating the package version listed in pyproject.
- The libdvdcss shared library
.so
/.dll
files are now also searched locally relative to the project.
Changed
- Exceptions raised when loading the library is now bubbled up instead of absorbed and ignored.
- Create buffer with a default of an empty byte-string in
read()
so if libdvdcss reads nothing, we getb''
instead
ofb'\x00' * size
. - Raise an IOError if libdvdcss read less than 0 bytes (an error result).
read()
now returns the read bytes instead of how many bytes were read.
Removed
- Removed leftover print() statement used during debugging.
Fixed
- Discard handle if libdvdcss returns a handle of
0
, returns-1
. - Fix ctype used for the handle, change from
c_long
toc_void_p
. - Remove
buffer
and thebuffer_len
check, always use a new buffer when reading. This is to avoid potentially taking
the previous buffer contents and overwriting it with < buffer size, resulting in the end bytes keeping the old data
instead of x00, or just no bytes at all there, or just the wrong entire buffer of data.
v1.2.0
Added
- Added support for Python 3.5.
- Added import shortcut for DvdCss class to the package
__init__
, allowingfrom pydvdcss import DvdCss
. - Added Type-hinting for parameters and returns, doc-strings were improved.
Changed
- Migrated from setuptools to Python Poetry.
set_verbosity()
now returns an integer value; -1 when Unsetting the cracking mode.open()
now raises a ValueError if you try opening a DVD device/target when one is already open.
Fixed
- Fixed memory leak by clearing the buffer in
close()
. - Fixed runtime error by ensuring the libdvdcss handle exists before attempting to close in
close()
.
v1.1.0
Changed
- Renamed PyDvdCss class to DvdCss and moved it from
__init__.py
todvdcss.py
, so that it isn't executed during
installation.
v1.0.7
Added
- Add error handling when loading the libdvdcss shared library.
v1.0.6
Added
- Added methods to set
DVDCSS_VERBOSE
andDVDCSS_METHOD
environment variables. - Reset
DVDCSS_VERBOSE
andDVDCSS_METHOD
on dispose.
v1.0.5
Fixed
- Disposed of open handle when trying to open a new one when one is already opened.