#!/usr/bin/env python

import os, sys, re

def get_env(varName, alternateValue):
	return os.getenv(varName, alternateValue)



def find_in_path(needle, haystack):
	dirs = re.split(haystack, ":")

	for curDir in dirs:
		p = os.path.join(curDir, needle)

		if os.path.exists(p):
			return p

	return None



def mySystem(cmd):
	print("system(%s)" % (cmd))
	os.system(cmd)


#
# Given an input directory, iterate over the images and make an MPEG and an H.264 movie.
#
def build_movies(movieDir, pattern = ".*.ppm"):
	home = get_env("HOME", "/home")
	ssw = get_env("SSW", "/ssw")
	path = get_env("PATH", "%s/bin:/opt/local/bin:/usr/local/bin:/usr/local/netpbm/bin:%s/packages/panorama/binaries:/usr/share/bin:/sw/bin:/usr/bin:/bin" % (home, ssw))
	#pnmToTiff = find_in_path("pnmtotiff", path)
	#qt_export = find_in_path("qt_export", path)
	#print "pnmToTiff='%s'" % (pnmToTiff)
	#print "qt_export='%s'" % (qt_export)

	#if (pnmToTiff  and  qt_export):
	#	#sprintf(cmd, "(export PATH=/usr/local/bin:/sw/bin:/usr/bin:/bin ; cd %s ; qt_export --sequencerate=15 frame_00001.png --loadsettings=${SSW}/packages/panorama/conf/qt_h264.sty tt.mov >qt_export.log; mv tt.mov %s) &",
	print("pano_build_movies: PATH=%s" % (path))
	mySystem("ppmtompeg %s/ppmtompeg.params >/dev/null 2>&1" % (movieDir))

	mySystem("nice bash -c 'export PATH=%s;for ppm in %s/*.ppm ; do tiff=`echo ${ppm}|sed -e\"s/.ppm/.tiff/\"` ; pnmtotiff -lzw ${ppm} >${tiff} ; rm -f ${ppm} ; done'" % (path, movieDir))
	#mySystem("nice bash -c 'for ppm in %s/*.ppm ; do tiff=`echo ${ppm}|sed -e\"s/.ppm/.tiff/\"` ; pnmtotiff -lzw ${ppm} >${tiff} ; rm -f ${ppm} ; done'" % (movieDir))
	mySystem("nice bash -c 'cd %s; qt_export --loadsettings=${SSW}/packages/panorama/conf/h264_30fps_autobr.sty --sequencerate=30 *0001.tiff tt.mov >qt_export.log; mv tt.mov %s.mov'" % (movieDir, movieDir))


if __name__ == "__main__":
	for curArg in sys.argv[1:]:
		build_movies(curArg)

