#!/usr/bin/python
# coding: UTF-8
# Rec10 TS Recording Tools
# Copyright (C) 2009 Yukikaze
import tv2avi
import status
import os
import time
import re

def ts2x264(pin,pout,opts):#sizeは"HD"か"SD"
    pout = pout.encode('utf-8')
    pin = pin.encode('utf-8')
    """
    pinで指定されたファイルをpoutにx264でエンコードして書き出す
    """
    
    status.setEncoding(status.getEncoding()+1)
    isAnime=0
    size="SD"

    makemini=0
    if re.search("a",opts):
        isAnime=1
        #print "isAnime"
    dualpass=0
    if re.search("2",opts):
        dualpass=1
    if re.search("Q",opts):
        size="WQVGA"
    if re.search("F",opts):
        size="FHD"
    if re.search("H",opts):
        size="HD"
    if re.search("S",opts):
        size="SD"
    if isAnime==1:
        encvf="-vf pullup,softskip,pp=l5,"
    else:
        encvf="-vf pp=l5,"
    if size=="SD":
        encvf=encvf+"scale=720:480,harddup"
        bitrate="bitrate="+tv2avi.Bitrate_SD
    elif size=="HD":
        encvf=encvf+"scale=1280:720,harddup"
        bitrate="bitrate="+tv2avi.Bitrate_HD
    elif size=="FHD":
        encvf=encvf+"scale=1920:1080,harddup"
        bitrate="bitrate="+tv2avi.Bitrate_FHD
    elif size=="WQVGA":
        encvf=encvf+"scale=400:240,harddup"
        bitrate="bitrate="+tv2avi.Bitrate_WQVGA
    else:
        encvf=encvf+"scale=1280:720,harddup"
        bitrate="bitrate="+tv2avi.Bitrate_HD

    if dualpass==1:
        pas1exe="mencoder \'"+pin+"\' -ovc x264 "+encvf+" -x264encopts "+bitrate+":threads=auto:pass=1:turbo=2 -passlogfile "+pin+".log "+"-oac mp3lame -lameopts cbr:br=128 -o /dev/null"
        pas2exe="mencoder \'"+pin+"\' -ovc x264 "+encvf+" -x264encopts "+bitrate+":threads=auto:pass=2 -passlogfile "+pin+".log "+"-oac mp3lame -lameopts cbr:br=128 -o \'"+pout+"\'"
        pas1exe="/usr/bin/nice -n 19 "+pas1exe
        pas2exe="/usr/bin/nice -n 19 "+pas2exe
        print pas2exe
        os.system(pas1exe)
        print "1pass終了"
        time.sleep(5)
        os.system(pas2exe)
    else:
        pas1exe="mencoder \'"+pin+"\' -ovc x264 "+encvf+" -x264encopts "+bitrate+":threads=auto -oac mp3lame -lameopts cbr:br=128  -o \'"+pout+"\'"
        os.system(pas1exe)
    status.setEncoding(status.getEncoding()-1)