int swri_realloc_audio(AudioData *a, int count){

    int i, countb;

    AudioData old;



    if(count < 0 || count > INT_MAX/2/a->bps/a->ch_count)

        return AVERROR(EINVAL);



    if(a->count >= count)

        return 0;



    count*=2;



    countb= FFALIGN(count*a->bps, ALIGN);

    old= *a;



    av_assert0(a->bps);

    av_assert0(a->ch_count);



    a->data= av_mallocz_array(countb, a->ch_count);

    if(!a->data)

        return AVERROR(ENOMEM);

    for(i=0; i<a->ch_count; i++){

        a->ch[i]= a->data + i*(a->planar ? countb : a->bps);

        if(a->planar) memcpy(a->ch[i], old.ch[i], a->count*a->bps);

    }

    if(!a->planar) memcpy(a->ch[0], old.ch[0], a->count*a->ch_count*a->bps);

    av_freep(&old.data);

    a->count= count;



    return 1;

}

int swri_realloc_audio(AudioData *a, int count){

    int i, countb;

    AudioData old;



    if(count < 0 || count > INT_MAX/2/a->bps/a->ch_count)

        return AVERROR(EINVAL);



    if(a->count >= count)

        return 0;



    count*=2;



    countb= FFALIGN(count*a->bps, ALIGN);

    old= *a;



    av_assert0(a->bps);

    av_assert0(a->ch_count);



    a->data= av_mallocz_array(countb, a->ch_count);

    if(!a->data)

        return AVERROR(ENOMEM);

    for(i=0; i<a->ch_count; i++){

        a->ch[i]= a->data + i*(a->planar ? countb : a->bps);

        if(a->planar) memcpy(a->ch[i], old.ch[i], a->count*a->bps);

    }

    if(!a->planar) memcpy(a->ch[0], old.ch[0], a->count*a->ch_count*a->bps);

    av_freep(&old.data);

    a->count= count;



    return 1;

}

int FUNC_0(AudioData *VAR_0, int VAR_1){

    int VAR_2, VAR_3;

    AudioData old;



    if(VAR_1 < 0 || VAR_1 > INT_MAX/2/VAR_0->bps/VAR_0->ch_count)

        return AVERROR(EINVAL);



    if(VAR_0->VAR_1 >= VAR_1)

        return 0;



    VAR_1*=2;



    VAR_3= FFALIGN(VAR_1*VAR_0->bps, ALIGN);

    old= *VAR_0;



    av_assert0(VAR_0->bps);

    av_assert0(VAR_0->ch_count);



    VAR_0->data= av_mallocz_array(VAR_3, VAR_0->ch_count);

    if(!VAR_0->data)

        return AVERROR(ENOMEM);

    for(VAR_2=0; VAR_2<VAR_0->ch_count; VAR_2++){

        VAR_0->ch[VAR_2]= VAR_0->data + VAR_2*(VAR_0->planar ? VAR_3 : VAR_0->bps);

        if(VAR_0->planar) memcpy(VAR_0->ch[VAR_2], old.ch[VAR_2], VAR_0->VAR_1*VAR_0->bps);

    }

    if(!VAR_0->planar) memcpy(VAR_0->ch[0], old.ch[0], VAR_0->VAR_1*VAR_0->ch_count*VAR_0->bps);

    av_freep(&old.data);

    VAR_0->VAR_1= VAR_1;



    return 1;

}

int FUNC_0(AudioData *VAR_0, int VAR_1){ int VAR_2, VAR_3; AudioData old; if(VAR_1 < 0 || VAR_1 > INT_MAX/2/VAR_0->bps/VAR_0->ch_count)
return AVERROR(EINVAL); if(VAR_0->VAR_1 >= VAR_1)
return 0; VAR_1*=2; VAR_3= FFALIGN(VAR_1*VAR_0->bps, ALIGN); old= *VAR_0; av_assert0(VAR_0->bps); av_assert0(VAR_0->ch_count); VAR_0->data= av_mallocz_array(VAR_3, VAR_0->ch_count); if(!VAR_0->data)
return AVERROR(ENOMEM); for(VAR_2=0; VAR_2<VAR_0->ch_count; VAR_2++){ VAR_0->ch[VAR_2]= VAR_0->data + VAR_2*(VAR_0->planar ? VAR_3 : VAR_0->bps); if(VAR_0->planar) memcpy(VAR_0->ch[VAR_2], old.ch[VAR_2], VAR_0->VAR_1*VAR_0->bps); } if(!VAR_0->planar) memcpy(VAR_0->ch[0], old.ch[0], VAR_0->VAR_1*VAR_0->ch_count*VAR_0->bps); av_freep(&old.data); VAR_0->VAR_1= VAR_1; return 1; }