static int y41p_decode_frame(AVCodecContext *avctx, void *data,

                             int *got_frame, AVPacket *avpkt)

{

    AVFrame *pic = data;

    uint8_t *src = avpkt->data;

    uint8_t *y, *u, *v;

    int i, j, ret;



    if (avpkt->size < 3LL * avctx->height * avctx->width / 2) {

        av_log(avctx, AV_LOG_ERROR, "Insufficient input data.\n");

        return AVERROR(EINVAL);

    }



    if ((ret = ff_get_buffer(avctx, pic, 0)) < 0)

        return ret;



    pic->key_frame = 1;

    pic->pict_type = AV_PICTURE_TYPE_I;



    for (i = avctx->height - 1; i >= 0 ; i--) {

        y = &pic->data[0][i * pic->linesize[0]];

        u = &pic->data[1][i * pic->linesize[1]];

        v = &pic->data[2][i * pic->linesize[2]];

        for (j = 0; j < avctx->width; j += 8) {

            *(u++) = *src++;

            *(y++) = *src++;

            *(v++) = *src++;

            *(y++) = *src++;



            *(u++) = *src++;

            *(y++) = *src++;

            *(v++) = *src++;

            *(y++) = *src++;



            *(y++) = *src++;

            *(y++) = *src++;

            *(y++) = *src++;

            *(y++) = *src++;

        }

    }



    *got_frame = 1;



    return avpkt->size;

}

static int y41p_decode_frame(AVCodecContext *avctx, void *data,

                             int *got_frame, AVPacket *avpkt)

{

    AVFrame *pic = data;

    uint8_t *src = avpkt->data;

    uint8_t *y, *u, *v;

    int i, j, ret;



    if (avpkt->size < 3LL * avctx->height * avctx->width / 2) {

        av_log(avctx, AV_LOG_ERROR, "Insufficient input data.\n");

        return AVERROR(EINVAL);

    }



    if ((ret = ff_get_buffer(avctx, pic, 0)) < 0)

        return ret;



    pic->key_frame = 1;

    pic->pict_type = AV_PICTURE_TYPE_I;



    for (i = avctx->height - 1; i >= 0 ; i--) {

        y = &pic->data[0][i * pic->linesize[0]];

        u = &pic->data[1][i * pic->linesize[1]];

        v = &pic->data[2][i * pic->linesize[2]];

        for (j = 0; j < avctx->width; j += 8) {

            *(u++) = *src++;

            *(y++) = *src++;

            *(v++) = *src++;

            *(y++) = *src++;



            *(u++) = *src++;

            *(y++) = *src++;

            *(v++) = *src++;

            *(y++) = *src++;



            *(y++) = *src++;

            *(y++) = *src++;

            *(y++) = *src++;

            *(y++) = *src++;

        }

    }



    *got_frame = 1;



    return avpkt->size;

}

    if (avpkt->size < 3LL * avctx->height * avctx->width / 2) {
static int FUNC_0(AVCodecContext *VAR_0, void *VAR_1,

                             int *VAR_2, AVPacket *VAR_3)

{

    AVFrame *pic = VAR_1;

    uint8_t *src = VAR_3->VAR_1;

    uint8_t *y, *u, *v;

    int VAR_4, VAR_5, VAR_6;



    if (VAR_3->size < 3LL * VAR_0->height * VAR_0->width / 2) {

        av_log(VAR_0, AV_LOG_ERROR, "Insufficient input VAR_1.\n");

        return AVERROR(EINVAL);

    }



    if ((VAR_6 = ff_get_buffer(VAR_0, pic, 0)) < 0)

        return VAR_6;



    pic->key_frame = 1;

    pic->pict_type = AV_PICTURE_TYPE_I;



    for (VAR_4 = VAR_0->height - 1; VAR_4 >= 0 ; VAR_4--) {

        y = &pic->VAR_1[0][VAR_4 * pic->linesize[0]];

        u = &pic->VAR_1[1][VAR_4 * pic->linesize[1]];

        v = &pic->VAR_1[2][VAR_4 * pic->linesize[2]];

        for (VAR_5 = 0; VAR_5 < VAR_0->width; VAR_5 += 8) {

            *(u++) = *src++;

            *(y++) = *src++;

            *(v++) = *src++;

            *(y++) = *src++;



            *(u++) = *src++;

            *(y++) = *src++;

            *(v++) = *src++;

            *(y++) = *src++;



            *(y++) = *src++;

            *(y++) = *src++;

            *(y++) = *src++;

            *(y++) = *src++;

        }

    }



    *VAR_2 = 1;



    return VAR_3->size;

}

static int FUNC_0(AVCodecContext *VAR_0, void *VAR_1,
int *VAR_2, AVPacket *VAR_3)
{ AVFrame *pic = VAR_1; uint8_t *src = VAR_3->VAR_1; uint8_t *y, *u, *v; int VAR_4, VAR_5, VAR_6; if (VAR_3->size < 3LL * VAR_0->height * VAR_0->width / 2) { av_log(VAR_0, AV_LOG_ERROR, "Insufficient input VAR_1.\n"); return AVERROR(EINVAL); } if ((VAR_6 = ff_get_buffer(VAR_0, pic, 0)) < 0)
return VAR_6; pic->key_frame = 1; pic->pict_type = AV_PICTURE_TYPE_I; for (VAR_4 = VAR_0->height - 1; VAR_4 >= 0 ; VAR_4--) { y = &pic->VAR_1[0][VAR_4 * pic->linesize[0]]; u = &pic->VAR_1[1][VAR_4 * pic->linesize[1]]; v = &pic->VAR_1[2][VAR_4 * pic->linesize[2]]; for (VAR_5 = 0; VAR_5 < VAR_0->width; VAR_5 += 8) { *(u++) = *src++; *(y++) = *src++; *(v++) = *src++; *(y++) = *src++; *(u++) = *src++; *(y++) = *src++; *(v++) = *src++; *(y++) = *src++; *(y++) = *src++; *(y++) = *src++; *(y++) = *src++; *(y++) = *src++; } } *VAR_2 = 1; return VAR_3->size; }