From 82ebc68e025a593643b478930eac3f00a86e686f Mon Sep 17 00:00:00 2001 From: Maurizio Porrato Date: Fri, 8 Oct 2010 21:08:08 +0200 Subject: [PATCH] Add RIFF WAVE header to recordings --- recorder.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/recorder.py b/recorder.py index c97d595..c3372a2 100755 --- a/recorder.py +++ b/recorder.py @@ -10,9 +10,10 @@ from frn.user import FRNUser from twisted.internet import reactor, task from twisted.internet.defer import DeferredList from twisted.python import log -import os, string, time +import os, string, time, struct safe_chars = string.ascii_letters+string.digits+' :;.,+-=$@' +WAV_HEADER = "524946460c06000057415645666d74201400000031000100401f00005906000041000000020040016661637404000000000000006461746100000000".decode('hex') AUDIO_TIMEOUT = 5.0 def sanitizeFilename(name): @@ -35,7 +36,7 @@ class FRNRecorder(FRNClient): ts = time.localtime() opname = sanitizeFilename(self.clients[client_id-1]['on']) dirname = "/var/spool/grn/recordings/"+time.strftime("%Y%m/%d/%H", ts) - filename = time.strftime("%Y%m%d%H%M%S-", ts) + opname + '.gsm' + filename = time.strftime("%Y%m%d%H%M%S-", ts) + opname + '.wav' try: os.makedirs(dirname) except OSError: pass @@ -44,19 +45,28 @@ class FRNRecorder(FRNClient): def textMessageReceived(self, client, message, target): pass + def closeFile(self): + size = self.recordingFile.tell()-len(WAV_HEADER) + self.recordingFile.seek(0x30) # fact chunk value + self.recordingFile.write(struct.pack("