- ret = mmap_full_file(conf.inputs[0], O_RDONLY, &audio_file_data,
- &audio_file_size, NULL);
- if (ret < 0)
- goto out;
- ret = compute_afhi(conf.inputs[0], audio_file_data, audio_file_size, &afhi);
- if (ret < 0)
- goto out;
- printf("%s: %dkbit/s\n" /* bitrate */
- "%s: %s\n" /* format */
- "%s: %dHz\n" /* frequency */
- "%s: %d\n" /* channels */
- "%s: %lu\n" /* seconds total */
- "%s" /* tag info */
- "%s: %lu: %lu\n" /* chunk time */
- "%s: %lu\n", /* num chunks */
- status_item_list[SI_BITRATE], afhi.bitrate,
- status_item_list[SI_FORMAT], audio_format_name(ret),
- status_item_list[SI_FREQUENCY], afhi.frequency,
- status_item_list[SI_CHANNELS], afhi.channels,
- status_item_list[SI_SECONDS_TOTAL], afhi.seconds_total,
- afhi.info_string,
- status_item_list[SI_CHUNK_TIME], (long unsigned)afhi.chunk_tv.tv_sec,
- (long unsigned)afhi.chunk_tv.tv_usec,
- status_item_list[SI_NUM_CHUNKS], afhi.chunks_total
- );
- ret = 1;
- if (!conf.chunk_table_given)
- goto out;
- printf("chunk_table: ");
- for (i = 0; i <= afhi.chunks_total; i++)
- printf("%u ", afhi.chunk_table[i]);
- printf("\n");
- ret = 1;
+ for (i = 0; i < conf.inputs_num; i++) {
+ int ret2;
+ ret = mmap_full_file(conf.inputs[i], O_RDONLY, &audio_file_data,
+ &audio_file_size, &fd);
+ if (ret < 0) {
+ PARA_ERROR_LOG("failed to mmap \"%s\"\n", conf.inputs[i]);
+ goto out;
+ }
+ ret = compute_afhi(conf.inputs[i], audio_file_data, audio_file_size,
+ fd, &afhi);
+ if (ret < 0)
+ goto out;
+
+ audio_format_num = ret;
+ printf("File %d: %s\n", i + 1, conf.inputs[i]);
+ print_info(audio_format_num, &afhi);
+ if (conf.chunk_table_given)
+ print_chunk_table(&afhi);
+ printf("\n");
+ clear_afhi(&afhi);
+ ret2 = para_munmap(audio_file_data, audio_file_size);
+ if (ret2 < 0 && ret >= 0)
+ ret = ret2;
+ if (ret < 0)
+ break;
+ }