|
| 1 | +#!/usr/python |
| 2 | +# -*- coding: UTF8-*- # |
1 | 3 | ''' |
2 | 4 | mpegCoder |
3 | 5 | --------- |
|
11 | 13 | ''' |
12 | 14 |
|
13 | 15 | import os |
| 16 | +import sysconfig |
14 | 17 | import ctypes |
| 18 | +import webtools |
| 19 | + |
| 20 | +__verion__ = '3.2.0' |
| 21 | +PY_VERSION = sysconfig.get_python_version() |
| 22 | + |
| 23 | + |
| 24 | +def get_release_name(mpegcoder_ver='3.x', python_ver='3.6'): |
| 25 | + '''Get the name of the mpegCoder released module.''' |
| 26 | + python_ver = python_ver.replace('.', '') |
| 27 | + mpegcoder_ver = mpegcoder_ver.replace('.', '_') |
| 28 | + return 'mpegCoder_{mp_ver}_{platform}_py{py_ver}.tar.xz'.format( |
| 29 | + mp_ver=mpegcoder_ver, |
| 30 | + py_ver=python_ver, |
| 31 | + platform='Linux' |
| 32 | + ) |
15 | 33 |
|
16 | 34 |
|
17 | 35 | class DynamicLibLoader: |
@@ -45,42 +63,55 @@ def add_dependencies(self, *names): |
45 | 63 | self.add_dependency(name) |
46 | 64 |
|
47 | 65 |
|
| 66 | +# Check existence of the dependency |
48 | 67 | basedir = os.path.abspath(os.path.dirname(__file__)) |
| 68 | +if not os.path.isfile(os.path.join(basedir, 'mpegCoder.so')): |
| 69 | + webtools.download_tarball( |
| 70 | + 'cainmagi', 'FFmpeg-Encoder-Decoder-for-Python', |
| 71 | + '{0}-linux'.format(__verion__), |
| 72 | + get_release_name(__verion__, PY_VERSION), |
| 73 | + path=target_path, mode='auto', verbose=True, token='' |
| 74 | + ) |
| 75 | +if not os.path.isdir(os.path.join(basedir, 'lib')): |
| 76 | + webtools.download_tarball( |
| 77 | + 'cainmagi', 'FFmpeg-Encoder-Decoder-for-Python', |
| 78 | + 'deps-3.2.0', 'so-linux-ffmpeg_5_0.tar.xz', |
| 79 | + path=target_path, mode='auto', verbose=True, token='' |
| 80 | + ) |
| 81 | + |
| 82 | + |
49 | 83 | __dependencies = DynamicLibLoader(os.path.join(basedir, 'lib')) |
50 | 84 | __dependencies.add_dependencies( |
51 | 85 | 'libva-drm.so.2', 'libva.so.2', 'libdrm.so.2' |
52 | 86 | ) |
53 | 87 | __dependencies.add_dependencies( |
54 | | - 'libva-x11.so.2', 'libvdpau.so.1', |
55 | | - 'libXext.so.6', 'libXfixes.so.3', 'libX11.so.6', 'libxcb.so.1', |
56 | | - 'libXau.so.6', 'libXdmcp.so.6', 'libbsd.so.0' |
57 | | -) |
58 | | -__dependencies.add_dependencies( |
59 | | - 'libgssapi_krb5.so.2', 'libkrb5.so.3', 'libk5crypto.so.3', |
60 | | - 'libkrb5support.so.0', 'libkeyutils.so.1' |
| 88 | + 'libva-x11.so.2', 'libvdpau.so.1', 'libXfixes.so.3', |
| 89 | + 'libXext.so.6', 'libX11.so.6', 'libxcb.so.1', 'libXau.so.6', |
| 90 | + 'libXdmcp.so.6', 'libbsd.so.0', 'libmd.so.0', |
61 | 91 | ) |
62 | 92 | __dependencies.add_dependencies( |
63 | 93 | 'libsrt.so.1.4', 'libssh.so.4' |
64 | 94 | ) |
65 | 95 | __dependencies.add_dependencies( |
66 | | - 'libtheoraenc.so.1', 'libtheoradec.so.1', 'libtheora.so.0', |
67 | | - 'libopenmpt.so.0', 'libmpg123.so.0', |
68 | | - 'libvorbisenc.so.2', 'libvorbisfile.so.3', 'libvorbis.so.0', |
69 | | - 'libogg.so.0', 'libnuma.so.1', |
70 | | - 'libopencore-amrwb.so.0', 'libfdk-aac.so.2', 'libmp3lame.so.0', |
71 | | - 'libopus.so.0', |
72 | | - 'libva-x11.so.2', 'libvdpau.so.1', |
| 96 | + 'libopencore-amrwb.so.0', 'libogg.so.0', 'libmpg123.so.0', |
| 97 | + 'libnuma.so.1', |
73 | 98 | ) |
74 | 99 | __dependencies.add_dependencies( |
75 | 100 | 'libopenjp2.so.7', |
76 | 101 | ) |
77 | 102 | __dependencies.add_dependencies( |
78 | | - 'libvpx.so.6', 'librav1e.so.0', 'libSvtAv1Enc.so.0', |
79 | | - 'libx264.so.164', 'libx265.so.199', 'libxvidcore.so.4' |
| 103 | + 'libfdk-aac.so.2', 'libmp3lame.so.0', 'libopus.so.0', |
| 104 | + 'libtheoraenc.so.1', 'libtheoradec.so.1', 'libopenmpt.so.0', |
| 105 | + 'libvorbisenc.so.2', 'libvorbisfile.so.3', 'libvorbis.so.0', |
| 106 | +) |
| 107 | +__dependencies.add_dependencies( |
| 108 | + 'libvpx.so.7', 'libdav1d.so.6', 'librav1e.so.0', |
| 109 | + 'libSvtAv1Enc.so.1', 'libx264.so.164', 'libx265.so.199', |
| 110 | + 'libxvidcore.so.4', |
80 | 111 | ) |
81 | 112 | __dependencies.add_dependencies( |
82 | | - 'libavformat.so.58', 'libavcodec.so.58', 'libswresample.so.3', |
83 | | - 'libswscale.so.5', 'libavutil.so.56', |
| 113 | + 'libavformat.so.59', 'libavcodec.so.59', 'libswresample.so.4', |
| 114 | + 'libswscale.so.6', 'libavutil.so.57', |
84 | 115 | ) |
85 | 116 |
|
86 | 117 | from . import mpegCoder as mpegCoder_ # noqa: E402 |
|
0 commit comments