Changeset a567b71819c8005b304615b039ff22c5447c7a3e

Show
Ignore:
Timestamp:
02/09/08 19:00:07 (1 year ago)
Author:
wgw <tjm1100@gmail.com>
git-committer:
wgw <tjm1100@gmail.com> 1202605207 -0600
git-parent:

[d4def89a0aa71b415b52c96b310cbe0802aecc00], [6b0c52dd637213034d4c3edb7b4b8d286510ba46]

git-author:
wgw <tjm1100@gmail.com> 1202605207 -0600
Message:

Merge branch 'master' into subfolders-8.3

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • config.py

    rd4def89 ra567b71  
    9999        return config.get('Server', 'ffmpeg_prams', raw=True) 
    100100    except NoOptionError: #default 
    101         return '-vcodec mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize %(buff_size)s %(aspect_ratio)s -comment pyTivo.py %(audio_codec)s -ab %(audio_br)s -copyts -f vob -' 
     101        return '-vcodec mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize %(buff_size)s %(aspect_ratio)s -comment pyTivo.py -ab %(audio_br)s %(audio_fr)s %(audio_codec)s -f vob -' 
    102102 
    103103def isHDtivo(tsn):  # tsn's of High Definition Tivo's 
  • plugins/video/transcode.py

    r8edc3cb r6b0c52d  
    4747    settings['audio_br'] = config.getAudioBR(tsn) 
    4848    settings['audio_codec'] = select_audiocodec(inFile, tsn) 
     49    settings['audio_fr'] = select_audiofr(inFile) 
    4950    settings['video_br'] = config.getVideoBR(tsn) 
    5051    settings['max_video_br'] = config.getMaxVideoBR() 
     
    6566def select_audiocodec(inFile, tsn = ''): 
    6667    # Default, compatible with all TiVo's 
    67     codec = '-acodec mp2 -ac 2 -ar 44100
    68     type, width, height, fps, millisecs, kbps, akbps, acodec =  video_info(inFile) 
     68    codec = '-acodec mp2 -ac 2
     69    type, width, height, fps, millisecs, kbps, akbps, acodec, afreq =  video_info(inFile) 
    6970    if akbps == None and acodec in ('liba52', 'mp2'): 
    7071        cmd_string = '-y -vcodec mpeg2video -r 29.97 -b 1000k -acodec copy -t 00:00:01 -f vob -' 
    7172        if video_check(inFile, cmd_string): 
    72             type, width, height, fps, millisecs, kbps, akbps, acodec =  video_info(videotest) 
     73            type, width, height, fps, millisecs, kbps, akbps, acodec, afreq =  video_info(videotest) 
    7374    if config.isHDtivo(tsn): 
    7475        # Is HD Tivo, use ac3 
    75         codec = '-acodec ac3 -ar 48000
     76        codec = '-acodec ac3
    7677        if acodec == 'liba52' and not akbps == None and \ 
    7778            int(akbps) <= config.getMaxAudioBR(tsn): 
     
    8485    return codec 
    8586 
     87def select_audiofr(inFile): 
     88    freq = '-ar 48000'  #default 
     89    type, width, height, fps, millisecs, kbps, akbps, acodec, afreq =  video_info(inFile) 
     90    if not afreq == None and afreq in ('44100', '48000'): 
     91        # compatible frequency 
     92        freq = '-ar ' + afreq 
     93    return freq 
     94 
    8695def select_aspect(inFile, tsn = ''): 
    8796    TIVO_WIDTH = config.getTivoWidth(tsn) 
    8897    TIVO_HEIGHT = config.getTivoHeight(tsn) 
    8998 
    90     type, width, height, fps, millisecs, kbps, akbps, acodec =  video_info(inFile) 
     99    type, width, height, fps, millisecs, kbps, akbps, acodec, afreq =  video_info(inFile) 
    91100 
    92101    debug_write(['tsn:', tsn, '\n']) 
     
    233242def tivo_compatable(inFile, tsn = ''): 
    234243    supportedModes = [[720, 480], [704, 480], [544, 480], [480, 480], [352, 480]] 
    235     type, width, height, fps, millisecs, kbps, akbps, acodec =  video_info(inFile) 
     244    type, width, height, fps, millisecs, kbps, akbps, acodec, afreq =  video_info(inFile) 
    236245    #print type, width, height, fps, millisecs, kbps, akbps, acodec 
    237246 
     
    282291 
    283292    if (inFile[-5:]).lower() == '.tivo': 
    284         info_cache[inFile] = (mtime, (True, True, True, True, True, True, True, True)) 
     293        info_cache[inFile] = (mtime, (True, True, True, True, True, True, True, True, True)) 
    285294        debug_write(['video_info: ', inFile, ' ends in .tivo.\n']) 
    286         return True, True, True, True, True, True, True, True 
     295        return True, True, True, True, True, True, True, True, True 
    287296 
    288297    cmd = [FFMPEG, '-i', inFile ]  
     
    297306    if ffmpeg.poll() == None: 
    298307        kill(ffmpeg.pid) 
    299         info_cache[inFile] = (mtime, (None, None, None, None, None, None, None, None)) 
    300         return None, None, None, None, None, None, None, None 
     308        info_cache[inFile] = (mtime, (None, None, None, None, None, None, None, None, None)) 
     309        return None, None, None, None, None, None, None, None, None 
    301310 
    302311    output = ffmpeg.stderr.read() 
     
    308317        codec = x.group(1) 
    309318    else: 
    310         info_cache[inFile] = (mtime, (None, None, None, None, None, None, None, None)) 
     319        info_cache[inFile] = (mtime, (None, None, None, None, None, None, None, None, None)) 
    311320        debug_write(['video_info: failed at codec\n']) 
    312         return None, None, None, None, None, None, None, None 
     321        return None, None, None, None, None, None, None, None, None 
    313322 
    314323    rezre = re.compile(r'.*Video: .+, (\d+)x(\d+)[, ].*') 
     
    318327        height = int(x.group(2)) 
    319328    else: 
    320         info_cache[inFile] = (mtime, (None, None, None, None, None, None, None, None)) 
     329        info_cache[inFile] = (mtime, (None, None, None, None, None, None, None, None, None)) 
    321330        debug_write(['video_info: failed at width/height\n']) 
    322         return None, None, None, None, None, None, None, None 
     331        return None, None, None, None, None, None, None, None, None 
    323332 
    324333    rezre = re.compile(r'.*Video: .+, (.+) (?:fps|tb).*') 
     
    327336        fps = x.group(1) 
    328337    else: 
    329         info_cache[inFile] = (mtime, (None, None, None, None, None, None, None, None)) 
     338        info_cache[inFile] = (mtime, (None, None, None, None, None, None, None, None, None)) 
    330339        debug_write(['video_info: failed at fps\n']) 
    331         return None, None, None, None, None, None, None, None 
     340        return None, None, None, None, None, None, None, None, None 
    332341 
    333342    # Allow override only if it is mpeg2 and frame rate was doubled to 59.94 
     
    381390        debug_write(['video_info: failed at acodec\n']) 
    382391 
    383     info_cache[inFile] = (mtime, (codec, width, height, fps, millisecs, kbps, akbps, acodec)) 
    384     debug_write(['video_info: Codec=', codec, ' width=', width, ' height=', height, ' fps=', fps, ' millisecs=', millisecs, ' kbps=', kbps, ' akbps=', akbps, ' acodec=', acodec, '\n']) 
    385     return codec, width, height, fps, millisecs, kbps, akbps, acodec 
     392    #get audio frequency of source for tivo compatibility test. 
     393    rezre = re.compile(r'.*Audio: .+, (.+) (?:Hz).*') 
     394    x = rezre.search(output) 
     395    if x: 
     396        afreq = x.group(1) 
     397    else: 
     398        afreq = None 
     399        debug_write(['video_info: failed at afreq\n']) 
     400 
     401    info_cache[inFile] = (mtime, (codec, width, height, fps, millisecs, kbps, akbps, acodec, afreq)) 
     402    debug_write(['video_info: Codec=', codec, ' width=', width, ' height=', height, ' fps=', fps, ' millisecs=', millisecs, ' kbps=', kbps, ' akbps=', akbps, ' acodec=', acodec, ' afreq=', afreq, '\n']) 
     403    return codec, width, height, fps, millisecs, kbps, akbps, acodec, afreq 
    386404 
    387405def video_check(inFile, cmd_string): 
  • pyTivo.conf.dist

    r8edc3cb r6b0c52d  
    4343#width=1280 
    4444#height=720 
    45 #ffmpeg_prams=-vcodec mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize %(buff_size)s %(aspect_ratio)s -comment pyTivo.py %(audio_codec)s -ab %(audio_br)s -copyts -f vob - 
     45#ffmpeg_prams=-vcodec mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize %(buff_size)s %(aspect_ratio)s -comment pyTivo.py -ab %(audio_br)s %(audio_fr)s %(audio_codec)s -f vob - 
    4646 
    4747# Per tivo options 
     
    5656#audio_br=320K 
    5757#video_br=12Mi 
    58 #ffmpeg_prams=-vcodec mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize %(buff_size)s %(aspect_ratio)s -comment pyTivo.py %(audio_codec)s -ab %(audio_br)s -copyts -f vob - 
     58#ffmpeg_prams=-vcodec mpeg2video -r 29.97 -b %(video_br)s -maxrate %(max_video_br)s -bufsize %(buff_size)s %(aspect_ratio)s -comment pyTivo.py -ab %(audio_br)s %(audio_fr)s %(audio_codec)s -f vob - 
    5959 
    6060[MyMovies]