Unified · Split
| @@ -113,11 +113,14 @@ static int film_read_header(AVFormatContext *s, · 112 unmodified lines | |||
| 113 | film->audio_bits = scratch[22]; | 113 | film->audio_bits = scratch[22]; |
| 114 | if (scratch[23] == 2) | 114 | if (scratch[23] == 2) |
| 115 | film->audio_type = CODEC_ID_ADPCM_ADX; | 115 | film->audio_type = CODEC_ID_ADPCM_ADX; |
| 116 | else if (film->audio_bits == 8) | 116 | else if (film->audio_channels > 0) { |
| 117 | film->audio_type = CODEC_ID_PCM_S8; | 117 | if (film->audio_bits == 8) |
| 118 | else if (film->audio_bits == 16) | 118 | film->audio_type = CODEC_ID_PCM_S8; |
| 119 | film->audio_type = CODEC_ID_PCM_S16BE; | 119 | else if (film->audio_bits == 16) |
| 120 | else | 120 | film->audio_type = CODEC_ID_PCM_S16BE; |
| 121 | else | ||
| 122 | film->audio_type = CODEC_ID_NONE; | ||
| 123 | } else | ||
| 121 | film->audio_type = CODEC_ID_NONE; | 124 | film->audio_type = CODEC_ID_NONE; |
| 122 | } | 125 | } |
| 123 | 126 | ||
| @@ -201,7 +204,7 @@ static int film_read_header(AVFormatContext *s, · 77 unmodified lines | |||
| 201 | if (film->audio_type == CODEC_ID_ADPCM_ADX) | 204 | if (film->audio_type == CODEC_ID_ADPCM_ADX) |
| 202 | audio_frame_counter += (film->sample_table[i].sample_size * 32 / | 205 | audio_frame_counter += (film->sample_table[i].sample_size * 32 / |
| 203 | (18 * film->audio_channels)); | 206 | (18 * film->audio_channels)); |
| 204 | else | 207 | else if (film->audio_type != CODEC_ID_NONE) |
| 205 | audio_frame_counter += (film->sample_table[i].sample_size / | 208 | audio_frame_counter += (film->sample_table[i].sample_size / |
| 206 | (film->audio_channels * film->audio_bits / 8)); | 209 | (film->audio_channels * film->audio_bits / 8)); |
| 207 | } else { | 210 | } else { |