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 <je...@krets.com>:
> 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
> Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to