void ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src)

{

    MpegEncContext bak;

    int i;

    // FIXME copy only needed parts

    // START_TIMER

    backup_duplicate_context(&bak, dst);

    memcpy(dst, src, sizeof(MpegEncContext));

    backup_duplicate_context(dst, &bak);

    for (i = 0; i < 12; i++) {

        dst->pblocks[i] = &dst->block[i];

    }

    // STOP_TIMER("update_duplicate_context")

    // about 10k cycles / 0.01 sec for  1000frames on 1ghz with 2 threads

}

void ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src)

{

    MpegEncContext bak;

    int i;

    

    

    backup_duplicate_context(&bak, dst);

    memcpy(dst, src, sizeof(MpegEncContext));

    backup_duplicate_context(dst, &bak);

    for (i = 0; i < 12; i++) {

        dst->pblocks[i] = &dst->block[i];

    }

    

    

}

void ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src)     int i;     int i;
void FUNC_0(MpegEncContext *VAR_0, MpegEncContext *VAR_1)

{

    MpegEncContext bak;

    int VAR_2;

    

    

    backup_duplicate_context(&bak, VAR_0);

    memcpy(VAR_0, VAR_1, sizeof(MpegEncContext));

    backup_duplicate_context(VAR_0, &bak);

    for (VAR_2 = 0; VAR_2 < 12; VAR_2++) {

        VAR_0->pblocks[VAR_2] = &VAR_0->block[VAR_2];

    }

    

    

}

void FUNC_0(MpegEncContext *VAR_0, MpegEncContext *VAR_1)
{ MpegEncContext bak; int VAR_2; backup_duplicate_context(&bak, VAR_0); memcpy(VAR_0, VAR_1, sizeof(MpegEncContext)); backup_duplicate_context(VAR_0, &bak); for (VAR_2 = 0; VAR_2 < 12; VAR_2++) { VAR_0->pblocks[VAR_2] = &VAR_0->block[VAR_2]; } }