  
          For detect/single phase operations the :attr:`ExtractMedia.filename` and
          :attr:`~ExtractMedia.image` attributes should be populated.
  
          """
          qname = "extract_{}_in".format(self.phase)
          retval = self._queues[qname]
          logger.trace("%s: %s", qname, retval)
          return retval
 
</s> remove         >>> {'filename': <path to the source image that is to be extracted from>,
        >>>  'image': <the source image as a numpy.ndarray in BGR color format>,
        >>>  'detected_faces: [<list of DetectedFace objects as generated from detect>]}
 </s> add         For detect/single phase operations the :attr:`ExtractMedia.filename` and
        :attr:`~ExtractMedia.image` attributes should be populated. </s> remove         >>>         extractor.input_queue.put({"filename": "path/to/image/file",
        >>>                                    "image": numpy.array(image),
        >>>                                    "detected_faces": [<DetectedFace objects]})
 </s> add         >>>         extract_media.set_image(image)
        >>>         extractor.input_queue.put(extract_media) </s> remove         The input queue is the entry point into the extraction pipeline. A ``dict`` should
        be put to the queue in the following format(s):

        For detect/single phase operations:

        >>> {'filename': <path to the source image that is to be extracted from>,
        >>>  'image': <the source image as a numpy.ndarray in BGR color format>}

        For align (2nd pass operations):
 </s> add         The input queue is the entry point into the extraction pipeline. An :class:`ExtractMedia`
        object should be put to the queue. </s> remove                          retval["filename"], retval["image"].shape, len(retval["detected_faces"]))
            yield retval
 </s> add                          output.filename, output.image_shape, len(output.detected_faces))
            yield output </s> remove         >>>         extractor.input_queue.put({"filename": "path/to/image/file",
        >>>                                    "image": numpy.array(image),
        >>>                                    "detected_faces": [<DetectedFace objects]})
 </s> add         >>>         extractor.input_queue.put(extract_media)
        For align/mask (2nd/3rd pass operations) the :attr:`ExtractMedia.detected_faces` should
        also be populated by calling :func:`ExtractMedia.set_detected_faces`.
  
          For detect/single phase operations the :attr:`ExtractMedia.filename` and
          :attr:`~ExtractMedia.image` attributes should be populated.
  
        For align/mask (2nd/3rd pass operations) the :attr:`ExtractMedia.detected_faces` should
        also be populated by calling :func:`ExtractMedia.set_detected_faces`.
          """
          qname = "extract_{}_in".format(self.phase)
          retval = self._queues[qname]
          logger.trace("%s: %s", qname, retval)
          return retval
keep keep keep add keep keep keep keep keep
 plugins.extract - Create ExtractMedia class for pipeline flow
Bugfix - Fix memory leak in extract 
plugins/extract/pipeline.py