id,summary,reporter,owner,description,type,status,priority,component,version,resolution,keywords,cc,blockedby,blocking,reproduced,analyzed
1064,Div/0 integer exception cased in aiffdec.c for A-Law AIFFs,dmitrykos,,"Hi,

Divizion by 0 integer exception is raised in aiffdec.c, line 163:

{{{
    codec->bit_rate = codec->sample_rate * (codec->block_align << 3) /
                      aiff->block_duration;
}}}

if AIFF file is in A-Law format, or any format which is not processed by 'case' starting at line 120.

It is possible to fix it by adding:

aiff->block_duration = 1;

inside 'default' of this 'case'.

So the code will look like this:
{{{
        switch (codec->codec_id) {
        case CODEC_ID_PCM_S16BE:
            codec->codec_id = aiff_codec_get_id(codec->bits_per_coded_sample);
            codec->bits_per_coded_sample = av_get_bits_per_sample(codec->codec_id);
            aiff->block_duration = 1;
            break;
        case CODEC_ID_ADPCM_IMA_QT:
            codec->block_align = 34*codec->channels;
            aiff->block_duration = 64;
            break;
        case CODEC_ID_MACE3:
            codec->block_align = 2*codec->channels;
            aiff->block_duration = 6;
            break;
        case CODEC_ID_MACE6:
            codec->block_align = 1*codec->channels;
            aiff->block_duration = 6;
            break;
        case CODEC_ID_GSM:
            codec->block_align = 33;
            aiff->block_duration = 160;
            break;
        case CODEC_ID_QCELP:
            codec->block_align = 35;
            aiff->block_duration = 160;
            break;
        default:
            aiff->block_duration = 1; //!< avoid Div/0
            break;
        }
}}}",defect,closed,important,avformat,git-master,fixed,aif,,,,1,0
