audio_file = open(sl[i], O_RDONLY);
if (audio_file < 0)
continue;
- if (fstat(audio_file, &file_status) == -1) {
+ if (fstat(audio_file, &file_status) == -1 ||
+ !file_status.st_size) {
close(audio_file);
continue;
}
map = para_mmap(file_status.st_size, PROT_READ, MAP_PRIVATE,
audio_file, 0);
strcpy(mmd->filename, sl[i]);
+ mmd->afi.header_len = 0; /* default: no header */
if (update_mmd() < 0) { /* invalid file */
close(audio_file);
munmap(map, mmd->size);
mmd->afi.seconds_total = 0;
free(mmd->afi.chunk_table);
mmd->afi.chunk_table = NULL;
- free(mmd->afi.header);
- mmd->afi.header = NULL;
tmp = make_message("%s:\n%s:\n%s:\n", status_item_list[SI_AUDIO_INFO1],
status_item_list[SI_AUDIO_INFO2], status_item_list[SI_AUDIO_INFO3]);
strcpy(mmd->afi.info_string, tmp);
*/
char *vss_get_header(int *header_len)
{
- if (mmd->audio_format < 0)
+ if (mmd->audio_format < 0 || !map || !mmd->afi.header_len)
return NULL;
*header_len = mmd->afi.header_len;
- return mmd->afi.header;
+ return map + mmd->afi.header_offset;
}
/**