|
| 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