diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2015-05-28 07:07:17 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2015-05-28 07:07:17 +0000 |
commit | 1f5cf04d6dad8d08da58b086aad46cee580ea8d3 (patch) | |
tree | 941284604fc6470bdaa167a8a6f4e0116c0858d8 /pjmedia | |
parent | d89295fc8424ae0893a84fc5f65d0517291d779b (diff) |
Misc (re #1843): Updated error message in pjmedia stream & video stream upon RTP receiving failure, also avoid printing the same message repeatedly of same subsequent failures.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5101 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r-- | pjmedia/src/pjmedia/stream.c | 14 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/vid_stream.c | 15 |
2 files changed, 24 insertions, 5 deletions
diff --git a/pjmedia/src/pjmedia/stream.c b/pjmedia/src/pjmedia/stream.c index a0e04dee..329ced8d 100644 --- a/pjmedia/src/pjmedia/stream.c +++ b/pjmedia/src/pjmedia/stream.c @@ -226,6 +226,7 @@ struct pjmedia_stream #endif pj_uint32_t rtp_rx_last_ts; /**< Last received RTP timestamp*/ + pj_status_t rtp_rx_last_err; /**< Last RTP recv() error */ }; @@ -1631,9 +1632,18 @@ static void on_rx_rtp( void *data, /* Check for errors */ if (bytes_read < 0) { - LOGERR_((stream->port.info.name.ptr, "RTP recv() error", - (pj_status_t)-bytes_read)); + status = (pj_status_t)-bytes_read; + if (stream->rtp_rx_last_err != status) { + char errmsg[PJ_ERR_MSG_SIZE]; + pj_strerror(status, errmsg, sizeof(errmsg)); + PJ_LOG(4,(stream->port.info.name.ptr, + "Unable to receive RTP packet, recv() returned %d: %s", + status, errmsg)); + stream->rtp_rx_last_err = status; + } return; + } else { + stream->rtp_rx_last_err = PJ_SUCCESS; } /* Ignore keep-alive packets */ diff --git a/pjmedia/src/pjmedia/vid_stream.c b/pjmedia/src/pjmedia/vid_stream.c index 714ae13d..5deef379 100644 --- a/pjmedia/src/pjmedia/vid_stream.c +++ b/pjmedia/src/pjmedia/vid_stream.c @@ -171,7 +171,7 @@ struct pjmedia_vid_stream pjmedia_vid_codec *codec; /**< Codec instance being used. */ pj_uint32_t last_dec_ts; /**< Last decoded timestamp. */ int last_dec_seq; /**< Last decoded sequence. */ - + pj_status_t rtp_rx_last_err; /**< Last RTP recv() error. */ pj_timestamp ts_freq; /**< Timestamp frequency. */ @@ -606,9 +606,18 @@ static void on_rx_rtp( void *data, /* Check for errors */ if (bytes_read < 0) { - LOGERR_((channel->port.info.name.ptr, "RTP recv() error", - (pj_status_t)-bytes_read)); + status = (pj_status_t)-bytes_read; + if (stream->rtp_rx_last_err != status) { + char errmsg[PJ_ERR_MSG_SIZE]; + pj_strerror(status, errmsg, sizeof(errmsg)); + PJ_LOG(4,(channel->port.info.name.ptr, + "Unable to receive RTP packet, recv() returned %d: %s", + status, errmsg)); + stream->rtp_rx_last_err = status; + } return; + } else { + stream->rtp_rx_last_err = PJ_SUCCESS; } /* Ignore keep-alive packets */ |