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