          logger.trace("Current cache size: %s", len(self.cache))
  
      def close(self):
          """ Close the ffmpeg writer and mux the audio """
          self.writer.close()
          self.mux_audio()
  
      def mux_audio(self):
          """ Mux audio
              ImageIO is a useful lib for frames > video as it also packages the ffmpeg binary
              however muxing audio is non-trivial, so this is done afterwards with ffmpy.
 
</s> remove     def mux_audio(self):
        """ Mux audio
 </s> add  </s> remove             A future fix could be implemented to mux audio with the frames """
 </s> add             # TODO A future fix could be implemented to mux audio with the frames """ </s> remove     def close(self):
 </s> add     def close(self) -> None: </s> remove             self.writer.append_data(save_image[:, :, ::-1])
 </s> add             self._writer.append_data(save_image[:, :, ::-1]) </s> remove     def pre_encode(self, image):  # pylint: disable=unused-argument,no-self-use
        """ If the writer supports pre-encoding then override this to pre-encode
            the image in lib/convert.py to speed up saving """
 </s> add     def pre_encode(self, image) -> None:  # pylint: disable=unused-argument,no-self-use
        """ Some writer plugins support the pre-encoding of images prior to saving out. As
        patching is done in multiple threads, but writing is done in a single thread, it can
        speed up the process to do any pre-encoding as part of the converter process.

        If the writer supports pre-encoding then override this to pre-encode the image in
        :module:`lib.convert` to speed up saving.

        Parameters
        ----------
        image: :class:`numpy.ndarray`
            The converted image that is to be run through the pre-encoding function

        Returns
        -------
        python function or ``None``
            If ``None`` then the writer does not support pre-encoding, otherwise return the python
            function that will pre-encode the image
        """
        self._writer.close()
        self._mux_audio()

    def _mux_audio(self) -> None:
        """ Mux audio the audio to the generated video temp file.
          logger.trace("Current cache size: %s", len(self.cache))
  
      def close(self):
          """ Close the ffmpeg writer and mux the audio """
        self._writer.close()
        self._mux_audio()

    def _mux_audio(self) -> None:
        """ Mux audio the audio to the generated video temp file.
        self._writer.close()
        self._mux_audio()

    def _mux_audio(self) -> None:
        """ Mux audio the audio to the generated video temp file.
  
      def mux_audio(self):
          """ Mux audio
              ImageIO is a useful lib for frames > video as it also packages the ffmpeg binary
              however muxing audio is non-trivial, so this is done afterwards with ffmpy.
keep keep keep keep replace replace keep keep keep keep keep
 ffmpeg writer: Create new filename if output pre-exists 
plugins/convert/writer/ffmpeg.py