Skip to content

util

set_output(clip, name=None, frame_info=False, allow_comp=True, cache=None, **kwargs)

Outputs a clip. Less to type. If you're using vsview, cache is a no-op.

Source code in vodesfunc/util.py
def set_output(
    clip: vs.VideoNode | src_file,
    name: str | None = None,
    frame_info: bool = False,
    allow_comp: bool = True,
    cache: bool | None = None,
    **kwargs: Any,
) -> vs.VideoNode:
    """
    Outputs a clip. Less to type.
    If you're using vsview, cache is a no-op.
    """
    if isinstance(clip, src_file):
        clip = clip.src_cut

    if frame_info and name:
        clip = _print_frameinfo(clip, name)

    is_preview_vsview = False
    with suppress(ImportError):
        from vsview.api.info import is_preview as vsv_is_preview

        is_preview_vsview = vsv_is_preview()

        if is_preview_vsview:
            from vsview import set_output as vsv_out

            vsv_out(clip, name, allow_comp=allow_comp, **kwargs)
            return clip

    is_preview_vspreview = False
    with suppress(ImportError):
        is_preview_vspreview = bool(sys.modules.get("__vspreview__"))

        if is_preview_vspreview:
            from vspreview.api import set_output as vsp_out

            args = KwargsT(name=name, cache=cache or True, disable_comp=not allow_comp)
            if kwargs:
                args.update(**kwargs)
            vsp_out(clip, **args)
            return clip

    if not is_preview_vspreview and not is_preview_vsview:
        if name is not None:
            clip = clip.std.SetFrameProp("Name", data=name)

        clip.set_output(len(vs.get_outputs()))

    return clip