PyATEMMax
PyATEMMax copied to clipboard
Camera Settings Setup
Hello! This definitely isn't the way you're supposed to use github, but I'm an idiot. I tweaked this function a bunch to get it working neatly with my studio micro 4ks:
def setCameraControlVideomode(self, camera: Union[ATEMConstant, str, int], video_mode: str) -> None: """Set Camera Control Video Mode fps: int, resolution: int, pal_or_ntsc: str, interlaced: int Args: camera: see ATEMCameras fps (int): ? resolution (int): ? interlaced (int): ? """ # 0= resolution // 1= framerate (approx!) // 2= interlaced ("i" or "p") // 3= NTSC or PAL video_mode_dict = { #"f1080i50": (1,3,1,1), #Not supported by camera #"f525i59_94_ntsc" : #"f625i_50_pal" #"f525i59_94_ntsc_16_9" #"f625i_50_pal_16_9" #"f1080i23_98": (0,3,1,1), #"f1080i24": (0,3,1,0), "f720p50": (3,2,0,0), "f720p59_94":(4,2,0,1), "f720p60": (4,2,0,0), "f1080i25": (1,3,1,0), "f1080i29_97": (2,3,0,1), "f1080i30": (2,3,1,0), "f1080i59_94": (2,3,1,1), "f1080i60": (2,3,1,0), "f1080p23_98": (0,3,0,1), "f1080p24": (0,3,0,0), "f1080p25": (1,3,0,0), "f1080p29_97": (2,3,0,1), "f1080p30": (2,3,0,0), "f1080p50": (3,3,0,0), "f1080p59_94": (4,3,0,1), "f1080p60": (4,3,0,0), "f2160p23_98": (0,6,0,1), "f2160p24": (0,6,0,0), "f2160p25": (1,6,0,0), "f2160p29_97": (2,6,0,1), "f2160p30": (2,6,0,0) }
camera_val = self.atem.cameras[camera].value
self.switcher._prepareCommandPacket("CCmd", 24)
self.switcher._outBuf.setU8(0, camera_val)
self.switcher._outBuf.setU8(1, 1)
self.switcher._outBuf.setU8(2, 0)
self.switcher._outBuf.setU8(4, 0x01) # Data type: int8
self.switcher._outBuf.setU8(7, 0x05) # 5 Byte array
#self.switcher._outBuf.setU8(9, 0x05) # 5 byte array
self.switcher._outBuf.setU8(16, video_mode_dict[video_mode][0])
self.switcher._outBuf.setU8(17, video_mode_dict[video_mode][3]) # Regular M-rate
self.switcher._outBuf.setU8(18, video_mode_dict[video_mode][1])
self.switcher._outBuf.setU8(19, video_mode_dict[video_mode][2])
self.switcher._outBuf.setU8(20, 0x00) # YUV
self.switcher._finishCommandPacket()