def AddVideoInput()

in c2/lib/utils/model_helper.py [0:0]


def AddVideoInput(model, reader, **kwargs):
    if 'input_type' in kwargs:
        input_type = kwargs['input_type']
    else:
        input_type = False
    if 'get_video_id' in kwargs:
        get_video_id = kwargs['get_video_id']
    else:
        get_video_id = False
    if 'get_start_frame' in kwargs:
        get_start_frame = kwargs['get_start_frame']
    else:
        get_start_frame = False

    if input_type == 0:
        log.info('outputing rgb data')
    elif input_type == 1:
        log.info('outputing optical flow data')
    elif input_type == 2:
        log.info('outputing logmels')
    elif input_type == 3:
        log.info('outputing rgb and logmels')
    else:
        log.info('unknown input_type option')

    if input_type <= 1: # no audio decoding
        if get_video_id:
            if get_start_frame:
                data, label, video_id, start_frame = model.net.VideoInput(
                    reader,
                    ["data", "label", "video_id", "start_frame"],
                    name="data",
                    **kwargs
                )
            else:
                data, label, video_id = model.net.VideoInput(
                    reader,
                    ["data", "label", "video_id"],
                    name="data",
                    **kwargs
                )
        else:
            data, label = model.net.VideoInput(
                reader,
                ["data", "label"],
                name="data",
                **kwargs
            )
    else:
        if input_type == 2:
            if get_video_id:
                if get_start_frame:
                    data, label, video_id, start_frame = model.net.AVInput(
                        reader,
                        ["data", "label", "video_id", "start_frame"],
                        name="data",
                        **kwargs
                    )
                else:
                    data, label, video_id = model.net.AVInput(
                        reader,
                        ["data", "label", "video_id"],
                        name="data",
                        **kwargs
                    )
            else:
                data, label = model.net.AVInput(
                    reader,
                    ["data", "label"],
                    name="data",
                    **kwargs
                )
        else:
            assert input_type == 3, "unknown video input type"
            if get_video_id:
                if get_start_frame:
                    data, logmels, label, video_id, start_frame = model.net.AVInput(
                        reader,
                        ["data", "logmels", "label", "video_id", "start_frame"],
                        name="data",
                        **kwargs
                    )
                else:
                    data, logmels, label, video_id = model.net.AVInput(
                        reader,
                        ["data", "logmels", "label", "video_id"],
                        name="data",
                        **kwargs
                    )
            else:
                data, logmels, label = model.net.AVInput(
                    reader,
                    ["data", "logmels", "label"],
                    name="data",
                    **kwargs
                )
            logmels = model.StopGradient(logmels, logmels)

    data = model.StopGradient(data, data)