Beispiel #1
0
    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
Beispiel #2
0
 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)
Beispiel #3
0
    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
Beispiel #4
0
    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
Beispiel #5
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])
Beispiel #6
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])
Beispiel #7
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
Beispiel #8
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
Beispiel #9
0
    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