static int ff_filter_frame_framed(AVFilterLink *link, AVFrame *frame)

{

    int (*filter_frame)(AVFilterLink *, AVFrame *);

    AVFilterContext *dstctx = link->dst;

    AVFilterPad *dst = link->dstpad;

    AVFrame *out = NULL;

    int ret;

    AVFilterCommand *cmd= link->dst->command_queue;

    int64_t pts;



    if (link->closed) {

        av_frame_free(&frame);

        return AVERROR_EOF;

    }



    if (!(filter_frame = dst->filter_frame))

        filter_frame = default_filter_frame;



    /* copy the frame if needed */

    if (dst->needs_writable && !av_frame_is_writable(frame)) {

        av_log(link->dst, AV_LOG_DEBUG, "Copying data in avfilter.\n");



        switch (link->type) {

        case AVMEDIA_TYPE_VIDEO:

            out = ff_get_video_buffer(link, link->w, link->h);

            break;

        case AVMEDIA_TYPE_AUDIO:

            out = ff_get_audio_buffer(link, frame->nb_samples);

            break;

        default:

            ret = AVERROR(EINVAL);

            goto fail;

        }

        if (!out) {

            ret = AVERROR(ENOMEM);

            goto fail;

        }



        ret = av_frame_copy_props(out, frame);

        if (ret < 0)

            goto fail;



        switch (link->type) {

        case AVMEDIA_TYPE_VIDEO:

            av_image_copy(out->data, out->linesize, (const uint8_t **)frame->data, frame->linesize,

                          frame->format, frame->width, frame->height);

            break;

        case AVMEDIA_TYPE_AUDIO:

            av_samples_copy(out->extended_data, frame->extended_data,

                            0, 0, frame->nb_samples,

                            av_get_channel_layout_nb_channels(frame->channel_layout),

                            frame->format);

            break;

        default:

            ret = AVERROR(EINVAL);

            goto fail;

        }



        av_frame_free(&frame);

    } else

        out = frame;



    while(cmd && cmd->time <= out->pts * av_q2d(link->time_base)){

        av_log(link->dst, AV_LOG_DEBUG,

               "Processing command time:%f command:%s arg:%s\n",

               cmd->time, cmd->command, cmd->arg);

        avfilter_process_command(link->dst, cmd->command, cmd->arg, 0, 0, cmd->flags);

        ff_command_queue_pop(link->dst);

        cmd= link->dst->command_queue;

    }



    pts = out->pts;

    if (dstctx->enable_str) {

        int64_t pos = av_frame_get_pkt_pos(out);

        dstctx->var_values[VAR_N] = link->frame_count;

        dstctx->var_values[VAR_T] = pts == AV_NOPTS_VALUE ? NAN : pts * av_q2d(link->time_base);

        dstctx->var_values[VAR_W] = link->w;

        dstctx->var_values[VAR_H] = link->h;

        dstctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;



        dstctx->is_disabled = fabs(av_expr_eval(dstctx->enable, dstctx->var_values, NULL)) < 0.5;

        if (dstctx->is_disabled &&

            (dstctx->filter->flags & AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC))

            filter_frame = default_filter_frame;

    }

    ret = filter_frame(link, out);

    link->frame_count++;

    link->frame_requested = 0;

    ff_update_link_current_pts(link, pts);

    return ret;



fail:

    av_frame_free(&out);

    av_frame_free(&frame);

    return ret;

}

static int ff_filter_frame_framed(AVFilterLink *link, AVFrame *frame)

{

    int (*filter_frame)(AVFilterLink *, AVFrame *);

    AVFilterContext *dstctx = link->dst;

    AVFilterPad *dst = link->dstpad;

    AVFrame *out = NULL;

    int ret;

    AVFilterCommand *cmd= link->dst->command_queue;

    int64_t pts;



    if (link->closed) {

        av_frame_free(&frame);

        return AVERROR_EOF;

    }



    if (!(filter_frame = dst->filter_frame))

        filter_frame = default_filter_frame;



    

    if (dst->needs_writable && !av_frame_is_writable(frame)) {

        av_log(link->dst, AV_LOG_DEBUG, "Copying data in avfilter.\n");



        switch (link->type) {

        case AVMEDIA_TYPE_VIDEO:

            out = ff_get_video_buffer(link, link->w, link->h);

            break;

        case AVMEDIA_TYPE_AUDIO:

            out = ff_get_audio_buffer(link, frame->nb_samples);

            break;

        default:

            ret = AVERROR(EINVAL);

            goto fail;

        }

        if (!out) {

            ret = AVERROR(ENOMEM);

            goto fail;

        }



        ret = av_frame_copy_props(out, frame);

        if (ret < 0)

            goto fail;



        switch (link->type) {

        case AVMEDIA_TYPE_VIDEO:

            av_image_copy(out->data, out->linesize, (const uint8_t **)frame->data, frame->linesize,

                          frame->format, frame->width, frame->height);

            break;

        case AVMEDIA_TYPE_AUDIO:

            av_samples_copy(out->extended_data, frame->extended_data,

                            0, 0, frame->nb_samples,

                            av_get_channel_layout_nb_channels(frame->channel_layout),

                            frame->format);

            break;

        default:

            ret = AVERROR(EINVAL);

            goto fail;

        }



        av_frame_free(&frame);

    } else

        out = frame;



    while(cmd && cmd->time <= out->pts * av_q2d(link->time_base)){

        av_log(link->dst, AV_LOG_DEBUG,

               "Processing command time:%f command:%s arg:%s\n",

               cmd->time, cmd->command, cmd->arg);

        avfilter_process_command(link->dst, cmd->command, cmd->arg, 0, 0, cmd->flags);

        ff_command_queue_pop(link->dst);

        cmd= link->dst->command_queue;

    }



    pts = out->pts;

    if (dstctx->enable_str) {

        int64_t pos = av_frame_get_pkt_pos(out);

        dstctx->var_values[VAR_N] = link->frame_count;

        dstctx->var_values[VAR_T] = pts == AV_NOPTS_VALUE ? NAN : pts * av_q2d(link->time_base);

        dstctx->var_values[VAR_W] = link->w;

        dstctx->var_values[VAR_H] = link->h;

        dstctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;



        dstctx->is_disabled = fabs(av_expr_eval(dstctx->enable, dstctx->var_values, NULL)) < 0.5;

        if (dstctx->is_disabled &&

            (dstctx->filter->flags & AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC))

            filter_frame = default_filter_frame;

    }

    ret = filter_frame(link, out);

    link->frame_count++;

    link->frame_requested = 0;

    ff_update_link_current_pts(link, pts);

    return ret;



fail:

    av_frame_free(&out);

    av_frame_free(&frame);

    return ret;

}

VAR_4staticVAR_4 VAR_4intVAR_4 VAR_4ff_filter_frame_framedVAR_4(VAR_4AVFilterLinkVAR_4 *VAR_4VAR_0VAR_4, VAR_4AVFrameVAR_4 *VAR_4VAR_1VAR_4)

{

    VAR_4intVAR_4 (*VAR_4VAR_2VAR_4)(VAR_4AVFilterLinkVAR_4 *, VAR_4AVFrameVAR_4 *);

    VAR_4AVFilterContextVAR_4 *VAR_4dstctxVAR_4 = VAR_4VAR_0VAR_4->VAR_4dstVAR_4;

    VAR_4AVFilterPadVAR_4 *VAR_4dstVAR_4 = VAR_4VAR_0VAR_4->VAR_4dstpadVAR_4;

    VAR_4AVFrameVAR_4 *VAR_4outVAR_4 = VAR_4NULLVAR_4;

    VAR_4intVAR_4 VAR_4retVAR_4;

    VAR_4AVFilterCommandVAR_4 *VAR_4cmdVAR_4= VAR_4VAR_0VAR_4->VAR_4dstVAR_4->VAR_4command_queueVAR_4;

    VAR_4int64_tVAR_4 VAR_4ptsVAR_4;



    VAR_4ifVAR_4 (VAR_4VAR_0VAR_4->VAR_4closedVAR_4) {

        VAR_4av_frame_freeVAR_4(&VAR_4VAR_1VAR_4);

        VAR_4returnVAR_4 VAR_4AVERROR_EOFVAR_4;

    }



    VAR_4ifVAR_4 (!(VAR_4VAR_2VAR_4 = VAR_4dstVAR_4->VAR_4VAR_2VAR_4))

        VAR_4VAR_2VAR_4 = VAR_4default_filter_frameVAR_4;



    

    VAR_4ifVAR_4 (VAR_4dstVAR_4->VAR_4needs_writableVAR_4 && !VAR_4av_frame_is_writableVAR_4(VAR_4VAR_1VAR_4)) {

        VAR_4av_logVAR_4(VAR_4VAR_0VAR_4->VAR_4dstVAR_4, VAR_4AV_LOG_DEBUGVAR_4, "VAR_4CopyingVAR_4 VAR_4dataVAR_4 VAR_4inVAR_4 VAR_4avfilterVAR_4.\VAR_4nVAR_4");



        VAR_4switchVAR_4 (VAR_4VAR_0VAR_4->VAR_4typeVAR_4) {

        VAR_4caseVAR_4 VAR_4AVMEDIA_TYPE_VIDEOVAR_4:

            VAR_4outVAR_4 = VAR_4ff_get_video_bufferVAR_4(VAR_4VAR_0VAR_4, VAR_4VAR_0VAR_4->VAR_4wVAR_4, VAR_4VAR_0VAR_4->VAR_4hVAR_4);

            VAR_4breakVAR_4;

        VAR_4caseVAR_4 VAR_4AVMEDIA_TYPE_AUDIOVAR_4:

            VAR_4outVAR_4 = VAR_4ff_get_audio_bufferVAR_4(VAR_4VAR_0VAR_4, VAR_4VAR_1VAR_4->VAR_4nb_samplesVAR_4);

            VAR_4breakVAR_4;

        VAR_4defaultVAR_4:

            VAR_4retVAR_4 = VAR_4AVERRORVAR_4(VAR_4EINVALVAR_4);

            VAR_4gotoVAR_4 VAR_4failVAR_4;

        }

        VAR_4ifVAR_4 (!VAR_4outVAR_4) {

            VAR_4retVAR_4 = VAR_4AVERRORVAR_4(VAR_4ENOMEMVAR_4);

            VAR_4gotoVAR_4 VAR_4failVAR_4;

        }



        VAR_4retVAR_4 = VAR_4av_frame_copy_propsVAR_4(VAR_4outVAR_4, VAR_4VAR_1VAR_4);

        VAR_4ifVAR_4 (VAR_4retVAR_4 < VAR_40VAR_4)

            VAR_4gotoVAR_4 VAR_4failVAR_4;



        VAR_4switchVAR_4 (VAR_4VAR_0VAR_4->VAR_4typeVAR_4) {

        VAR_4caseVAR_4 VAR_4AVMEDIA_TYPE_VIDEOVAR_4:

            VAR_4av_image_copyVAR_4(VAR_4outVAR_4->VAR_4dataVAR_4, VAR_4outVAR_4->VAR_4linesizeVAR_4, (VAR_4constVAR_4 VAR_4uint8_tVAR_4 **)VAR_4VAR_1VAR_4->VAR_4dataVAR_4, VAR_4VAR_1VAR_4->VAR_4linesizeVAR_4,

                          VAR_4VAR_1VAR_4->VAR_4formatVAR_4, VAR_4VAR_1VAR_4->VAR_4widthVAR_4, VAR_4VAR_1VAR_4->VAR_4heightVAR_4);

            VAR_4breakVAR_4;

        VAR_4caseVAR_4 VAR_4AVMEDIA_TYPE_AUDIOVAR_4:

            VAR_4av_samples_copyVAR_4(VAR_4outVAR_4->VAR_4extended_dataVAR_4, VAR_4VAR_1VAR_4->VAR_4extended_dataVAR_4,

                            VAR_40VAR_4, VAR_40VAR_4, VAR_4VAR_1VAR_4->VAR_4nb_samplesVAR_4,

                            VAR_4av_get_channel_layout_nb_channelsVAR_4(VAR_4VAR_1VAR_4->VAR_4channel_layoutVAR_4),

                            VAR_4VAR_1VAR_4->VAR_4formatVAR_4);

            VAR_4breakVAR_4;

        VAR_4defaultVAR_4:

            VAR_4retVAR_4 = VAR_4AVERRORVAR_4(VAR_4EINVALVAR_4);

            VAR_4gotoVAR_4 VAR_4failVAR_4;

        }



        VAR_4av_frame_freeVAR_4(&VAR_4VAR_1VAR_4);

    } VAR_4elseVAR_4

        VAR_4outVAR_4 = VAR_4VAR_1VAR_4;



    VAR_4whileVAR_4(VAR_4cmdVAR_4 && VAR_4cmdVAR_4->VAR_4timeVAR_4 <= VAR_4outVAR_4->VAR_4ptsVAR_4 * VAR_4av_q2dVAR_4(VAR_4VAR_0VAR_4->VAR_4time_baseVAR_4)){

        VAR_4av_logVAR_4(VAR_4VAR_0VAR_4->VAR_4dstVAR_4, VAR_4AV_LOG_DEBUGVAR_4,

               "VAR_4ProcessingVAR_4 VAR_4commandVAR_4 VAR_4timeVAR_4:%VAR_4fVAR_4 VAR_4commandVAR_4:%VAR_4sVAR_4 VAR_4argVAR_4:%VAR_4sVAR_4\VAR_4nVAR_4",

               VAR_4cmdVAR_4->VAR_4timeVAR_4, VAR_4cmdVAR_4->VAR_4commandVAR_4, VAR_4cmdVAR_4->VAR_4argVAR_4);

        VAR_4avfilter_process_commandVAR_4(VAR_4VAR_0VAR_4->VAR_4dstVAR_4, VAR_4cmdVAR_4->VAR_4commandVAR_4, VAR_4cmdVAR_4->VAR_4argVAR_4, VAR_40VAR_4, VAR_40VAR_4, VAR_4cmdVAR_4->VAR_4flagsVAR_4);

        VAR_4ff_command_queue_popVAR_4(VAR_4VAR_0VAR_4->VAR_4dstVAR_4);

        VAR_4cmdVAR_4= VAR_4VAR_0VAR_4->VAR_4dstVAR_4->VAR_4command_queueVAR_4;

    }



    VAR_4ptsVAR_4 = VAR_4outVAR_4->VAR_4ptsVAR_4;

    VAR_4ifVAR_4 (VAR_4dstctxVAR_4->VAR_4enable_strVAR_4) {

        VAR_4int64_tVAR_4 VAR_4posVAR_4 = VAR_4av_frame_get_pkt_posVAR_4(VAR_4outVAR_4);

        VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_NVAR_4] = VAR_4VAR_0VAR_4->VAR_4frame_countVAR_4;

        VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_TVAR_4] = VAR_4ptsVAR_4 == VAR_4AV_NOPTS_VALUEVAR_4 ? VAR_4NANVAR_4 : VAR_4ptsVAR_4 * VAR_4av_q2dVAR_4(VAR_4VAR_0VAR_4->VAR_4time_baseVAR_4);

        VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_WVAR_4] = VAR_4VAR_0VAR_4->VAR_4wVAR_4;

        VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_HVAR_4] = VAR_4VAR_0VAR_4->VAR_4hVAR_4;

        VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_POSVAR_4] = VAR_4posVAR_4 == -VAR_41VAR_4 ? VAR_4NANVAR_4 : VAR_4posVAR_4;



        VAR_4dstctxVAR_4->VAR_4is_disabledVAR_4 = VAR_4fabsVAR_4(VAR_4av_expr_evalVAR_4(VAR_4dstctxVAR_4->VAR_4enableVAR_4, VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4, VAR_4NULLVAR_4)) < VAR_40VAR_4.VAR_45VAR_4;

        VAR_4ifVAR_4 (VAR_4dstctxVAR_4->VAR_4is_disabledVAR_4 &&

            (VAR_4dstctxVAR_4->VAR_4filterVAR_4->VAR_4flagsVAR_4 & VAR_4AVFILTER_FLAG_SUPPORT_TIMELINE_GENERICVAR_4))

            VAR_4VAR_2VAR_4 = VAR_4default_filter_frameVAR_4;

    }

    VAR_4retVAR_4 = VAR_4VAR_2VAR_4(VAR_4VAR_0VAR_4, VAR_4outVAR_4);

    VAR_4VAR_0VAR_4->VAR_4frame_countVAR_4++;

    VAR_4VAR_0VAR_4->VAR_4frame_requestedVAR_4 = VAR_40VAR_4;

    VAR_4ff_update_link_current_ptsVAR_4(VAR_4VAR_0VAR_4, VAR_4ptsVAR_4);

    VAR_4returnVAR_4 VAR_4retVAR_4;



VAR_4failVAR_4:

    VAR_4av_frame_freeVAR_4(&VAR_4outVAR_4);

    VAR_4av_frame_freeVAR_4(&VAR_4VAR_1VAR_4);

    VAR_4returnVAR_4 VAR_4retVAR_4;

}

VAR_4staticVAR_4 VAR_4intVAR_4 VAR_4ff_filter_frame_framedVAR_4(VAR_4AVFilterLinkVAR_4 *VAR_4VAR_0VAR_4, VAR_4AVFrameVAR_4 *VAR_4VAR_1VAR_4)
{ VAR_4intVAR_4 (*VAR_4VAR_2VAR_4)(VAR_4AVFilterLinkVAR_4 *, VAR_4AVFrameVAR_4 *); VAR_4AVFilterContextVAR_4 *VAR_4dstctxVAR_4 = VAR_4VAR_0VAR_4->VAR_4dstVAR_4; VAR_4AVFilterPadVAR_4 *VAR_4dstVAR_4 = VAR_4VAR_0VAR_4->VAR_4dstpadVAR_4; VAR_4AVFrameVAR_4 *VAR_4outVAR_4 = VAR_4NULLVAR_4; VAR_4intVAR_4 VAR_4retVAR_4; VAR_4AVFilterCommandVAR_4 *VAR_4cmdVAR_4= VAR_4VAR_0VAR_4->VAR_4dstVAR_4->VAR_4command_queueVAR_4; VAR_4int64_tVAR_4 VAR_4ptsVAR_4; VAR_4ifVAR_4 (VAR_4VAR_0VAR_4->VAR_4closedVAR_4) { VAR_4av_frame_freeVAR_4(&VAR_4VAR_1VAR_4); VAR_4returnVAR_4 VAR_4AVERROR_EOFVAR_4; } VAR_4ifVAR_4 (!(VAR_4VAR_2VAR_4 = VAR_4dstVAR_4->VAR_4VAR_2VAR_4))
VAR_4VAR_2VAR_4 = VAR_4default_filter_frameVAR_4; VAR_4ifVAR_4 (VAR_4dstVAR_4->VAR_4needs_writableVAR_4 && !VAR_4av_frame_is_writableVAR_4(VAR_4VAR_1VAR_4)) { VAR_4av_logVAR_4(VAR_4VAR_0VAR_4->VAR_4dstVAR_4, VAR_4AV_LOG_DEBUGVAR_4, "VAR_4CopyingVAR_4 VAR_4dataVAR_4 VAR_4inVAR_4 VAR_4avfilterVAR_4.\VAR_4nVAR_4"); VAR_4switchVAR_4 (VAR_4VAR_0VAR_4->VAR_4typeVAR_4) { VAR_4caseVAR_4 VAR_4AVMEDIA_TYPE_VIDEOVAR_4:
VAR_4outVAR_4 = VAR_4ff_get_video_bufferVAR_4(VAR_4VAR_0VAR_4, VAR_4VAR_0VAR_4->VAR_4wVAR_4, VAR_4VAR_0VAR_4->VAR_4hVAR_4); VAR_4breakVAR_4; VAR_4caseVAR_4 VAR_4AVMEDIA_TYPE_AUDIOVAR_4:
VAR_4outVAR_4 = VAR_4ff_get_audio_bufferVAR_4(VAR_4VAR_0VAR_4, VAR_4VAR_1VAR_4->VAR_4nb_samplesVAR_4); VAR_4breakVAR_4; VAR_4defaultVAR_4:
VAR_4retVAR_4 = VAR_4AVERRORVAR_4(VAR_4EINVALVAR_4); VAR_4gotoVAR_4 VAR_4failVAR_4; } VAR_4ifVAR_4 (!VAR_4outVAR_4) { VAR_4retVAR_4 = VAR_4AVERRORVAR_4(VAR_4ENOMEMVAR_4); VAR_4gotoVAR_4 VAR_4failVAR_4; } VAR_4retVAR_4 = VAR_4av_frame_copy_propsVAR_4(VAR_4outVAR_4, VAR_4VAR_1VAR_4); VAR_4ifVAR_4 (VAR_4retVAR_4 < VAR_40VAR_4)
VAR_4gotoVAR_4 VAR_4failVAR_4; VAR_4switchVAR_4 (VAR_4VAR_0VAR_4->VAR_4typeVAR_4) { VAR_4caseVAR_4 VAR_4AVMEDIA_TYPE_VIDEOVAR_4:
VAR_4av_image_copyVAR_4(VAR_4outVAR_4->VAR_4dataVAR_4, VAR_4outVAR_4->VAR_4linesizeVAR_4, (VAR_4constVAR_4 VAR_4uint8_tVAR_4 **)VAR_4VAR_1VAR_4->VAR_4dataVAR_4, VAR_4VAR_1VAR_4->VAR_4linesizeVAR_4,
VAR_4VAR_1VAR_4->VAR_4formatVAR_4, VAR_4VAR_1VAR_4->VAR_4widthVAR_4, VAR_4VAR_1VAR_4->VAR_4heightVAR_4); VAR_4breakVAR_4; VAR_4caseVAR_4 VAR_4AVMEDIA_TYPE_AUDIOVAR_4:
VAR_4av_samples_copyVAR_4(VAR_4outVAR_4->VAR_4extended_dataVAR_4, VAR_4VAR_1VAR_4->VAR_4extended_dataVAR_4,
VAR_40VAR_4, VAR_40VAR_4, VAR_4VAR_1VAR_4->VAR_4nb_samplesVAR_4,
VAR_4av_get_channel_layout_nb_channelsVAR_4(VAR_4VAR_1VAR_4->VAR_4channel_layoutVAR_4),
VAR_4VAR_1VAR_4->VAR_4formatVAR_4); VAR_4breakVAR_4; VAR_4defaultVAR_4:
VAR_4retVAR_4 = VAR_4AVERRORVAR_4(VAR_4EINVALVAR_4); VAR_4gotoVAR_4 VAR_4failVAR_4; } VAR_4av_frame_freeVAR_4(&VAR_4VAR_1VAR_4); } VAR_4elseVAR_4 VAR_4outVAR_4 = VAR_4VAR_1VAR_4; VAR_4whileVAR_4(VAR_4cmdVAR_4 && VAR_4cmdVAR_4->VAR_4timeVAR_4 <= VAR_4outVAR_4->VAR_4ptsVAR_4 * VAR_4av_q2dVAR_4(VAR_4VAR_0VAR_4->VAR_4time_baseVAR_4)){ VAR_4av_logVAR_4(VAR_4VAR_0VAR_4->VAR_4dstVAR_4, VAR_4AV_LOG_DEBUGVAR_4,
"VAR_4ProcessingVAR_4 VAR_4commandVAR_4 VAR_4timeVAR_4:%VAR_4fVAR_4 VAR_4commandVAR_4:%VAR_4sVAR_4 VAR_4argVAR_4:%VAR_4sVAR_4\VAR_4nVAR_4",
VAR_4cmdVAR_4->VAR_4timeVAR_4, VAR_4cmdVAR_4->VAR_4commandVAR_4, VAR_4cmdVAR_4->VAR_4argVAR_4); VAR_4avfilter_process_commandVAR_4(VAR_4VAR_0VAR_4->VAR_4dstVAR_4, VAR_4cmdVAR_4->VAR_4commandVAR_4, VAR_4cmdVAR_4->VAR_4argVAR_4, VAR_40VAR_4, VAR_40VAR_4, VAR_4cmdVAR_4->VAR_4flagsVAR_4); VAR_4ff_command_queue_popVAR_4(VAR_4VAR_0VAR_4->VAR_4dstVAR_4); VAR_4cmdVAR_4= VAR_4VAR_0VAR_4->VAR_4dstVAR_4->VAR_4command_queueVAR_4; } VAR_4ptsVAR_4 = VAR_4outVAR_4->VAR_4ptsVAR_4; VAR_4ifVAR_4 (VAR_4dstctxVAR_4->VAR_4enable_strVAR_4) { VAR_4int64_tVAR_4 VAR_4posVAR_4 = VAR_4av_frame_get_pkt_posVAR_4(VAR_4outVAR_4); VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_NVAR_4] = VAR_4VAR_0VAR_4->VAR_4frame_countVAR_4; VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_TVAR_4] = VAR_4ptsVAR_4 == VAR_4AV_NOPTS_VALUEVAR_4 ? VAR_4NANVAR_4 : VAR_4ptsVAR_4 * VAR_4av_q2dVAR_4(VAR_4VAR_0VAR_4->VAR_4time_baseVAR_4); VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_WVAR_4] = VAR_4VAR_0VAR_4->VAR_4wVAR_4; VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_HVAR_4] = VAR_4VAR_0VAR_4->VAR_4hVAR_4; VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4[VAR_4VAR_POSVAR_4] = VAR_4posVAR_4 == -VAR_41VAR_4 ? VAR_4NANVAR_4 : VAR_4posVAR_4; VAR_4dstctxVAR_4->VAR_4is_disabledVAR_4 = VAR_4fabsVAR_4(VAR_4av_expr_evalVAR_4(VAR_4dstctxVAR_4->VAR_4enableVAR_4, VAR_4dstctxVAR_4->VAR_4var_valuesVAR_4, VAR_4NULLVAR_4)) < VAR_40VAR_4.VAR_45VAR_4; VAR_4ifVAR_4 (VAR_4dstctxVAR_4->VAR_4is_disabledVAR_4 &&
(VAR_4dstctxVAR_4->VAR_4filterVAR_4->VAR_4flagsVAR_4 & VAR_4AVFILTER_FLAG_SUPPORT_TIMELINE_GENERICVAR_4))
VAR_4VAR_2VAR_4 = VAR_4default_filter_frameVAR_4; } VAR_4retVAR_4 = VAR_4VAR_2VAR_4(VAR_4VAR_0VAR_4, VAR_4outVAR_4); VAR_4VAR_0VAR_4->VAR_4frame_countVAR_4++; VAR_4VAR_0VAR_4->VAR_4frame_requestedVAR_4 = VAR_40VAR_4; VAR_4ff_update_link_current_ptsVAR_4(VAR_4VAR_0VAR_4, VAR_4ptsVAR_4); VAR_4returnVAR_4 VAR_4retVAR_4; VAR_4failVAR_4:
VAR_4av_frame_freeVAR_4(&VAR_4outVAR_4); VAR_4av_frame_freeVAR_4(&VAR_4VAR_1VAR_4); VAR_4returnVAR_4 VAR_4retVAR_4; }