Hi Jesse,
Thanks for taking a look at my problem, I still didn't find what was the
cause. It is working properly on Mac btw.
Here is the code:
#####################################################
import platformimport sysimport os.pathimport reimport threadimport
nukeimport subprocessimport nukescriptsimport nukescripts.flipbooking
as flipbooking
class RVFlipbook(flipbooking.FlipbookApplication):
def __init__(self):
#super(RVFlipbook, self).__init__()
flipbooking.FlipbookApplication.__init__(self)
#Mac
if nuke.env['MACOS']:
self._rvPath = "/mac/path/to/rv"
#Linux
elif not nuke.env['WIN32']:
self._rvPath = "/linux/path/to/rv"
##############################################################
# Interface implementation
##############################################################
def name(self):
return "RV"
def path(self):
return self._rvPath
def cacheDir(self):
return os.environ["NUKE_TEMP_DIR"]
def run(self, filename, frameRanges, views, options):
sequence_interval =
str(frameRanges.minFrame())+"-"+str(frameRanges.maxFrame())
(filename, subs) = re.subn("%V", views[0], filename)
(filename, subs) = re.subn("%v", views[0][0], filename)
os.path.normpath(filename)
args = []
if nuke.env['WIN32']:
args.append( "\"" + self.path() + "\"" )
filename = filename.replace("/", "\\")
filename = "\"" + filename + "\""
else:
args.append( self.path() )
args.append("[")
args.append(filename)
lut = options.get("lut", "")
if lut != "":
lutPath = flipbooking.getLUTPath(self.name(), lut)
if lutPath != "" and os.path.exists(lutPath):
args.append("-calibration")
args.append("\"" + lutPath + "\"")
roi = options.get("roi", None)
if roi != None and not (roi["x"] == 0.0 and roi["y"] == 0.0 and
roi["w"] == 0.0 and roi["h"] == 0.0):
args.append("-crop")
args.append(str(max(0, int(roi["x"]))))
args.append(str(max(0, int(roi["y"]))))
args.append(str(int(roi["w"])))
args.append(str(int(roi["h"])))
lut = options.get("lut", "")
print "Lut:"+lut
if lut == "linear-sRGB":
args.append("-sRGB")
elif lut == "linear-rec709":
args.append('-rec709')
scaleW = 100
scaleH = 100
pixelAspect = options.get("pixelAspect", 1)
if pixelAspect != 1:
scaleW *= pixelAspect
if scaleW != 100 or scaleH != 100:
args.append("-r"+str(scaleW)+"%")
args.append(str(scaleH) + "%")
if len(views) > 1:
args.append("-stereo")
# audio to be added this may be empty or not
self._audio = ""
audio = options.get("audio", "")
if audio != "":
self._audio = "\"-s" + audio + "\""
args.append(self._audio)
args.append(sequence_interval)
#nuke.IrToken()
#os.spawnv(os.P_NOWAITO, self.path(),args)
args.append("]")
subprocess.Popen(args)
def capabilities(self):
return {
'proxyScale': False,
'crop': True,
'canPreLaunch': False,
'supportsArbitraryChannels': True,
'maximumViews' : 2,
'fileTypes' :
["r3d","movieproc","exr","txr","openexr","aces","sxr","gto","igto","tif","tiff","sm","tex","tx","txt",
"tdl","shd","jpeg","jpg","dpx","ari","cin","cineon","targa","tga","tpic","png","sgi","bw","rgb","rgba","rla","rpf","iff","yuv",
"rgbe","hdr","j2c","j2k","jpt","jp2","*mraysubfile*","z","zfile","psd","pic","tga","targa","sgi","jpg","jpeg","bw","rgb","rgba",
"inta","int","pnm","fits","dpx","cin","cineon","webp","ptex","ptx","rla","iff","arw","bay","cr2","crw","dc2","dcr","dng","erf","fff",
"k25","kdc","mdc","mos","mrw","nef","orf","pef","ptx","pxn","raf","raw","rdc","rwl","srf","rmf","bmp","cut","dds","gif","ico","cur","lbm",
"lif","lmp","mdl","pcd","pcx","pic","pbm","pgm","ppm","psd","sgi","rgb","bw","rgba","tga","wal","avi","flv","m3u8","m4v","mkv","mov","mp4",
"r3d","js","mov","avi","mp4","m4v","dv","aiff","aif","aifc","wav","snd","au","stdinfb"]
}
rv = RVFlipbook()
flipbooking.register(rv)#nukescripts.setFlipbookDefaultOption("flipbook", "RV")
#####################################################
The panel display is handled by the mother class
flipbooking.FlipbookApplication; so I'm not sure the problem come from this
code above as it only manage to get arguments and launch RV with Popen.
Please let me know if you find anything wrong.
Cheers,
Justin
2015-01-07 23:42 GMT+00:00 Jesse Kretschmer <[email protected]>:
> I can't figure out what is happening at a code level from your
screenshots.
> Can you share your flipbook implementation?
> Did you start from the example flipbook?
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python