def __init__( self, parent, layer=0, alpha=255, fullscreen=True, window=None, crop=None, rotation=0, vflip=False, hflip=False): # Create and enable the renderer component self._rotation = 0 self._vflip = False self._hflip = False self.parent = parent self.renderer = ct.POINTER(mmal.MMAL_COMPONENT_T)() mmal_check( mmal.mmal_component_create( mmal.MMAL_COMPONENT_DEFAULT_VIDEO_RENDERER, self.renderer), prefix="Failed to create renderer component") try: if not self.renderer[0].input_num: raise PiCameraError("No input ports on renderer component") self.layer = layer self.alpha = alpha self.fullscreen = fullscreen if window is not None: self.window = window if crop is not None: self.crop = crop self.rotation = rotation self.vflip = vflip self.hflip = hflip mmal_check( mmal.mmal_component_enable(self.renderer), prefix="Renderer component couldn't be enabled") except: mmal.mmal_component_destroy(self.renderer) raise
def close(self): """ Finalizes the encoder and deallocates all structures """ try: self.stop() if self.connection: mmal.mmal_connection_destroy(self.connection) self.connection = None if self.pool: mmal.mmal_port_pool_destroy(self.output_port, self.pool) self.pool = None if self.encoder: if self.encoder[0].is_enabled: mmal.mmal_component_disable(self.encoder) mmal.mmal_component_destroy(self.encoder) self.encoder = None self.output_port = None self.input_port = None finally: if self.port == 1: self.parent._video_encoder = None elif self.port == 2: self.parent._still_encoder = None else: raise PiCameraValueError("Invalid camera port %d" % self.port)
def close(self): """ Finalizes the renderer and deallocates all structures. This method is called by the camera prior to destroying the renderer (or more precisely, letting it go out of scope to permit the garbage collector to destroy it at some future time). """ if self.renderer: mmal.mmal_component_destroy(self.renderer) self.renderer = None
def __init__(self, parent, source): self.parent = parent self.renderer = ct.POINTER(mmal.MMAL_COMPONENT_T)() mmal_check( mmal.mmal_component_create(mmal.MMAL_COMPONENT_DEFAULT_NULL_SINK, self.renderer), prefix="Failed to create null sink component", ) try: if not self.renderer[0].input_num: raise PiCameraError("No input ports on null sink component") mmal_check(mmal.mmal_component_enable(self.renderer), prefix="Null sink component couldn't be enabled") except: mmal.mmal_component_destroy(self.renderer) raise self.connection = self.parent._connect_ports(source, self.renderer[0].input[0])
def __init__(self, parent, source): self.parent = parent self.renderer = ct.POINTER(mmal.MMAL_COMPONENT_T)() mmal_check(mmal.mmal_component_create( mmal.MMAL_COMPONENT_DEFAULT_NULL_SINK, self.renderer), prefix="Failed to create null sink component") try: if not self.renderer[0].input_num: raise PiCameraError("No input ports on null sink component") mmal_check(mmal.mmal_component_enable(self.renderer), prefix="Null sink component couldn't be enabled") except: mmal.mmal_component_destroy(self.renderer) raise self.connection = self.parent._connect_ports(source, self.renderer[0].input[0])
def close(self): """ Finalizes the encoder and deallocates all structures """ self.stop() if self.connection: mmal.mmal_connection_destroy(self.connection) self.connection = None if self.pool: mmal.mmal_port_pool_destroy(self.output_port, self.pool) self.pool = None if self.encoder: if self.encoder[0].is_enabled: mmal.mmal_component_disable(self.encoder) mmal.mmal_component_destroy(self.encoder) self.encoder = None self.output_port = None self.input_port = None
def __init__(self, parent, layer=0, alpha=255, fullscreen=True, window=None, crop=None, rotation=0, vflip=False, hflip=False): # Create and enable the renderer component self._rotation = 0 self._vflip = False self._hflip = False self.parent = parent self.renderer = ct.POINTER(mmal.MMAL_COMPONENT_T)() mmal_check(mmal.mmal_component_create( mmal.MMAL_COMPONENT_DEFAULT_VIDEO_RENDERER, self.renderer), prefix="Failed to create renderer component") try: if not self.renderer[0].input_num: raise PiCameraError("No input ports on renderer component") self.layer = layer self.alpha = alpha self.fullscreen = fullscreen if window is not None: self.window = window if crop is not None: self.crop = crop self.rotation = rotation self.vflip = vflip self.hflip = hflip mmal_check(mmal.mmal_component_enable(self.renderer), prefix="Renderer component couldn't be enabled") except: mmal.mmal_component_destroy(self.renderer) raise