From 07aa2154f13a2c90ac3f98b676cddd4e2b1a82b8 Mon Sep 17 00:00:00 2001 From: mikeos Date: Sat, 28 Sep 2013 16:38:17 +0400 Subject: support of different output encoding formats --- formats/flac.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 formats/flac.py (limited to 'formats/flac.py') diff --git a/formats/flac.py b/formats/flac.py new file mode 100644 index 0000000..258b122 --- /dev/null +++ b/formats/flac.py @@ -0,0 +1,39 @@ +from formats.__base__ import * +from utils import to_bytes + +import subprocess + +class FlacHandler(BaseHandler): + name = "flac" + ext = "flac" + + def encode(self, opt, info): + self.add("flac sox -") + + if opt.compression is not None: + self.add("-C %d" % opt.compression) + + self.add_sox_args(opt, info) + self.add("%f") + + return self.build() + + def tag(self, path, tags): + args = ["metaflac", "--remove-all-tags", "--import-tags-from=-", path] + self.log("Tag [%s] : ", path) + + proc = subprocess.Popen(args, stdin = subprocess.PIPE) + for k, v in tags.items(): + if v is not "": + proc.stdin.write(to_bytes("%s=%s\n" % (k.upper(), v))) + proc.stdin.close() + + if proc.wait(): + self.log("FAILED\n") + return False + + self.log("OK\n") + return True + +def init(): + return FlacHandler -- cgit v1.2.3-70-g09d2