diff options
author | wm4 <wm4@nowhere> | 2018-03-21 14:48:01 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2018-03-26 19:47:07 +0200 |
commit | 7d10728aaadd171bc5e25545dae1c7dedd5145f7 (patch) | |
tree | f14a58530756c5222daeaee491630188d5daf7c4 /demux | |
parent | 965ba23303d980c239e2b0191488766cfa7b0f75 (diff) |
demux, stream: ignore packets and errors on forced exit
When this happens, network calls are forcibly aborted (more or less),
but demuxers might keep going, as most of them do not check for forced
exits properly. This can possibly lead to broken packets being added.
Also do not attempt to read more packets in this situation.
Also do not print a stream open failed message if opening was aborted
anyway.
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/demux/demux.c b/demux/demux.c index 4d70938938..4563a034a2 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -1183,7 +1183,7 @@ static void adjust_seek_range_on_packet(struct demux_stream *ds, void demux_add_packet(struct sh_stream *stream, demux_packet_t *dp) { struct demux_stream *ds = stream ? stream->ds : NULL; - if (!dp || !dp->len || !ds) { + if (!dp || !dp->len || !ds || demux_cancel_test(ds->in->d_thread)) { talloc_free(dp); return; } @@ -1306,7 +1306,7 @@ static bool read_packet(struct demux_internal *in) in->eof = false; in->idle = true; - if (!in->reading || in->blocked) + if (!in->reading || in->blocked || demux_cancel_test(in->d_thread)) return false; // Check if we need to read a new packet. We do this if all queues are below |