Ignore:
Timestamp:
Jul 26, 2018 7:19:39 AM (17 months ago)
Author:
nanang
Message:

Re #2096:

  • Added new error code for sending RTP/RTCP failure when DTLS-SRTP nego is in progress.
  • When sending RTP/RTCP fails, only print error message once for consecutive same errors.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/stream.c

    r5825 r5845  
    247247    pj_uint32_t              rtp_rx_last_ts;        /**< Last received RTP timestamp*/ 
    248248    pj_status_t              rtp_rx_last_err;       /**< Last RTP recv() error */ 
     249    pj_status_t              rtp_tx_last_err;       /**< Last RTP send() error */ 
     250    pj_status_t              rtcp_tx_last_err;      /**< Last RTCP send() error */ 
    249251 
    250252    /* RTCP Feedback */ 
     
    11421144    /* Send! */ 
    11431145    status = pjmedia_transport_send_rtcp(stream->transport, pkt, len); 
     1146    if (status != PJ_SUCCESS) { 
     1147        if (stream->rtcp_tx_last_err != status) { 
     1148            PJ_PERROR(4,(stream->port.info.name.ptr, status, 
     1149                         "Error sending RTCP")); 
     1150            stream->rtcp_tx_last_err = status; 
     1151        } 
     1152    } else { 
     1153        if (stream->rtcp_tx_last_err != PJ_SUCCESS) { 
     1154            PJ_LOG(4,(stream->port.info.name.ptr, "Sending RTCP resumed")); 
     1155            stream->rtcp_tx_last_err = PJ_SUCCESS; 
     1156        } 
     1157    } 
    11441158 
    11451159    return status; 
     
    11841198        status = send_rtcp(stream, !stream->rtcp_sdes_bye_disabled, PJ_FALSE, 
    11851199                           with_xr, PJ_FALSE); 
    1186         if (status != PJ_SUCCESS) { 
    1187             PJ_PERROR(4,(stream->port.info.name.ptr, status, 
    1188                          "Error sending RTCP")); 
    1189         } 
    1190  
    1191         stream->rtcp_last_tx = timestamp; 
     1200        if (status == PJ_SUCCESS) { 
     1201            stream->rtcp_last_tx = timestamp; 
     1202        } 
    11921203    } 
    11931204} 
     
    14851496                                            sizeof(pjmedia_rtp_hdr)); 
    14861497    if (status != PJ_SUCCESS) { 
    1487         PJ_PERROR(4,(stream->port.info.name.ptr, status, 
    1488                      "Error sending RTP")); 
     1498        if (stream->rtp_tx_last_err != status) { 
     1499            PJ_PERROR(4,(stream->port.info.name.ptr, status, 
     1500                         "Error sending RTP")); 
     1501            stream->rtp_tx_last_err = status; 
     1502        } 
    14891503        return PJ_SUCCESS; 
     1504    } else { 
     1505        if (stream->rtp_tx_last_err != PJ_SUCCESS) { 
     1506            PJ_LOG(4,(stream->port.info.name.ptr, "Sending RTP resumed")); 
     1507            stream->rtp_tx_last_err = PJ_SUCCESS; 
     1508        } 
    14901509    } 
    14911510 
Note: See TracChangeset for help on using the changeset viewer.