summaryrefslogtreecommitdiff
path: root/formats/ogg.py
diff options
context:
space:
mode:
authormikeos <mike.osipov@gmail.com>2013-09-30 02:21:16 +0400
committermikeos <mike.osipov@gmail.com>2013-09-30 02:21:16 +0400
commit10a50690b33ca7fefc7768d156eb2b75544082ea (patch)
treeddf4e7fc2e1bd93b288660522069d332fdc2faa8 /formats/ogg.py
parent0dae4f52d78d840451a8a841b30190e70aab5d7b (diff)
add ogg support
Diffstat (limited to 'formats/ogg.py')
-rw-r--r--formats/ogg.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/formats/ogg.py b/formats/ogg.py
new file mode 100644
index 0000000..c7352c2
--- /dev/null
+++ b/formats/ogg.py
@@ -0,0 +1,33 @@
+from formats.__base__ import *
+from utils import to_bytes
+
+import subprocess
+
+class OggHandler(BaseHandler):
+ name = "ogg"
+ ext = "ogg"
+
+ def encode(self, opt, info):
+ self.add("cust ext=%s sox -" % self.ext)
+
+ 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 = ["vorbiscomment", "--raw", "--write", 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()
+
+ return proc.wait() is 0
+
+def init():
+ return OggHandler