diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-10 04:46:32 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 04:46:32 +0000 |
commit | 11eba2e471c204be8dd3c630c18286dcf45b7aec (patch) | |
tree | 00060d53670274bfce1ae78202d4b171d668a943 | |
parent | 439dd759652c9a57233e09b6b3ddc8a96447659c (diff) |
automatic import of python-pvsfuncopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pvsfunc.spec | 498 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 500 insertions, 0 deletions
@@ -0,0 +1 @@ +/pvsfunc-4.4.0.tar.gz diff --git a/python-pvsfunc.spec b/python-pvsfunc.spec new file mode 100644 index 0000000..6d2e3ac --- /dev/null +++ b/python-pvsfunc.spec @@ -0,0 +1,498 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pvsfunc +Version: 4.4.0 +Release: 1 +Summary: PHOENiX's compilation of VapourSynth Script's and Functions +License: GPL-3.0-or-later +URL: https://github.com/rlaphoenix/pvsfunc +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2c/f1/f576f1011fbfaa171b95f504cc68dfb5b344ee408b602b1a93f6e047a009/pvsfunc-4.4.0.tar.gz +BuildArch: noarch + +Requires: python3-pymediainfo +Requires: python3-pyd2v +Requires: python3-more-itertools + +%description +# pvsfunc + +pvsfunc (PHOENiX's VapourSynth Functions) is my compilation of VapourSynth Scripts, Functions, and Helpers. + +[](https://github.com/rlaphoenix/pvsfunc/actions?query=workflow%3A%22ci%22) +[](https://github.com/rlaphoenix/pvsfunc/blob/master/LICENSE) +[](https://deepsource.io/gh/rlaphoenix/pvsfunc) +[](https://github.com/rlaphoenix/pvsfunc/issues) +[](https://makeapullrequest.com) + +## Installation + +Install [VapourSynth] first! (this is different to the pypi/pip `vapoursynth` python wrapper!) + + pip install --user pvsfunc + +Done! However, there are further dependencies listed below that you may need to install depending on the classes you +intend to use, and your use-case. Don't forget to install them if needed! + + [VapourSynth]: <https://www.vapoursynth.com/doc/installation.html> + +## Building + +Building from source requires [Poetry](https://python-poetry.org). +Simply run `poetry install` or `poetry build` for distribution wheel and source packages. + +## License + +This project is released under the GNU GENERAL PUBLIC LICENSE Version 3 (GPLv3) license. +Please read and agree to the license before use, it can be found in the [LICENSE](LICENSE) file. + +* * * + +Below is information about the projects included in pvsfunc that are available to use. Don't take it as full +documentation as that is being worked on. + +## PD2V + +Convenience class for working with DGIndex D2V project files (MPEG-1/2 videos). Includes source loading, frame +matching, deinterlacing, and more. + +### Example Usage + +```py +from pvsfunc import PD2V +from functools import partial +from havsfunc import QTGMC + +clip = PD2V(r"C:\Users\john\Videos\s01e01.d2v", verbose=True).\ + ceil().\ + deinterlace( + kernel=partial(QTGMC, FPSDivisor=2, Preset="Very Slow"), + verbose=True + ).\ + clip + +# ... any manual changes to clip + +clip.set_output() +``` + +The above example will load a D2V project file located at `C:\Users\john\Videos\s01e01.d2v` in Verbose mode. +Verbose mode will display extra information during the PD2V use. + +It then runs `ceil()` which frame-matches the progressive sections of the video with the interlaced sections by +duplicating the progressive frames (instead of interlacing). + +It then deinterlaces the interlaced sections of the video with QTGMC as the kernel. The Kernel must have a `tff` or +`TFF` argument to be compatible, but the field order should not be manually set by the user. + +Finally, it takes the clip and set's it for VapourSynth output. + +### Dependencies + +- [d2vsource] (core.d2v) VapourSynth plugin +- [DGIndex] v1.5.8 or newer +- [mkvextract] Only required if you plan on providing non demuxed streams (e.g., mp4, mkv) + +To install [d2vsource] it's as simple as `vsrepo install d2vsource` on Windows. Other Operating System user's know the +drill, go check your package repository's or compile it yourself. + +Make sure [DGIndex] and [mkvextract] is available on your environment path and has execution permissions. Note Linux +Users: Add to system profile path, not terminal/rc path. DGIndex is Windows-only but is supported if you install Wine. + +## PLS + +Convenience class for working with L-SMASH-WORKS LWI project files. Includes source loading and deinterlacing. +More features are to be implemented in the future once a Python-based LWI project parser is available. + +Refer to PD2Vs example usage as it's very similar to how PLS is used. + +### Dependencies + +- [lsmash] (core.lsmas) VapourSynth plugin +- [mkvmerge] Only required if input file has a container-set frame rate that differs to the encoded frame rate + +To install [lsmash] it's as simple as `vsrepo install lsmas` on Windows. Other Operating System user's know the drill, +go check your package repository's or compile it yourself. + +Make sure [mkvmerge] is available on your environment path and has execution permissions. Note Linux Users: Add to +system profile path, not terminal/rc path. + +## PDebox + +Lightweight class to apply de-boxing based on an output aspect-ratio. Similar scripts would annoyingly want you to +just crop in yourself which is incredibly annoying. + +## PDecimate + +Decimate (delete) frames in a specified pattern using cycle and offsets. This is typically used for Inverse-Telecine +purposes. + +Decimation may often be done for IVTC purposes to remove constant pattern pulldown frames. + +## PKernel + +Kernel storage class for any custom Deinterlacing kernels I'm working on or tinkering with that you may want to use. +Just know that they are most likely not the type of deinterlacing you may expect, as it's generally a playground for +looking into strange tactics of deinterlacing. + +### VoidWeave + +VoidWeave is a deinterlacing method involving in-painting with machine-learning. + +It takes footage and separates the weaved fields so that each field is full-height with the missing data of the field +being 255 RGB green instead of empty/black. The in-painting machine-learning system would then in-paint the missing +data wherever it finds the 255 RGB Green pixels. It works quite well as YUV 4:2:0 DVD data doesn't seem to ever reach +255 green though it does get close, but never quite 255. + +I tested it on a Live Action DVD and the results were honestly outstanding! The time it took to run the in-painting +was about the same as QTGMC on Very Slow, with similar results! I think where this method may really shine is with +Cartoon/Animated sources as QTGMC does not do them well. + +It all still requires a lot more testing, but it looks like it could be a really nice method! Especially now that I've +learned Disney has also been working on it around the same tim, back in 2020 :P + + [d2vsource]: https://github.com/dwbuiten/d2vsource + [DGIndex]: http://rationalqm.us/dgmpgdec/dgmpgdec.html + [mkvextract]: https://mkvtoolnix.download + [mkvmerge]: https://mkvtoolnix.download + [lsmash]: https://github.com/VFR-maniac/L-SMASH-Works + + +%package -n python3-pvsfunc +Summary: PHOENiX's compilation of VapourSynth Script's and Functions +Provides: python-pvsfunc +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pvsfunc +# pvsfunc + +pvsfunc (PHOENiX's VapourSynth Functions) is my compilation of VapourSynth Scripts, Functions, and Helpers. + +[](https://github.com/rlaphoenix/pvsfunc/actions?query=workflow%3A%22ci%22) +[](https://github.com/rlaphoenix/pvsfunc/blob/master/LICENSE) +[](https://deepsource.io/gh/rlaphoenix/pvsfunc) +[](https://github.com/rlaphoenix/pvsfunc/issues) +[](https://makeapullrequest.com) + +## Installation + +Install [VapourSynth] first! (this is different to the pypi/pip `vapoursynth` python wrapper!) + + pip install --user pvsfunc + +Done! However, there are further dependencies listed below that you may need to install depending on the classes you +intend to use, and your use-case. Don't forget to install them if needed! + + [VapourSynth]: <https://www.vapoursynth.com/doc/installation.html> + +## Building + +Building from source requires [Poetry](https://python-poetry.org). +Simply run `poetry install` or `poetry build` for distribution wheel and source packages. + +## License + +This project is released under the GNU GENERAL PUBLIC LICENSE Version 3 (GPLv3) license. +Please read and agree to the license before use, it can be found in the [LICENSE](LICENSE) file. + +* * * + +Below is information about the projects included in pvsfunc that are available to use. Don't take it as full +documentation as that is being worked on. + +## PD2V + +Convenience class for working with DGIndex D2V project files (MPEG-1/2 videos). Includes source loading, frame +matching, deinterlacing, and more. + +### Example Usage + +```py +from pvsfunc import PD2V +from functools import partial +from havsfunc import QTGMC + +clip = PD2V(r"C:\Users\john\Videos\s01e01.d2v", verbose=True).\ + ceil().\ + deinterlace( + kernel=partial(QTGMC, FPSDivisor=2, Preset="Very Slow"), + verbose=True + ).\ + clip + +# ... any manual changes to clip + +clip.set_output() +``` + +The above example will load a D2V project file located at `C:\Users\john\Videos\s01e01.d2v` in Verbose mode. +Verbose mode will display extra information during the PD2V use. + +It then runs `ceil()` which frame-matches the progressive sections of the video with the interlaced sections by +duplicating the progressive frames (instead of interlacing). + +It then deinterlaces the interlaced sections of the video with QTGMC as the kernel. The Kernel must have a `tff` or +`TFF` argument to be compatible, but the field order should not be manually set by the user. + +Finally, it takes the clip and set's it for VapourSynth output. + +### Dependencies + +- [d2vsource] (core.d2v) VapourSynth plugin +- [DGIndex] v1.5.8 or newer +- [mkvextract] Only required if you plan on providing non demuxed streams (e.g., mp4, mkv) + +To install [d2vsource] it's as simple as `vsrepo install d2vsource` on Windows. Other Operating System user's know the +drill, go check your package repository's or compile it yourself. + +Make sure [DGIndex] and [mkvextract] is available on your environment path and has execution permissions. Note Linux +Users: Add to system profile path, not terminal/rc path. DGIndex is Windows-only but is supported if you install Wine. + +## PLS + +Convenience class for working with L-SMASH-WORKS LWI project files. Includes source loading and deinterlacing. +More features are to be implemented in the future once a Python-based LWI project parser is available. + +Refer to PD2Vs example usage as it's very similar to how PLS is used. + +### Dependencies + +- [lsmash] (core.lsmas) VapourSynth plugin +- [mkvmerge] Only required if input file has a container-set frame rate that differs to the encoded frame rate + +To install [lsmash] it's as simple as `vsrepo install lsmas` on Windows. Other Operating System user's know the drill, +go check your package repository's or compile it yourself. + +Make sure [mkvmerge] is available on your environment path and has execution permissions. Note Linux Users: Add to +system profile path, not terminal/rc path. + +## PDebox + +Lightweight class to apply de-boxing based on an output aspect-ratio. Similar scripts would annoyingly want you to +just crop in yourself which is incredibly annoying. + +## PDecimate + +Decimate (delete) frames in a specified pattern using cycle and offsets. This is typically used for Inverse-Telecine +purposes. + +Decimation may often be done for IVTC purposes to remove constant pattern pulldown frames. + +## PKernel + +Kernel storage class for any custom Deinterlacing kernels I'm working on or tinkering with that you may want to use. +Just know that they are most likely not the type of deinterlacing you may expect, as it's generally a playground for +looking into strange tactics of deinterlacing. + +### VoidWeave + +VoidWeave is a deinterlacing method involving in-painting with machine-learning. + +It takes footage and separates the weaved fields so that each field is full-height with the missing data of the field +being 255 RGB green instead of empty/black. The in-painting machine-learning system would then in-paint the missing +data wherever it finds the 255 RGB Green pixels. It works quite well as YUV 4:2:0 DVD data doesn't seem to ever reach +255 green though it does get close, but never quite 255. + +I tested it on a Live Action DVD and the results were honestly outstanding! The time it took to run the in-painting +was about the same as QTGMC on Very Slow, with similar results! I think where this method may really shine is with +Cartoon/Animated sources as QTGMC does not do them well. + +It all still requires a lot more testing, but it looks like it could be a really nice method! Especially now that I've +learned Disney has also been working on it around the same tim, back in 2020 :P + + [d2vsource]: https://github.com/dwbuiten/d2vsource + [DGIndex]: http://rationalqm.us/dgmpgdec/dgmpgdec.html + [mkvextract]: https://mkvtoolnix.download + [mkvmerge]: https://mkvtoolnix.download + [lsmash]: https://github.com/VFR-maniac/L-SMASH-Works + + +%package help +Summary: Development documents and examples for pvsfunc +Provides: python3-pvsfunc-doc +%description help +# pvsfunc + +pvsfunc (PHOENiX's VapourSynth Functions) is my compilation of VapourSynth Scripts, Functions, and Helpers. + +[](https://github.com/rlaphoenix/pvsfunc/actions?query=workflow%3A%22ci%22) +[](https://github.com/rlaphoenix/pvsfunc/blob/master/LICENSE) +[](https://deepsource.io/gh/rlaphoenix/pvsfunc) +[](https://github.com/rlaphoenix/pvsfunc/issues) +[](https://makeapullrequest.com) + +## Installation + +Install [VapourSynth] first! (this is different to the pypi/pip `vapoursynth` python wrapper!) + + pip install --user pvsfunc + +Done! However, there are further dependencies listed below that you may need to install depending on the classes you +intend to use, and your use-case. Don't forget to install them if needed! + + [VapourSynth]: <https://www.vapoursynth.com/doc/installation.html> + +## Building + +Building from source requires [Poetry](https://python-poetry.org). +Simply run `poetry install` or `poetry build` for distribution wheel and source packages. + +## License + +This project is released under the GNU GENERAL PUBLIC LICENSE Version 3 (GPLv3) license. +Please read and agree to the license before use, it can be found in the [LICENSE](LICENSE) file. + +* * * + +Below is information about the projects included in pvsfunc that are available to use. Don't take it as full +documentation as that is being worked on. + +## PD2V + +Convenience class for working with DGIndex D2V project files (MPEG-1/2 videos). Includes source loading, frame +matching, deinterlacing, and more. + +### Example Usage + +```py +from pvsfunc import PD2V +from functools import partial +from havsfunc import QTGMC + +clip = PD2V(r"C:\Users\john\Videos\s01e01.d2v", verbose=True).\ + ceil().\ + deinterlace( + kernel=partial(QTGMC, FPSDivisor=2, Preset="Very Slow"), + verbose=True + ).\ + clip + +# ... any manual changes to clip + +clip.set_output() +``` + +The above example will load a D2V project file located at `C:\Users\john\Videos\s01e01.d2v` in Verbose mode. +Verbose mode will display extra information during the PD2V use. + +It then runs `ceil()` which frame-matches the progressive sections of the video with the interlaced sections by +duplicating the progressive frames (instead of interlacing). + +It then deinterlaces the interlaced sections of the video with QTGMC as the kernel. The Kernel must have a `tff` or +`TFF` argument to be compatible, but the field order should not be manually set by the user. + +Finally, it takes the clip and set's it for VapourSynth output. + +### Dependencies + +- [d2vsource] (core.d2v) VapourSynth plugin +- [DGIndex] v1.5.8 or newer +- [mkvextract] Only required if you plan on providing non demuxed streams (e.g., mp4, mkv) + +To install [d2vsource] it's as simple as `vsrepo install d2vsource` on Windows. Other Operating System user's know the +drill, go check your package repository's or compile it yourself. + +Make sure [DGIndex] and [mkvextract] is available on your environment path and has execution permissions. Note Linux +Users: Add to system profile path, not terminal/rc path. DGIndex is Windows-only but is supported if you install Wine. + +## PLS + +Convenience class for working with L-SMASH-WORKS LWI project files. Includes source loading and deinterlacing. +More features are to be implemented in the future once a Python-based LWI project parser is available. + +Refer to PD2Vs example usage as it's very similar to how PLS is used. + +### Dependencies + +- [lsmash] (core.lsmas) VapourSynth plugin +- [mkvmerge] Only required if input file has a container-set frame rate that differs to the encoded frame rate + +To install [lsmash] it's as simple as `vsrepo install lsmas` on Windows. Other Operating System user's know the drill, +go check your package repository's or compile it yourself. + +Make sure [mkvmerge] is available on your environment path and has execution permissions. Note Linux Users: Add to +system profile path, not terminal/rc path. + +## PDebox + +Lightweight class to apply de-boxing based on an output aspect-ratio. Similar scripts would annoyingly want you to +just crop in yourself which is incredibly annoying. + +## PDecimate + +Decimate (delete) frames in a specified pattern using cycle and offsets. This is typically used for Inverse-Telecine +purposes. + +Decimation may often be done for IVTC purposes to remove constant pattern pulldown frames. + +## PKernel + +Kernel storage class for any custom Deinterlacing kernels I'm working on or tinkering with that you may want to use. +Just know that they are most likely not the type of deinterlacing you may expect, as it's generally a playground for +looking into strange tactics of deinterlacing. + +### VoidWeave + +VoidWeave is a deinterlacing method involving in-painting with machine-learning. + +It takes footage and separates the weaved fields so that each field is full-height with the missing data of the field +being 255 RGB green instead of empty/black. The in-painting machine-learning system would then in-paint the missing +data wherever it finds the 255 RGB Green pixels. It works quite well as YUV 4:2:0 DVD data doesn't seem to ever reach +255 green though it does get close, but never quite 255. + +I tested it on a Live Action DVD and the results were honestly outstanding! The time it took to run the in-painting +was about the same as QTGMC on Very Slow, with similar results! I think where this method may really shine is with +Cartoon/Animated sources as QTGMC does not do them well. + +It all still requires a lot more testing, but it looks like it could be a really nice method! Especially now that I've +learned Disney has also been working on it around the same tim, back in 2020 :P + + [d2vsource]: https://github.com/dwbuiten/d2vsource + [DGIndex]: http://rationalqm.us/dgmpgdec/dgmpgdec.html + [mkvextract]: https://mkvtoolnix.download + [mkvmerge]: https://mkvtoolnix.download + [lsmash]: https://github.com/VFR-maniac/L-SMASH-Works + + +%prep +%autosetup -n pvsfunc-4.4.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pvsfunc -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 4.4.0-1 +- Package Spec generated @@ -0,0 +1 @@ +6f7d7a1e3841897c217a96a80b84d465 pvsfunc-4.4.0.tar.gz |