| 891 | // Type is RtpCallback, but args determined by rtp_signal_table_emit2 |
| 892 | extern "C" { |
| 893 | void ourRtpTimestampJumpCallback(RtpSession *session, unsigned long timestamp,unsigned long dialogid) |
| 894 | { |
| 895 | SipBase *dialog = gSipInterface.dmFindDialogByRtp(session); |
| 896 | if (dialog) { |
| 897 | LOG(NOTICE) << "RTP timestamp jump"<<LOGVAR(timestamp)<<LOGVAR(dialogid)<<dialog; |
| 898 | // This is called from the same thread that is calling rxFrame or txFrame, so no problem. |
| 899 | if (dialog->mRxTime) { |
| 900 | rtp_session_resync(session); |
| 901 | dialog->mRxTime = 0; |
| 902 | dialog->mRxRealTime = 0; |
| 903 | } |
| 904 | } else { |
| 905 | LOG(ALERT) << "RTP timestamp jump, but no dialog"<<LOGVAR(dialogid); |
| 906 | } |
| 907 | } |
| 908 | }; |
| 909 | |
| 910 | void SipRtp::initRTP1(const char *d_ip_addr, unsigned d_port, unsigned dialogId) |
nothing calls this directly
no test coverage detected