Include ffmpeg backed for Qt MultiMedia on macos and windows

Qt docs indicate this is the only actually maintained backend
This commit is contained in:
Kovid Goyal 2024-08-23 23:13:54 +05:30
parent dba0805df8
commit 3727bc2355
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 21 additions and 1 deletions

View File

@ -272,7 +272,7 @@ class Freeze:
if x in ('libunrar.dylib', 'libstemmer.0.dylib', 'libstemmer.dylib', 'libjbig.2.1.dylib') and not is_id: if x in ('libunrar.dylib', 'libstemmer.0.dylib', 'libstemmer.dylib', 'libjbig.2.1.dylib') and not is_id:
yield x, x, is_id yield x, x, is_id
else: else:
for y in ('@rpath/', PREFIX + '/lib/', PREFIX + '/python/Python.framework/'): for y in ('@rpath/', PREFIX + '/lib/', PREFIX + '/python/Python.framework/', PREFIX + '/ffmpeg/lib/'):
if x.startswith(y): if x.startswith(y):
if y == PREFIX + '/python/Python.framework/': if y == PREFIX + '/python/Python.framework/':
y = PREFIX + '/python/' y = PREFIX + '/python/'
@ -322,6 +322,14 @@ class Freeze:
@flush @flush
def add_qt_frameworks(self): def add_qt_frameworks(self):
print('\nAdding Qt Frameworks') print('\nAdding Qt Frameworks')
# First add FFMPEG
for x in os.listdir(join(PREFIX, 'ffmpeg', 'lib')):
if x.endswith('.dylib') and x.count('.') == 2:
src = join(PREFIX, 'ffmpeg', 'lib', x)
shutil.copy2(src, self.frameworks_dir)
dest = join(self.frameworks_dir, os.path.basename(src))
self.set_id(dest, self.FID + '/' + os.path.basename(src))
self.fix_dependencies_in_lib(dest)
for f in QT_FRAMEWORKS: for f in QT_FRAMEWORKS:
self.add_qt_framework(f) self.add_qt_framework(f)
pdir = join(QT_PREFIX, 'plugins') pdir = join(QT_PREFIX, 'plugins')

View File

@ -506,6 +506,16 @@
} }
}, },
{
"name": "ffmpeg",
"os": "macos,windows",
"unix": {
"filename": "ffmpeg-6.1.2.tar.xz",
"hash": "sha256:3b624649725ecdc565c903ca6643d41f33bd49239922e45c9b1442c63dca4e38",
"urls": ["https://www.ffmpeg.org/releases/{filename}"]
}
},
{ {
"name": "qt-base", "name": "qt-base",
"version": "6.7.2", "version": "6.7.2",

View File

@ -138,6 +138,8 @@ def freeze(env, ext_dir, incdir):
os.mkdir(ossm) os.mkdir(ossm)
for f in glob.glob(os.path.join(PREFIX, 'lib', 'ossl-modules', '*.dll')): for f in glob.glob(os.path.join(PREFIX, 'lib', 'ossl-modules', '*.dll')):
copybin(f, ossm) copybin(f, ossm)
for f in glob.glob(os.path.join(PREFIX, 'ffmpeg', 'bin', '*.dll')):
copybin(f)
copybin(os.path.join(env.python_base, 'python%s.dll' % env.py_ver.replace('.', ''))) copybin(os.path.join(env.python_base, 'python%s.dll' % env.py_ver.replace('.', '')))
copybin(os.path.join(env.python_base, 'python%s.dll' % env.py_ver[0])) copybin(os.path.join(env.python_base, 'python%s.dll' % env.py_ver[0]))