summaryrefslogtreecommitdiff
path: root/formats/ogg.py
blob: 464ba8b7542fd2385dd55d7206256deede7f6d46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from formats.__base__ import *
from coding 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