Here is a diff that you can apply to /YOUR/PATH/HERE/src/muxer/muxer_pass.c.
diff --git a/src/muxer/muxer_pass.c b/src/muxer/muxer_pass.c
index 95ba86e52..9930d107d 100644
--- a/src/muxer/muxer_pass.c
+++ b/src/muxer/muxer_pass.c
@@ -599,8 +599,8 @@ pass_muxer_write(muxer_t *m, const void *data, size_t size)
if(ret) {
pm->pm_error = errno;
if (!MC_IS_EOS_ERROR(errno))
- tvherror(LS_PASS, "%s: Write failed -- %s", pm->pm_filename,
- strerror(errno));
+ tvherror(LS_PASS, "%s: Write failed (size: %zu) -- %s", pm->pm_filename,
+ size, strerror(errno));
else
/* this is an end-of-streaming notification */
m->m_eos = 1;
You can also just manually update the 2 lines involved.
This will not fix anything, however, it should be able to tell us if TVH is trying to write an insane amount of data to the disk.
I looked further into the code and it seems that some functions call pass_muxer_write with an int (signed) instead of a size_t (unsigned) size variable. If there is a bug in one of these calling functions that makes this int negative, then maybe this could be causing the error that you see.
At the very least, this extra logging should indicate if TVH is malfunctioning or if you have some other, potentially OS configuration, problem.