/** The task structure for the virtual streaming system. */
struct vss_task {
+ /** Copied from the -announce_time command line option. */
struct timeval announce_tv;
+ /** End of the announcing interval. */
struct timeval data_send_barrier;
+ /** End of the EOF interval. */
struct timeval eof_barrier;
+ /** Only used if --autoplay_delay was given. */
struct timeval autoplay_barrier;
+ /** Used for afs-server communication. */
int afs_socket;
+ /** The current state of \a afs_socket. */
enum afs_socket_status afsss;
+ /** The memory mapped audio file. */
char *map;
+ /** Used by the scheduler. */
struct task task;
+ /** Pointer to the header of the mapped audio file. */
const char *header_buf;
+ /** Length of the audio file header. */
size_t header_len;
};
}
mmd->size = statbuf.st_size;
mmd->mtime = statbuf.st_mtime;
- vsst->map = para_mmap(mmd->size, PROT_READ, MAP_PRIVATE,
- passed_fd, 0);
+ ret = para_mmap(mmd->size, PROT_READ, MAP_PRIVATE, passed_fd,
+ 0, &vsst->map);
+ if (ret < 0)
+ goto err;
close(passed_fd);
mmd->chunks_sent = 0;
mmd->current_chunk = 0;