From 19ab3fb3c204cdd87fd2a09060d73910320dedbd Mon Sep 17 00:00:00 2001 From: pabloalcantara Date: Mon, 22 Aug 2011 16:13:23 -0300 Subject: [PATCH] Initial suporte to VBR or CBR encoding --- headphones/__init__.py | 13 ++++++++----- headphones/encode.py | 12 ++++++++++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/headphones/__init__.py b/headphones/__init__.py index d7865ca2..c2a50ece 100644 --- a/headphones/__init__.py +++ b/headphones/__init__.py @@ -120,7 +120,8 @@ BITRATE = None SAMPLINGFREQUENCY = None ADVANCEDENCODER = None ENCODEROUTPUTFORMAT = None -VORBISQUALITY = None +ENCODERQUALITY = None +ENCODERVBRCBR = None def CheckSection(sec): """ Check if INI section exists, if not create it """ @@ -180,7 +181,7 @@ def initialize(): LIBRARYSCAN_INTERVAL, DOWNLOAD_SCAN_INTERVAL, SAB_HOST, SAB_USERNAME, SAB_PASSWORD, SAB_APIKEY, SAB_CATEGORY, \ NZBMATRIX, NZBMATRIX_USERNAME, NZBMATRIX_APIKEY, NEWZNAB, NEWZNAB_HOST, NEWZNAB_APIKEY, \ NZBSORG, NZBSORG_UID, NZBSORG_HASH, NEWZBIN, NEWZBIN_UID, NEWZBIN_PASSWORD, LASTFM_USERNAME, INTERFACE, FOLDER_PERMISSIONS, \ - ENCODERFOLDER, ENCODER, BITRATE, SAMPLINGFREQUENCY, ENCODE, ADVANCEDENCODER, ENCODEROUTPUTFORMAT, VORBISQUALITY + ENCODERFOLDER, ENCODER, BITRATE, SAMPLINGFREQUENCY, ENCODE, ADVANCEDENCODER, ENCODEROUTPUTFORMAT, ENCODERQUALITY, ENCODERVBRVBR if __INITIALIZED__: return False @@ -269,7 +270,8 @@ def initialize(): ENCODE = bool(check_setting_int(CFG, 'General', 'encode', 0)) ADVANCEDENCODER = check_setting_str(CFG, 'General', 'advancedencoder', '') ENCODEROUTPUTFORMAT = check_setting_str(CFG, 'General', 'encoderoutputformat', 'mp3') - VORBISQUALITY = check_setting_int(CFG, 'General', 'vorbisquality', 60) + ENCODERQUALITY = check_setting_int(CFG, 'General', 'vorbisquality', 60) + ENCODERVBRCBR = check_setting_str(CFG, 'General', 'encodervbrcbr', 'cbr') if not LOG_DIR: LOG_DIR = os.path.join(DATA_DIR, 'logs') @@ -455,8 +457,9 @@ def config_write(): new_config['General']['encoderfolder'] = ENCODERFOLDER new_config['General']['advancedencoder'] = ADVANCEDENCODER new_config['General']['encoderoutputformat'] = ENCODEROUTPUTFORMAT - new_config['General']['vorbisquality'] = VORBISQUALITY - + new_config['General']['encoderquality'] = ENCODERQUALITY + new_config['General']['encodervbrcbr'] = ENCODERVBRCBR + new_config.write() diff --git a/headphones/encode.py b/headphones/encode.py index 65375a71..6211663f 100644 --- a/headphones/encode.py +++ b/headphones/encode.py @@ -86,7 +86,11 @@ def command(encoder,musicSource,musicDest,albumPath): cmd='' startMusicTime=time.clock() if headphones.ENCODER == 'lame': - cmd=encoder + ' -h --resample ' + str(headphones.SAMPLINGFREQUENCY) + ' -b ' + str(headphones.BITRATE) + cmd=encoder + ' -h' + if headphones.ENCODERVBRCBR=='cbr': + cmd=cmd+ ' --resample ' + str(headphones.SAMPLINGFREQUENCY) + ' -b ' + str(headphones.BITRATE) + elif headphones.ENCODERVBRCBR=='vbr': + cmd=cmd+'' cmd=cmd+ ' ' + headphones.ADVANCEDENCODER cmd=cmd+ ' "' + musicSource + '"' cmd=cmd+ ' "' + musicDest +'"' @@ -97,7 +101,11 @@ def command(encoder,musicSource,musicDest,albumPath): cmd=cmd+ ' -acodec libvorbis' if headphones.ENCODEROUTPUTFORMAT=='m4a': cmd=cmd+ ' -strict experimental' - cmd=cmd+ ' -y -ac 2 -map_metadata 0:0,s0 -vn -ar ' + str(headphones.SAMPLINGFREQUENCY) + ' -ab ' + str(headphones.BITRATE) + 'k' + if headphones.ENCODERVBRCBR=='cbr': + cmd=cmd+ ' -ar ' + str(headphones.SAMPLINGFREQUENCY) + ' -ab ' + str(headphones.BITRATE) + 'k' + elif headphones.ENCODERVBRCBR=='vbr': + cmd=cmd+'' + cmd=cmd+ ' -y -ac 2 -map_metadata 0:0,s0 -vn' cmd=cmd+ ' ' + headphones.ADVANCEDENCODER cmd=cmd+ ' "' + musicDest + '"' return_code = call(cmd, shell=True)