muxers: handle ECONNRESET errno as end-of-stream
This commit is contained in:
parent
0b4bcfaa98
commit
6958e67784
4 changed files with 5 additions and 3 deletions
|
@ -24,6 +24,8 @@
|
|||
#define MC_REWRITE_PAT 0x0001
|
||||
#define MC_REWRITE_PMT 0x0002
|
||||
|
||||
#define MC_IS_EOS_ERROR(e) ((e) == EPIPE || (e) == ECONNRESET)
|
||||
|
||||
typedef enum {
|
||||
MC_UNKNOWN = 0,
|
||||
MC_MATROSKA = 1,
|
||||
|
|
|
@ -405,7 +405,7 @@ pass_muxer_write(muxer_t *m, const void *data, size_t size)
|
|||
pm->m_errors++;
|
||||
} else if(tvh_write(pm->pm_fd, data, size)) {
|
||||
pm->pm_error = errno;
|
||||
if (errno != EPIPE)
|
||||
if (!MC_IS_EOS_ERROR(errno))
|
||||
tvhlog(LOG_ERR, "pass", "%s: Write failed -- %s", pm->pm_filename,
|
||||
strerror(errno));
|
||||
else
|
||||
|
|
|
@ -160,7 +160,7 @@ tvh_muxer_write_pkt(muxer_t *m, streaming_message_type_t smt, void *data)
|
|||
assert(smt == SMT_PACKET);
|
||||
|
||||
if((r = mk_mux_write_pkt(tm->tm_ref, pkt)) != 0) {
|
||||
if (r == EPIPE)
|
||||
if (MC_IS_EOS_ERROR(r))
|
||||
tm->m_eos = 1;
|
||||
tm->m_errors++;
|
||||
return -1;
|
||||
|
|
|
@ -466,7 +466,7 @@ mk_write_to_fd(mk_mux_t *mkm, htsbuf_queue_t *hq)
|
|||
static void
|
||||
mk_write_queue(mk_mux_t *mkm, htsbuf_queue_t *q)
|
||||
{
|
||||
if(!mkm->error && mk_write_to_fd(mkm, q) && mkm->error != EPIPE)
|
||||
if(!mkm->error && mk_write_to_fd(mkm, q) && !MC_IS_EOS_ERROR(mkm->error))
|
||||
tvhlog(LOG_ERR, "mkv", "%s: Write failed -- %s", mkm->filename,
|
||||
strerror(errno));
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue