def METHOD_NAME(self, path: Path, device: dai.Device, xouts: List['XoutFrames']):
    """
    Update the recorder with new streams.
    Args:
        path: Path to save the output. Either a folder or a file.
        device: Device to get the streams from.
        xouts: List of output streams.
    """
    if path is None:
        return
    self.path = path
    if path.suffix == '' and path != Path('.'):  # If no extension, create a folder
        self.path.mkdir(parents=True, exist_ok=True)
    for xout in xouts:
        # for example, 'color_bitstream' (encoded) or 'color_video' (unencoded),
        # if component was created with name='color'
        xout_name = xout.name  # for example, 'color' --> file is color.mp4 (encoded) or color.avi (unencoded)
        file_name = xout_name
        if file_name.startswith('CameraBoardSocket.'):
            file_name = file_name[len('CameraBoardSocket.'):]
        stream = OakStream(xout)
        fourcc = stream.fourcc()  # TODO add default fourcc? stream.fourcc() can be None.
        print(fourcc, xout_name, stream.type)
        if stream.is_raw() or stream.is_depth():
            from .video_writers.video_writer import VideoWriter
            self._writers[xout_name] = VideoWriter(self.path, file_name, self._lossless)
        else:
            try:
                from .video_writers.av_writer import AvWriter
                self._writers[xout_name] = AvWriter(self.path, file_name, fourcc)
            except Exception as e:
                # TODO here can be other errors, not only import error
                logging.warning(f'Exception while creating AvWriter: {e}.'
                                '\nFalling back to FileWriter, saving uncontainerized encoded streams.')
                from .video_writers.file_writer import FileWriter
                self._writers[xout_name] = FileWriter(self.path, file_name, fourcc)