[game-data-packager] 01/01: make_template: compare ffmpeg result against metaflac value

Alexandre Detiste detiste-guest at moszumanska.debian.org
Sat Apr 25 13:11:27 UTC 2015


This is an automated email from the git hooks/post-receive script.

detiste-guest pushed a commit to branch master
in repository game-data-packager.

commit 58cc51120d875beaaf34740ceab750a1df442475
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Sat Apr 25 15:10:49 2015 +0200

    make_template: compare ffmpeg result against metaflac value
---
 game_data_packager/make_template.py | 50 ++++++++++++++++++++++++++-----------
 1 file changed, 36 insertions(+), 14 deletions(-)

diff --git a/game_data_packager/make_template.py b/game_data_packager/make_template.py
index d7d98e6..12e7ea9 100644
--- a/game_data_packager/make_template.py
+++ b/game_data_packager/make_template.py
@@ -367,22 +367,44 @@ def do_flacsums(destdir, lower):
     elif which('avconv'): tool = 'avconv'
     else:
         exit('Install either ffmpeg or avconv')
+    if not which('metaflac'):
+        exit('Install metaflac')
+
+    fla_or_flac = '.fla'
+    md5s = dict()
+    done_wav = 0
+    done_flac = 0
+    for filename in glob.glob(os.path.join(destdir, '*')):
+        file = os.path.basename(filename).lower()
+        file, ext = os.path.splitext(file)
+        if ext == '.wav':
+            md5 = subprocess.check_output([tool, '-i', filename, '-f', 'md5', '-'],
+                     stderr=subprocess.DEVNULL,
+                     universal_newlines=True)
+            md5 = md5.rstrip().split('=')[1]
+            assert file not in md5s or md5s[file] == md5, \
+                   "got differents md5's for %s.wav|flac" % file
+            md5s[file] = md5
+            done_wav += 1
+        if ext == '.flac':
+            fla_or_flac = '.flac'
+        if ext in ('.fla','.flac'):
+            md5 = subprocess.check_output(['metaflac', '--show-md5sum', filename],
+                     universal_newlines=True)
+            md5 = md5.rstrip()
+            assert file not in md5s or md5s[file] == md5, \
+                   "got differents md5's for %s.wav|flac" % file
+            md5s[file] = md5
+            done_flac += 1
+
+    if not md5s:
+        exit("Couldn' find any .wav or .flac file")
 
     print('flacsums: |')
-    for filename in sorted(glob.glob(os.path.join(destdir, '*.wav')) +
-                           glob.glob(os.path.join(destdir, '*.WAV'))):
-        md5 = subprocess.check_output([tool, '-i', filename, '-f', 'md5', '-'],
-                 stderr=subprocess.DEVNULL,
-		 universal_newlines=True)
-        md5 = md5.rstrip()
-        md5 = md5.split('=')[1]
-        filename = os.path.basename(filename)
-        if lower:
-            filename = filename.lower()
-        file, ext = os.path.splitext(filename)
-        if ext == '.wav': ext = '.flac'
-        if ext == '.WAV': ext = '.FLAC'
-        print('  %s  %s' % (md5, file + ext))
+    for file in sorted(md5s.keys()):
+        print('  %s  %s' % (md5s[file], file + fla_or_flac))
+
+    print("\n#processed %i .wav and %i .fla[c] files" % (done_wav, done_flac))
 
 def main():
     parser = argparse.ArgumentParser(

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list