diff --git a/daemon/codec.c b/daemon/codec.c index 218627a16..a7e258145 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -721,7 +721,7 @@ static void __output_rtp(struct media_packet *mp, struct codec_ssrc_handler *ch, // this packet is dynamically allocated, so we're able to schedule it. // determine scheduled time to send - if (ch->first_send.tv_sec) { + if (ch->first_send.tv_sec && ch->encoder_format.clockrate) { // scale first_send from first_send_ts to ts p->to_send = ch->first_send; uint32_t ts_diff = (uint32_t) ts - (uint32_t) ch->first_send_ts; // allow for wrap-around diff --git a/t/auto-daemon-tests.pl b/t/auto-daemon-tests.pl index bd1a7e412..2aec608e7 100755 --- a/t/auto-daemon-tests.pl +++ b/t/auto-daemon-tests.pl @@ -2403,6 +2403,89 @@ rcv($sock_a, $port_b, rtpm(0, 4005, 5800, $ssrc, "\x88" x 160)); +# gh #730 + +($sock_a, $sock_b) = new_call([qw(198.51.100.1 7300)], [qw(198.51.100.3 7302)]); + +($port_a) = offer('gh 730', { + ICE => 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'] }, <