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;
}
return &the_timeout;
}
-static void vss_eof(struct audio_format_handler *af)
+static void vss_eof(void)
{
struct timeval now;
int i;
char *tmp;
- if (!af || !map) {
+ if (!map) {
for (i = 0; senders[i].name; i++)
senders[i].shutdown_clients();
return;
map = NULL;
close(audio_file);
mmd->audio_format = -1;
- af = NULL;
mmd->chunks_sent = 0;
mmd->offset = 0;
mmd->afi.seconds_total = 0;
for (i = 0; senders[i].name; i++)
senders[i].shutdown_clients();
if (vss_next() && af) {
- vss_eof(af);
+ vss_eof();
return vss_compute_timeout();
}
if (vss_paused() || vss_repos()) {
mmd->new_vss_status_flags &= ~VSS_REPOS;
if (mmd->current_chunk >= mmd->afi.chunks_total) { /* eof */
mmd->new_vss_status_flags |= VSS_NEXT;
- return vss_eof(af);
+ return vss_eof();
}
pos = mmd->afi.chunk_table[mmd->current_chunk];
len = mmd->afi.chunk_table[mmd->current_chunk + 1] - pos;