          """ FFMPEG Output parameters """
          codec = self.config["codec"]
          tune = self.config["tune"]
          # Force all frames to the same size
          output_args = ["-vf", "scale={}".format(self.output_dimensions)]
  
          output_args.extend(["-c:v", codec])
          output_args.extend(["-crf", str(self.config["crf"])])
          output_args.extend(["-preset", self.config["preset"]])
  
 
</s> remove     def output_params(self):
        """ FFMPEG Output parameters """
 </s> add     def _output_params(self) -> List[str]:
        """ list: The FFMPEG Output parameters """ </s> remove         if tune is not None and tune in self.valid_tune[codec]:
 </s> add         if tune is not None and tune in self._valid_tunes[codec]: </s> remove     def set_dimensions(self, frame_dims):
        """ Set the dimensions based on a given frame frame. This protects against different
            sized images coming in and ensure all images go out at the same size for writers
            that require it and mapped to a macro block size 16"""
 </s> add     def _set_dimensions(self, frame_dims) -> None:
        """ Set the attribute :attr:`_output_dimensions` based on the first frame received.
        This protects against different sized images coming in and ensures all images are written
        to ffmpeg at the same size. Dimensions are mapped to a macro block size 16. """ </s> remove         self.output_dimensions = "{}:{}".format(
            int(ceil(frame_dims[1] / 16) * 16),
            int(ceil(frame_dims[0] / 16) * 16))
        logger.debug("Set dimensions: %s", self.output_dimensions)

    def save_from_cache(self):
        """ Save all the frames that are ready to be output from cache """
        while self.frame_order:
            if self.frame_order[0] not in self.cache:
 </s> add         self._output_dimensions = (f"{int(ceil(frame_dims[1] / 16) * 16)}:"
                                   f"{int(ceil(frame_dims[0] / 16) * 16)}")
        logger.debug("Set dimensions: %s", self._output_dimensions)

    def _save_from_cache(self) -> None:
        """ Writes any consecutive frames to the video container that are ready to be output
        from the cache. """
        while self._frame_order:
            if self._frame_order[0] not in self.cache: </s> remove         self.save_from_cache()
 </s> add         self._save_from_cache()
        output_args = ["-vf", f"scale={self._output_dimensions}"]
          """ FFMPEG Output parameters """
          codec = self.config["codec"]
          tune = self.config["tune"]
          # Force all frames to the same size
        output_args = ["-vf", f"scale={self._output_dimensions}"]
  
          output_args.extend(["-c:v", codec])
          output_args.extend(["-crf", str(self.config["crf"])])
          output_args.extend(["-preset", self.config["preset"]])
  
keep keep keep keep replace keep keep keep keep keep
 ffmpeg writer: Create new filename if output pre-exists 
plugins/convert/writer/ffmpeg.py