am->m_eos = 1;
}
am->m_errors++;
- muxer_cache_update(m, am->am_fd, am->am_off, 0);
- am->am_off = lseek(am->am_fd, 0, SEEK_CUR);
+ if (am->am_seekable) {
+ muxer_cache_update(m, am->am_fd, am->am_off, 0);
+ am->am_off = lseek(am->am_fd, 0, SEEK_CUR);
+ }
} else {
- muxer_cache_update(m, am->am_fd, am->am_off, 0);
+ if (am->am_seekable)
+ muxer_cache_update(m, am->am_fd, am->am_off, 0);
am->am_off += size;
}
iov += iovcnt;
} while(i);
- muxer_cache_update((muxer_t *)mk, mk->fd, oldpos, 0);
+ if (mk->seekable)
+ muxer_cache_update((muxer_t *)mk, mk->fd, oldpos, 0);
return 0;
}
/* this is an end-of-streaming notification */
m->m_eos = 1;
m->m_errors++;
- muxer_cache_update(m, pm->pm_fd, pm->pm_off, 0);
- pm->pm_off = lseek(pm->pm_fd, 0, SEEK_CUR);
+ if (pm->pm_seekable) {
+ muxer_cache_update(m, pm->pm_fd, pm->pm_off, 0);
+ pm->pm_off = lseek(pm->pm_fd, 0, SEEK_CUR);
+ }
} else {
- muxer_cache_update(m, pm->pm_fd, pm->pm_off, 0);
+ if (pm->pm_seekable)
+ muxer_cache_update(m, pm->pm_fd, pm->pm_off, 0);
pm->pm_off += size;
}
}