int ff_h264_execute_decode_slices(H264Context *h, unsigned context_count)

{

    AVCodecContext *const avctx = h->avctx;

    H264SliceContext *sl;

    int i;



    av_assert0(context_count && h->slice_ctx[context_count - 1].mb_y < h->mb_height);



    if (h->avctx->hwaccel ||

        h->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)

        return 0;

    if (context_count == 1) {

        int ret = decode_slice(avctx, &h->slice_ctx[0]);

        h->mb_y = h->slice_ctx[0].mb_y;

        return ret;

    } else {

        av_assert0(context_count > 0);

        for (i = 1; i < context_count; i++) {

            sl                 = &h->slice_ctx[i];

            if (CONFIG_ERROR_RESILIENCE) {

                sl->er.error_count = 0;

            }

        }



        avctx->execute(avctx, decode_slice, h->slice_ctx,

                       NULL, context_count, sizeof(h->slice_ctx[0]));



        /* pull back stuff from slices to master context */

        sl                   = &h->slice_ctx[context_count - 1];

        h->mb_y              = sl->mb_y;

        if (CONFIG_ERROR_RESILIENCE) {

            for (i = 1; i < context_count; i++)

                h->slice_ctx[0].er.error_count += h->slice_ctx[i].er.error_count;

        }

    }



    return 0;

}

int ff_h264_execute_decode_slices(H264Context *h, unsigned context_count)

{

    AVCodecContext *const avctx = h->avctx;

    H264SliceContext *sl;

    int i;



    av_assert0(context_count && h->slice_ctx[context_count - 1].mb_y < h->mb_height);



    if (h->avctx->hwaccel ||

        h->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)

        return 0;

    if (context_count == 1) {

        int ret = decode_slice(avctx, &h->slice_ctx[0]);

        h->mb_y = h->slice_ctx[0].mb_y;

        return ret;

    } else {

        av_assert0(context_count > 0);

        for (i = 1; i < context_count; i++) {

            sl                 = &h->slice_ctx[i];

            if (CONFIG_ERROR_RESILIENCE) {

                sl->er.error_count = 0;

            }

        }



        avctx->execute(avctx, decode_slice, h->slice_ctx,

                       NULL, context_count, sizeof(h->slice_ctx[0]));



        

        sl                   = &h->slice_ctx[context_count - 1];

        h->mb_y              = sl->mb_y;

        if (CONFIG_ERROR_RESILIENCE) {

            for (i = 1; i < context_count; i++)

                h->slice_ctx[0].er.error_count += h->slice_ctx[i].er.error_count;

        }

    }



    return 0;

}

        for (i = 1; i < context_count; i++) {
int FUNC_0(H264Context *VAR_0, unsigned VAR_1)

{

    AVCodecContext *const avctx = VAR_0->avctx;

    H264SliceContext *sl;

    int VAR_2;



    av_assert0(VAR_1 && VAR_0->slice_ctx[VAR_1 - 1].mb_y < VAR_0->mb_height);



    if (VAR_0->avctx->hwaccel ||

        VAR_0->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)

        return 0;

    if (VAR_1 == 1) {

        int VAR_3 = decode_slice(avctx, &VAR_0->slice_ctx[0]);

        VAR_0->mb_y = VAR_0->slice_ctx[0].mb_y;

        return VAR_3;

    } else {

        av_assert0(VAR_1 > 0);

        for (VAR_2 = 1; VAR_2 < VAR_1; VAR_2++) {

            sl                 = &VAR_0->slice_ctx[VAR_2];

            if (CONFIG_ERROR_RESILIENCE) {

                sl->er.error_count = 0;

            }

        }



        avctx->execute(avctx, decode_slice, VAR_0->slice_ctx,

                       NULL, VAR_1, sizeof(VAR_0->slice_ctx[0]));



        

        sl                   = &VAR_0->slice_ctx[VAR_1 - 1];

        VAR_0->mb_y              = sl->mb_y;

        if (CONFIG_ERROR_RESILIENCE) {

            for (VAR_2 = 1; VAR_2 < VAR_1; VAR_2++)

                VAR_0->slice_ctx[0].er.error_count += VAR_0->slice_ctx[VAR_2].er.error_count;

        }

    }



    return 0;

}

int FUNC_0(H264Context *VAR_0, unsigned VAR_1)
{ AVCodecContext *const avctx = VAR_0->avctx; H264SliceContext *sl; int VAR_2; av_assert0(VAR_1 && VAR_0->slice_ctx[VAR_1 - 1].mb_y < VAR_0->mb_height); if (VAR_0->avctx->hwaccel ||
VAR_0->avctx->codec->capabilities & CODEC_CAP_HWACCEL_VDPAU)
return 0; if (VAR_1 == 1) { int VAR_3 = decode_slice(avctx, &VAR_0->slice_ctx[0]); VAR_0->mb_y = VAR_0->slice_ctx[0].mb_y; return VAR_3; } else { av_assert0(VAR_1 > 0); for (VAR_2 = 1; VAR_2 < VAR_1; VAR_2++) { sl                 = &VAR_0->slice_ctx[VAR_2]; if (CONFIG_ERROR_RESILIENCE) { sl->er.error_count = 0; } } avctx->execute(avctx, decode_slice, VAR_0->slice_ctx,
NULL, VAR_1, sizeof(VAR_0->slice_ctx[0])); sl                   = &VAR_0->slice_ctx[VAR_1 - 1]; VAR_0->mb_y              = sl->mb_y; if (CONFIG_ERROR_RESILIENCE) { for (VAR_2 = 1; VAR_2 < VAR_1; VAR_2++) VAR_0->slice_ctx[0].er.error_count += VAR_0->slice_ctx[VAR_2].er.error_count; } } return 0; }