Example #1
0
static int _decode_effect_sequence(BITBUFFER *bb, BD_IG_EFFECT_SEQUENCE *p)
{
    unsigned ii;

    p->num_windows = bb_read(bb, 8);
    p->window      = calloc(p->num_windows, sizeof(BD_PG_WINDOW));
    if (!p->window) {
        BD_DEBUG(DBG_DECODE | DBG_CRIT, "out of memory\n");
        return 0;
    }

    for (ii = 0; ii < p->num_windows; ii++) {
        pg_decode_window(bb, &p->window[ii]);
    }

    p->num_effects = bb_read(bb, 8);
    p->effect      = calloc(p->num_effects, sizeof(BD_IG_EFFECT));
    if (!p->effect) {
        BD_DEBUG(DBG_DECODE | DBG_CRIT, "out of memory\n");
        return 0;
    }

    for (ii = 0; ii < p->num_effects; ii++) {
        if (!_decode_effect(bb, &p->effect[ii])) {
            return 0;
        }
    }

    return 1;
}
static void _decode_effect_sequence(BITBUFFER *bb, BD_IG_EFFECT_SEQUENCE *p)
{
    unsigned ii;

    p->num_windows = bb_read(bb, 8);
    p->window      = calloc(p->num_windows, sizeof(BD_PG_WINDOW));

    for (ii = 0; ii < p->num_windows; ii++) {
        pg_decode_window(bb, &p->window[ii]);
    }

    p->num_effects = bb_read(bb, 8);
    p->effect      = calloc(p->num_effects, sizeof(BD_IG_EFFECT));

    for (ii = 0; ii < p->num_effects; ii++) {
        _decode_effect(bb, &p->effect[ii]);
    }
}