diff --git a/daemon/audio_player.c b/daemon/audio_player.c index 1ae48e118..a5fba28b5 100644 --- a/daemon/audio_player.c +++ b/daemon/audio_player.c @@ -5,10 +5,13 @@ #include "media_player.h" #include "mix_buffer.h" #include "codec.h" +#include "resample.h" struct audio_player { struct media_player *mp; + format_t format; + resample_t resampler; struct mix_buffer mb; int64_t last_run; @@ -100,6 +103,7 @@ bool audio_player_setup(struct call_media *m, const rtp_payload_type *dst_pt, if (ap) { mix_buffer_destroy(&ap->mb); + resample_shutdown(&ap->resampler); ZERO(ap->mb); } else @@ -128,6 +132,12 @@ bool audio_player_setup(struct call_media *m, const rtp_payload_type *dst_pt, bufsize_ms = MAX(bufsize_ms, ptime_ms * 2); // make sure the buf size is at least 2 frames + ap->format = (format_t) { + .channels = dst_pt->channels, + .clockrate = clockrate, + .format = AV_SAMPLE_FMT_S16, + }; + mix_buffer_init_active(&ap->mb, AV_SAMPLE_FMT_S16, clockrate, dst_pt->channels, bufsize_ms, delay_ms, false); @@ -177,10 +187,20 @@ void audio_player_start(struct call_media *m) { void audio_player_add_frame(struct audio_player *ap, uint32_t ssrc, AVFrame *frame) { - bool ret = mix_buffer_write(&ap->mb, ssrc, frame->extended_data[0], frame->nb_samples); + AVFrame *rsmp_frame = resample_frame(&ap->resampler, frame, &ap->format); + if (!rsmp_frame) { + ilog(LOG_ERR, "Resampling failed"); + av_frame_free(&frame); + return; + } + + bool ret = mix_buffer_write(&ap->mb, ssrc, rsmp_frame->extended_data[0], rsmp_frame->nb_samples); if (!ret) ilogs(transcoding, LOG_WARN | LOG_FLAG_LIMIT, "Failed to add samples to mix buffer"); - av_frame_free(&frame); + + if (rsmp_frame != frame) + av_frame_free(&frame); + av_frame_free(&rsmp_frame); } @@ -216,6 +236,7 @@ void audio_player_free(struct call_media *m) { return; mix_buffer_destroy(&ap->mb); media_player_put(&ap->mp); + resample_shutdown(&ap->resampler); g_free(ap); m->audio_player = NULL; } diff --git a/t/auto-daemon-tests-create.pl b/t/auto-daemon-tests-create.pl index 0fb5839d6..ea86d22f3 100755 --- a/t/auto-daemon-tests-create.pl +++ b/t/auto-daemon-tests-create.pl @@ -180,30 +180,30 @@ snd($sock_a, $port_b, rtp (0, 1001, 3160, 0x1234, "\x11" x 160)); rcv($sock_b, $port_a, rtpm(0, 1001, 3160, 0x1234, "\x11" x 160)); rcv_no($sock_a); rcv_no($sock_b); -($seq, $ts, $ssrc) = rcv($sock_c, $port_c, rtpm(9 | 0x80, -1, -1, -1, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\x2a\x84\x20\x84\x20\x84\x04\x8e\x16\x9d\x5d\xfe\xdb\xd8\xd1\xd3\xd9\xd9\x9b\xdc\xd9\xd7\xd7\xd8\xd6\xd9\xda\xdb\xd9\xd7\xda\xd7\x9a\xd9\xd8\xd8\xd6\xd9\xd7\xda\xd9\xd9\xd9\xd6\xda\xd7\xda\xda\xd9\xd9\xd6\xda\xd7\xdb\xda\xda\xd9\xd7\xdb\xd8\xd6\xda\xdb\xdb\xd8\xd6\xda\xd8\xd6\xdb\xdb\xdc\xd3\xdf\xd9\xd6\xd9\xd9\xdc\xd2\x9e\x1b\x96\x3f\x8b\x20\xb5\x0c\xba\x3f\xbe\xd5\x6d\xf0\xd5\xdb\x7b\xdf\xdc\xf6\xf1\xdd\xd8\xdd\xdf\xfd\xf8\xf1\xfc\xdd\xda\x9e\xff\x7d\xf2\xfc\xbb\xd8\xdb\xfc")); +($seq, $ts, $ssrc) = rcv($sock_c, $port_c, rtpm(9 | 0x80, -1, -1, -1, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\x2a\x84\x20\x84\x20\x84\x04\x8e\x16\x9d\x5d\xfe\xdb\xd8\xd1\xd3\xd9\xd9\x9b\xdc\xd9\xd7\xd7\xd8\xd6\xd9\xda\xdb\xd9\xd7\xda\xd7\x9a\xd9\xd8\xd8\xd6\xd9\xd7\xda\xd9\xd9\xd9\xd6\xda\xd7\xda\xda\xd9\xd9\xd6\xda\xd7\xdb\xda\xda\xd9\xd7\xdb\xd8\xd6\xda\xdb\xdb\xd8\xd6\xda\xd8\xd6\xdb\xdb\xdc\xd3\xdf\xd9\xd6\xd9\xd9\xdc\xd2\xde\xda\xd7\xdc\xd5\xdd\xd4\xd8\xd9\xd6\xdf\xd7\xdf\xd8\xd4\xd9\xd7\xff\xd3\xfc\xda\xd6\xda\xd7\xfd\xd3\xfd\xda\xd7\xdc\xd3\xfa\xd3\xfd\xda\xd8\xd8\xd3\xf7\xd1")); # untriggered media -rcv($sock_c, $port_c, rtpm(9, $seq + 1, $ts + 160, $ssrc, "\xff\xf5\xfb\xbb\xdc\xd9\xfe\xdd\xf8\xf8\xf7\xdf\xdd\xfe\xdc\xfe\xfd\xf6\xff\xde\xfd\xfe\xde\xff\xf9\xfa\xdf\xfd\xfc\xff\xdf\xfb\xfb\xde\xfd\xfd\xfc\xff\xff\xfb\xdf\xfc\xfc\xfc\xfb\xdf\xfa\xfe\xdf\xfc\xfc\xf9\xff\xfd\xfd\xfe\xfe\xdf\xfa\xfc\xfc\xfc\xfc\xfc\xff\xfc\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfb\xdf\xfb\xff\xff\xff\xff\xfc\xfd\xfc\xfc\xfb\xfe\xdf\xfa\xfc\xfc\xfb\xfc\xfb\xdf\xfc\xfa\xfb\xdf\xf9\xf9\xfe\xdf\xfa\xf9\xfc\xfc\xfc\xfb\xdf\xf8\xfb\xfe\xfc\xfc\xfb\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfb\xdf\xf3\xfe\xfa\xfa\xfb\xdf\xf6\xfa\xf8\xf7\xde\xf4\xdf\xf6\xf8\xf7\xfb\xdf\xf7\xdd\xf9\xfb\xf9\xf7\xfb\xf9\xfb\xdf\xf7\xf9\xf9\xfb")); +rcv($sock_c, $port_c, rtpm(9, $seq + 1, $ts + 160, $ssrc, "\xde\xde\xdb\xdb\xd6\xfb\xd2\xdf\xfe\xd6\xdb\xdb\xfc\xd4\xd6\xf9\xd7\xdc\xd5\xff\xd7\xdb\xfd\xd8\x96\x1e\x98\x39\x86\x20\xb4\x08\xbc\x31\xbc\xda\xec\xf0\x50\xd3\xf1\x7b\xdc\xf5\xf2\xd7\xd7\xfb\xff\xf8\xf6\xf6\xdb\xd8\xda\xf9\xf9\xb6\x77\x9c\xd9\xd8\xdf\xf6\xf9\xf4\xbb\x58\x99\xdd\xfc\xf6\xfb\xb8\x7f\xda\xde\xdf\xb7\xfe\xfa\xfb\xdc\x9c\x5b\xb5\xfe\xff\xf9\xfc\xbd\x5a\xfa\xfd\xff\xbc\xf9\xfc\xde\xbd\x7c\xfc\xfd\xfb\xbf\xdf\xfc\xbb\x5e\xfd\xbb\x7f\x9f\x7c\xf9\xfe\xde\xfa\xfd\xff\xdf\xfa\xfc\xff\xbf\xff\xfc\xfe\xbf\xff\xfd\xfd\xbd\xfd\xfd\xbd\x7d\xfd\xbd\xfd\xfd\xbd\xfd\x7d\xbd\xfd\x7d\xfd\xbd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd")); # catch up to delay caused by rcv_no above -rcv($sock_c, $port_c, rtpm(9, $seq + 2, $ts + 320, $ssrc, "\xfb\xf9\xf9\xfb\xfb\xf9\xf9\xfb\xfb\xf8\xf8\xfb\xfb\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xfa\xf7\xfa\xfa\xfa\xfa\xfa\xfa\xf7\xfa\xfa\xfa\xfa\xfa\xfa\xf7\xfa\xde\xf2\xde\xf2\xde\xf0\xfa\xdc\xf3\xdc\xf3\xdf\xf3\xfb\xfb\xfb\xfb\xfb\xfa\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xde\xee\xde\xf5\xfb\xfa\xf8\xde\xf1\xdf\xf6\xf8\xf8\xf8\xfa\xf8\xfa\xde\xf1\xfa\xfa\xf8\xf8\xfa\xd9\xf3\xf8\xf8\xfa\xde\xf1\xdc\xf6\xf8\xf8\xf8\xde\xf3\xfb\xf8\xf8\xfa\xde\xf3\xf8\xf8\xfa\xde\xf1\xdf\xf6\xf8\xf8\xf8\xde\xf5\xf8\xf8\xf8\xf8\xf8\xde\xf5\xf5\xf8\xfa\xfa\xf8\xde\xf5\xf5\xf8\xfa\xde\xf1\xde\xf5\xf5\xf8\xfa\xdc\xf8\xf8\xf5\xf5\xf8\xfa\xd9\xf8\xf5\xf8\xf8\xf5")); -rcv($sock_c, $port_c, rtpm(9, $seq + 3, $ts + 480, $ssrc, "\xf8\xdc\xde\xef\xfb\xdf\xf0\xfb\xd6\xf4\xf3\xdf\xf9\xf3\xf9\xd9\xfb\xf5\xfb\xdf\xf2\xf7\xdd\xdf\xf7\xdf\xf5\xf5\xf7\xdd\xdf\xf9\xfb\xf9\xf3\xfb\xdf\xf9\xdf\xf9\xf7\xf5\xf5\xdf\xfb\xdf\xf9\xf7\xf9\xf5\xfb\xdf\xf9\xfb\xfb\xf6\xf6\xf9\xdf\xfb\xfb\xfb\xf9\xf4\xf9\xdf\xf6\xdf\xf6\xf9\xf6\xf9\xfb\xdf\xf8\xf8\xfb\xf6\xf6\xfb\xdc\xfb\xdf\xf4\xf6\xfb\xf6\xdf\xf4\xdc\xdf\xf4\xf6\xfb\xf8\xf6\xdc\xdf\xf4\xf8\xfb\xfb\xf4\xfb\xda\xf2\xdf\xf6\xfb\xf8\xf8\xdf\xf4\xfb\xfb\xfb\xf8\xf8\xdf\xf3\xf8\xfb\xdf\xf2\xfb\xdc\xf8\xf6\xdc\xfb\xf4\xf8\xdf\xf8\xf5\xfb\xdf\xf1\xf6\xdc\xf8\xf8\xfb\xdf\xf4\xf6\xdf\xf6\xf8\xfb\xdc\xf8\xf5\xfb\xf8\xf5\xfb\xdc\xf5\xf8")); -rcv($sock_c, $port_c, rtpm(9, $seq + 4, $ts + 640, $ssrc, "\xfa\xf5\xf8\xfa\xdc\xf8\xf5\xf5\xf8\xde\xf5\xf8\xf8\xf5\xf8\xfa\xdc\xf8\xf5\xf5\xf8\xfa\xdc\xf8\xf8\xf5\xf5\xf8\xfa\xd9\xf8\xf8\xf5\xf5\xf8\xfa\xd9\xf8\xfa\xfa\xf5\xf3\xde\xf8\xde\xf8\xf8\xf5\xf1\xfa\xde\xfa\xde\xf3\xf8\xf3\xf6\xdc\xfb\xda\xf6\xf8\xf4\xf6\xfb\xf8\xdc\xdf\xf6\xf8\xf6\xf8\xf6\xdf\xfb\xfb\xfb\xf8\xf6\xf8\xfb\xdc\xf8\xf8\xfa\xf5\xf3\xdf\xf8\xf8\xdc\xfa\xf8\xef\xdf\xf8\xf6\xdc\xf8\xdf\xf0\xf8\xfb\xf8\xfb\xfb\xdf\xf4\xf8\xf8\xfa\xfa\xf8\xfa\xde\xf1\xf8\xfa\xde\xf1\xf6\xda\xf4\xfb\xf6\xdf\xf6\xf6\xdd\xf8\xfb\xf8\xf8\xfb\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xde\xf3\xf8\xf8\xfa\xde\xf3\xde\xf3\xf8\xf8\xfb\xdc\xf5\xfa\xf8\xf5\xf8\xfa")); -rcv($sock_c, $port_c, rtpm(9, $seq + 5, $ts + 800, $ssrc, "\xd9\xf5\xf8\xfa\xfa\xf8\xf5\xde\xf5\xf8\xfa\xde\xf3\xf5\xfb\xdf\xf5\xf8\xdc\xf8\xf3\xf6\xdc\xf8\xf8\xdf\xf3\xf6\xfb\xdf\xf6\xfb\xfb\xf8\xf6\xdc\xfb\xf8\xf6\xfb\xfb\xf8\xfa\xdc\xf8\xf5\xf5\xf8\xfa\xde\xf5\xfa\xde\xf1\xf6\xfb\xdf\xf5\xf6\xd8\xf6\xf8\xf2\xdf\xf9\xf6\xda\xf4\xdf\xf3\xf7\xf9\xf7\xd9\xfb\xdf\xf3\xf7\xf7\xf9\xdd\xdb\xfb\xf7\xf2\xf4\xfa\xdb\xdf\xfb\xf9\xf3\xf6\xf6\xde\xde\xdf\xf4\xf6\xf6\xf5\xfa\xde\xfb\xde\xf4\xf8\xf6\xf8\xf9\xfb\xdd\xf9\xfb\xf9\xf7\xfb\xf9\xfb\xdd\xf9\xfb\xf9\xf6\xdf\xf3\xdf\xf9\xfb\xdf\xf4\xdf\xf4\xf7\xfb\xfb\xdf\xf6\xfb\xfb\xf9\xf6\xdf\xf9\xf9\xfb\xfb\xf6\xf9\xfb\xdf\xf6\xfb\xfb\xf8\xf6\xfb\xdf\xf6\xdf")); -rcv($sock_c, $port_c, rtpm(9, $seq + 6, $ts + 960, $ssrc, "\xf6\xfb\xf6\xf8\xfb\xdf\xf8\xf8\xfa\xf8\xf3\xfb\xdc\xf8\xf8\xde\xf5\xf1\xf6\xda\xf0\xf9\xd8\xfb\xf6\xf4\xdf\xf4\xf6\xdd\xdf\xf6\xf9\xfb\xfb\xf9\xf9\xdf\xf4\xfb\xf9\xf8\xfb\xdf\xf4\xfb\xf8\xf8\xfb\xfb\xde\xf1\xfb\xfb\xfb\xfa\xf8\xde\xf3\xfb\xf8\xf8\xde\xf3\xda\xf0\xf9\xf6\xdf\xf9\xf6\xda\xf3\xfb\xf4\xfb\xdd\xf9\xdd\xf9\xf9\xf6\xf9\xf9\xfb\xdc\xf8\xf8\xf6\xdf\xf4\xf6\xdf\xf6\xdf\xf6\xdf\xf6\xf6\xfb\xfb\xdf\xf6\xfb\xfb\xf8\xf6\xfb\xdf\xf6\xf8\xfb\xfb\xf8\xf8\xde\xf3\xf8\xfb\xfb\xfa\xde\xf3\xf8\xfb\xfb\xfa\xfa\xde\xf1\xf8\xfa\xfa\xfa\xfa\xdc\xf5\xf5\xf8\xfa\xde\xf1\xfa\xdc\xf5\xf5\xf8\xde\xf3\xdf\xf6\xf6\xf6\xf8\xdc\xdf\xf8\xf8\xf6\xf4")); -rcv($sock_c, $port_c, rtpm(9, $seq + 7, $ts + 1120, $ssrc, "\xf4\xdf\xdf\xfb\xdf\xf4\xf4\xf4\xf8\xdc\xdf\xfb\xfb\xf6\xf4\xf6\xdf\xfb\xdc\xfb\xfb\xf5\xf2\xfb\xf8\xdf\xf8\xdc\xfb\xf5\xf4\xf6\xdf\xf6\xfb\xdf\xf8\xfb\xfb\xfa\xf8\xf5\xfa\xdc\xf5\xf5\xf8\xfa\xf8\xf3\xda\xf6\xf6\xfb\xdf\xf6\xf6\xdc\xfb\xdf\xf2\xfb\xfb\xfb\xfb\xdf\xf6\xf6\xfb\xdf\xf6\xf8\xdf\xf8\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xde\xf1\xf8\xfa\xde\xf1\xf8\xde\xf3\xfb\xf6\xdf\xf6\xfb\xdf\xf6\xfb\xf8\xfb\xde\xf1\xdf\xf6\xf8\xf8\xfb\xdf\xf3\xdf\xf4\xf8\xfb\xfb\xfb\xf8\xfa\xfa\xf8\xf8\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa")); -rcv($sock_c, $port_c, rtpm(9, $seq + 8, $ts + 1280, $ssrc, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xde\xee\xd6\xef\xdc\xdf\xf4\xda\xec\xdd\xf6\xda\xf9\xf4\xdb\xef\xda\xf3\xd6\xf7\xfa\xd9\xf2\xfe\xf8\xda\xf7\xde\xfa\xf8\xf7\xfe\xd9\xf7\xdc\xfa\xfa\xf6\xfc\xdc\xfb\xd9\xf8\xf5\xf6\xfb\xd9\xfb\xd7\xf2\xf6\xfa\xfc\xfe\xd9\xd9\xf6\xf4\xf7\xde\xf6\xd8\xd8\xf7\xf6\xf7\xde\xf4\xdd\xd4\xfc\xf1\xf6\xdf\xf4\xfc\xd4\xdf\xf0\xf4\xfc\xf8\xf9\xd7\xdd\xf4\xf3\xfc\xf9\xfb\xd7\xdd\xf7\xf7\xfb\xf8\xf6\xd7\xdc")); -rcv($sock_c, $port_c, rtpm(9, $seq + 9, $ts + 1440, $ssrc, "\xf8\xf7\xfb\xf7\xf8\xdb\xdd\xfe\xf9\xf8\xf5\xf8\xdd\xdd\xfe\xfe\xf9\xf7\xfc\xfc\xdc\xfe\xfe\xfa\xf8\xfa\xfb\xdc\xfb\xdc\xf9\xf6\xf9\xf7\xdb\xf5\xfb\xda\xf5\xf8\xfa\xde\xf6\xfa\xdb\xf5\xf8\xfb\xdb\xf3\xfb\xd9\xfa\xf6\xfa\xde\xf6\xfa\xde\xfa\xfa\xf9\xdf\xf6\xf7\xdd\xfb\xdd\xf9\xf9\xf5\xf7\xfb\xdf\xf9\xfb\xfb\xf7\xf7\xdf\xf9\xfb\xfb\xf9\xf6\xfb\xdf\xf6\xfb\xf9\xf9\xf9\xf9\xdf\xf4\xf9\xf9\xf8\xf8\xf8\xdf\xf4\xf8\xf8\xf8\xf8\xf8\xde\xf3\xfb\xfb\xfb\xfa\xfa\xdc\xf5\xf5\xf8\xfa\xde\xf1\xdf\xf6\xfb\xf8\xf5\xdf\xf4\xdf\xf6\xf8\xf6\xf8\xfb\xdf\xf8\xf8\xf8\xf5\xf5\xf8\xdc\xde\xf3\xf8\xf8\xf3\xfb\xdc\xdf\xf2\xdc\xfb\xf6\xf6\xdf\xf6\xf8\xdf\xf8")); -rcv($sock_c, $port_c, rtpm(9, $seq + 10, $ts + 1600, $ssrc, "\xf8\xf6\xdc\xf6\xf8\xfb\xfb\xfb\xf5\xfb\xdc\xf5\xf8\xf8\xf8\xf8\xf5\xde\xf8\xf8\xf8\xf8\xf8\xf5\xfa\xdc\xf8\xf8\xf7\xfa\xf7\xf8\xde\xf7\xde\xf0\xf8\xf8\xf8\xde\xf3\xdc\xf5\xf3\xdf\xf8\xfa\xf5\xfb\xde\xf1\xf8\xdf\xf8\xf3\xf8\xdf\xf6\xf8\xfb\xfb\xf6\xfb\xdf\xf4\xfb\xdf\xf1\xf6\xdf\xfb\xf6\xf8\xdc\xf8\xf6\xdf\xf6\xf6\xf8\xfb\xdf\xf6\xdf\xf4\xf6\xf8\xfb\xdf\xf6\xdf\xf4\xf6\xf6\xfb\xdf\xf8\xdf\xf6\xf6\xf2\xfb\xdf\xfb\xdc\xfb\xf8\xf2\xf9\xf9\xdf\xfb\xfb\xfb\xf6\xf4\xf8\xdc\xdf\xf6\xf8\xf8\xf6\xf8\xfb\xdc\xf8\xf8\xfa\xfa\xf5\xf5\xde\xf5\xf5\xdf\xf8\xf3\xf8\xdf\xf4\xf6\xdc\xfb\xf6\xf6\xdf\xf6\xfb\xdf\xf6\xf8\xf6\xdc\xf8\xfb\xfb\xf8\xf8\xf8")); -rcv($sock_c, $port_c, rtpm(9, $seq + 11, $ts + 1760, $ssrc, "\xfa\xde\xf1\xf8\xfa\xdc\xf5\xf5\xf8\xf8\xfa\xde\xf3\xf8\xf5\xfb\xdc\xfa\xfa\xf8\xf3\xfb\xdf\xf5\xfb\xde\xf3\xf6\xf6\xdc\xdf\xf8\xfb\xf8\xf4\xf4\xdf\xfb\xdf\xf4\xfb\xfb\xf6\xf8\xfb\xdc\xf8\xfa\xfa\xf8\xf3\xde\xf3\xda\xf4\xf6\xfb\xf8\xfb\xdf\xf8\xf8\xf8\xf8\xf8\xf5\xfa\xdc\xf5\xf5\xf8\xdc\xf8\xf3\xdf\xf0\xfb\xdf\xf8\xdc\xf4\xfb\xf6\xf6\xdf\xf8\xdc\xfb\xf8\xf5\xf6\xdf\xf2\xfb\xdc\xfb\xdf\xf4\xf8\xf6\xf8\xf8\xdf\xfb\xf8\xf8\xf8\xf5\xf8\xde\xf3\xf8\xfa\xde\xf1\xfb\xdf\xf6\xf6\xf8\xdf\xf8\xfb\xfa\xf8\xf3\xdf\xf6\xdf\xf6\xf8\xfb\xfb\xfa\xf8\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa")); -rcv($sock_c, $port_c, rtpm(9, $seq + 12, $ts + 1920, $ssrc, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xde\xee\xd8\xf8\xf7\xdc\xf4\xdc\xef\xda\xf4\xfb\xda\xf0\xdd\xf3\xd8\xf6\xdf\xf9\xf4\xdf\xef\xd5\xf9\xf9\xf9\xf9\xf9\xf0\xdb\xf7\xda\xf3\xda\xf7\xf5\xde\xfa\xd9\xf5\xfc\xf8\xf6\xdc\xfb\xd7\xf1\xf7\xdc\xf7\xde\xfa\xd8\xf7\xf7\xde\xf7\xfe\xdc\xdb\xf4\xf4\xfe\xfa\xf7\xd8\xd7\xf2\xf3\xdc\xf9\xf5\xd9\xd5\xf5\xf1\xfb\xdc\xf8\xfc\xd6\xfb")); +rcv($sock_c, $port_c, rtpm(9, $seq + 2, $ts + 320, $ssrc, "\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfb\xde\xf3\xdc\xf8\xfb\xde\xf1\xde\xf6\xde\xf5\xfa\xdc\xf8\xfb\xdf\xf5\xfa\xf8\xf9\xfb\xdf\xf7\xdf\xf6\xfb\xf7\xfb\xfb\xf9\xdf\xf7\xdf\xf5\xf7\xf9\xf7\xf9\xf9\xdf\xf7\xf9\xf9\xfb\xfb\xf9\xfb\xdf\xf3\xfb\xfb\xfb\xfb\xfb\xdf\xf3\xdf\xf6\xf9\xf9\xfb\xfb\xf9\xfb\xdf\xf3\xfb\xfb\xfb\xfb\xfb\xdf\xf2\xfb\xdf\xf6\xf9\xf9\xdf\xf4\xf6\xdf\xf6\xf9\xf6\xdf\xf9\xf9\xdf\xf4\xf8\xf8\xfb\xfb\xf6\xfb\xfb\xfb\xfb\xf8\xfa\xfa\xf8\xf8\xfa\xde\xf1\xfa\xf8\xf8\xfa\xde\xf3\xfa\xf5\xfa\xde\xf3\xdf\xf3\xfb\xf8\xf8\xdf\xf6\xdf\xf4\xfb")); +rcv($sock_c, $port_c, rtpm(9, $seq + 3, $ts + 480, $ssrc, "\xfb\xf8\xfa\xfa\xfa\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xde\xf2\xf8\xf8\xde\xf4\xf5\xfa\xde\xf1\xf5\xfa\xde\xf5\xf8\xfa\xf5\xf8\xfa\xde\xf5\xf5\xf8\xfa\xde\xf3\xf8\xf8\xf8\xde\xf5\xf8\xf8\xf5\xf8\xfa\xde\xf5\xf5\xf8\xfa\xfa\xfa\xfa\xf7\xf8\xfa\xdb\xf3\xfa\xf8\xf8\xfa\xde\xf8\xf5\xf5\xf8\xfa\xde\xf8\xfa\xf7\xf2\xfa\xde\xfa\xde\xf5\xf5\xf3\xf8\xde\xfa\xdc\xf8\xf5\xf1\xf6\xda\xf2\xda\xfb\xf9\xf4\xf4\xdf\xf4\xdf\xfb\xfb\xf6\xf6\xfb\xf9\xdf\xfb\xfb\xf8\xf6\xfb\xf8\xfb\xdc\xf8\xf8\xf8\xf5\xf5\xf8\xdc\xfa\xde\xf3\xf8\xf6\xf8\xf8\xde\xde\xf3\xf8\xf8\xf6\xf8\xfb\xd9\xf6\xfb\xf8\xf6\xdf\xf4\xdf\xf8\xf8\xf8\xf5\xf8\xf8\xfa\xfa\xde\xf5\xf5\xfa\xfa\xf3")); +rcv($sock_c, $port_c, rtpm(9, $seq + 4, $ts + 640, $ssrc, "\xfb\xd7\xf4\xf6\xdf\xf6\xf6\xf6\xda\xf6\xf9\xdf\xf6\xf9\xf3\xdb\xf5\xf9\xdf\xf7\xf9\xf3\xdb\xf7\xdd\xdf\xf7\xf7\xf7\xdb\xf6\xfb\xdb\xf6\xf8\xf5\xde\xf6\xfa\xde\xf7\xdf\xf3\xfa\xfa\xfa\xdf\xf6\xdf\xf4\xf8\xf9\xf9\xfb\xf9\xfb\xfb\xf9\xf9\xfb\xfb\xf9\xf9\xfb\xfb\xf9\xf9\xfb\xfb\xf8\xf8\xfb\xfb\xf8\xf8\xfa\xde\xf3\xf8\xf8\xfa\xde\xf3\xdf\xf4\xf8\xf8\xf8\xde\xf3\xfb\xf8\xf8\xfb\xfa\xde\xf3\xf8\xf8\xfb\xde\xf3\xfb\xf8\xf8\xfa\xde\xf8\xf5\xf5\xf8\xfa\xde\xf8\xfa\xf8\xf3\xfa\xfa\xdc\xfa\xde\xf1\xf3\xfb\xfb\xdc\xfa\xd9\xf4\xf2\xdf\xf2\xfb\xdd\xdd\xf8\xf4\xf8\xf4\xf6\xdd\xdf\xf6\xfb\xf8\xf6\xf9\xf8\xdc\xfb\xfb\xf8\xf4\xf8\xf8\xdf\xf5\xf8\xfa")); +rcv($sock_c, $port_c, rtpm(9, $seq + 5, $ts + 800, $ssrc, "\xfa\xf8\xf5\xde\xf5\xf8\xfa\xde\xf1\xf6\xda\xf2\xdf\xf4\xdf\xf4\xf6\xdf\xf4\xfb\xfb\xfb\xf8\xf8\xdf\xf6\xf8\xf6\xfb\xf8\xfb\xdc\xf8\xf8\xf5\xf6\xdf\xf6\xdf\xf6\xf8\xf6\xfb\xfb\xfb\xdf\xf5\xf8\xf8\xf8\xf8\xfa\xde\xf1\xf8\xfa\xde\xf1\xfb\xdf\xf3\xf8\xfb\xdf\xf4\xfb\xfb\xf6\xf8\xfb\xdc\xf8\xf8\xf8\xf5\xf5\xfa\xd9\xf8\xfa\xfa\xf5\xf3\xdf\xf8\xdf\xf8\xf8\xf5\xf1\xfb\xdc\xdf\xf8\xf8\xf5\xf1\xf6\xda\xf9\xdf\xf8\xf6\xf4\xf2\xdd\xdf\xfb\xdd\xf6\xf6\xf3\xf9\xdf\xf9\xdd\xdf\xf3\xf3\xf9\xfb\xdd\xdf\xfb\xf9\xf4\xf6\xf9\xf9\xdd\xdf\xf6\xf9\xf6\xf9\xf4\xdd\xdd\xf9\xf9\xf9\xf6\xf9\xf6\xda\xf6\xfb\xfb\xf9\xf6\xfb\xdd\xf8\xf8\xfb\xdf\xf0\xf6\xda\xf4")); +rcv($sock_c, $port_c, rtpm(9, $seq + 6, $ts + 960, $ssrc, "\xf9\xdf\xfb\xf9\xf2\xdd\xf9\xf9\xdf\xf9\xfb\xf6\xf8\xf8\xfb\xdc\xf8\xfb\xf8\xf5\xf8\xf5\xdf\xf4\xfb\xf8\xf8\xde\xf3\xdf\xf4\xfb\xfb\xf8\xfa\xfa\xfa\xf8\xf8\xfa\xde\xf1\xf8\xfa\xdc\xf3\xf5\xdf\xfa\xf8\xf1\xdf\xf6\xdf\xf4\xfb\xdc\xf6\xdf\xf4\xfb\xf8\xf8\xfa\xfa\xfa\xf8\xf8\xfa\xde\xf3\xf8\xf8\xde\xf3\xfa\xfa\xfa\xf5\xf8\xdc\xfa\xf8\xf5\xfa\xf8\xf5\xde\xfa\xf8\xf5\xf8\xfa\xfa\xde\xf2\xfa\xf8\xf8\xfa\xde\xf4\xf5\xf8\xfa\xde\xf2\xde\xf5\xf5\xf5\xde\xde\xef\xdf\xf8\xf6\xf4\xdf\xdf\xf2\xfb\xdf\xf4\xf6\xdf\xfb\xf9\xf4\xdd\xfb\xf6\xfb\xfb\xfb\xf8\xfb\xdc\xf6\xdf\xf4\xf6\xfb\xf8\xdf\xf6\xdc\xf8\xf6\xf8\xf8\xfa\xde\xf5\xf8\xfa\xf8\xf3\xdf\xfa")); +rcv($sock_c, $port_c, rtpm(9, $seq + 7, $ts + 1120, $ssrc, "\xf8\xf8\xde\xf8\xf1\xfa\xfa\xf5\xf8\xd9\xfa\xfa\xf8\xf5\xf5\xf8\xde\xf5\xfa\xd9\xf3\xf6\xfb\xdc\xf8\xf6\xda\xf0\xf9\xf6\xdd\xfb\xf9\xfb\xfb\xfb\xf6\xdf\xf4\xdf\xf6\xf6\xf9\xf6\xda\xf6\xfb\xf9\xf6\xfb\xf6\xdd\xfb\xdf\xf6\xf4\xf9\xf6\xda\xf6\xfb\xfb\xf6\xf9\xf9\xdd\xfb\xfb\xfb\xf6\xf8\xf6\xda\xf4\xfb\xdf\xf1\xf6\xdf\xf6\xf9\xf9\xdd\xfb\xf6\xf9\xf6\xdf\xf4\xfb\xdd\xf6\xf9\xf6\xdf\xf4\xfb\xdf\xf4\xfb\xf9\xf9\xfb\xfb\xfb\xf8\xf8\xfb\xdf\xf1\xf8\xf8\xfb\xdf\xf6\xdf\xf2\xf6\xf6\xfb\xdd\xdf\xdf\xf4\xf2\xf6\xfb\xdf\xf9\xda\xf9\xf6\xf3\xf7\xfb\xdf\xfb\xda\xf6\xf5\xf3\xdf\xfb\xf9\xdd\xdf\xf7\xf5\xf7\xfb\xfb\xdf\xfb\xdf\xf4\xf7\xf9\xf9\xdf\xf9")); +rcv($sock_c, $port_c, rtpm(9, $seq + 8, $ts + 1280, $ssrc, "\xdf\xf6\xf6\xf6\xf9\xdf\xfb\xdd\xf9\xf6\xf6\xf6\xdf\xf9\xdf\xfb\xf9\xf6\xf6\xf9\xfb\xdd\xfb\xfb\xfb\xf8\xf6\xfb\xdf\xf4\xf8\xdf\xf8\xf6\xf8\xfb\xdf\xf3\xfb\xdf\xf4\xf4\xfb\xda\xf4\xf8\xdf\xf6\xf6\xf6\xdf\xf9\xdf\xfb\xfb\xf6\xf4\xf8\xdf\xfb\xdf\xf6\xf6\xf6\xf8\xdf\xfb\xdc\xf8\xf6\xf6\xf8\xfb\xdc\xfb\xfa\xf8\xf5\xf8\xfa\xde\xf1\xf6\xdc\xf8\xf8\xfa\xde\xf3\xf4\xf8\xdf\xf8\xfb\xde\xf3\xf6\xf6\xfb\xdf\xf8\xdc\xfb\xf8\xf3\xf6\xf8\xfb\xda\xf8\xfb\xf8\xf4\xf6\xfb\xdc\xfb\xdf\xf4\xf6\xfb\xfb\xdf\xf4\xfb\xdc\xf5\xf6\xf8\xfb\xfb\xfa\xde\xf5\xf5\xfb\xfa\xf8\xf5\xfa\xdc\xf5\xf5\xfb\xde\xf1\xf4\xdf\xf8\xf8\xfb\xdf\xf3\xf6\xf8\xfb\xdf\xf6\xdf\xf6")); +rcv($sock_c, $port_c, rtpm(9, $seq + 9, $ts + 1440, $ssrc, "\xf6\xf8\xfb\xdc\xf8\xfb\xfb\xf5\xf6\xfb\xfb\xfb\xde\xf3\xfb\xdf\xf2\xf6\xfb\xda\xf8\xf8\xfb\xf8\xf4\xf6\xdc\xfb\xfb\xfb\xfb\xf8\xf5\xfb\xdc\xf5\xf6\xdf\xf6\xf4\xf6\xdc\xdf\xf6\xdf\xf4\xf6\xf6\xfb\xda\xf9\xdf\xf4\xf4\xf4\xf9\xdd\xdf\xfb\xfb\xf6\xf2\xf6\xdf\xdf\xfb\xdd\xf6\xf9\xf4\xf9\xdf\xf9\xfb\xfb\xf8\xf6\xf8\xfb\xdc\xf8\xfb\xfa\xf5\xf3\xdf\xf6\xfb\xfb\xdf\xf6\xfb\xdf\xf4\xf8\xfb\xdf\xf3\xf8\xfb\xfb\xf8\xf8\xde\xf5\xf8\xf8\xf8\xf8\xf8\xfa\xde\xf1\xfa\xfa\xfa\xf8\xf8\xde\xf3\xfa\xf8\xf8\xf8\xde\xf5\xf8\xf5\xfa\xf8\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa")); +rcv($sock_c, $port_c, rtpm(9, $seq + 10, $ts + 1600, $ssrc, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xde\xee\xd6\xef\xda\xf2\xda\xf9\xf1\xd9\xf3\xd6\xef\xd9\xde\xef\xd7\xf1\xdc\xf8\xfa\xda\xef\xd5\xf8\xf9\xfc\xfe\xdd\xf2\xd9\xfe\xfb\xfb\xdf\xf8\xf3\xd8\xdc\xf9\xf6\xdb\xf5\xf3\xd9\xdb\xf5\xf8\xdd\xf8\xf2\xdb\xdf\xf6\xfe\xdf\xf7\xf8\xfe\xd9\xf8\xf9\xfc\xf9\xf9\xfc\xdb\xf6\xfc\xfa\xfe\xfa\xfc\xdb\xf6\xfa\xf8\xfe\xfe\xfc\xda\xf6\xfa\xf8\xf8\xdf\xf5\xdc")); +rcv($sock_c, $port_c, rtpm(9, $seq + 11, $ts + 1760, $ssrc, "\xfb\xdf\xf1\xf8\xdf\xf8\xdf\xf6\xfb\xf8\xf7\xda\xfa\xde\xf6\xf8\xf6\xfa\xdd\xdd\xdb\xf3\xf6\xf6\xf6\xdf\xde\xdc\xfa\xf8\xf3\xf8\xfb\xd9\xdc\xfb\xdf\xf0\xf3\xfc\xdc\xdc\xfb\xda\xf5\xf2\xf8\xfe\xdc\xfb\xd9\xfb\xf5\xf6\xfb\xde\xfa\xdc\xfa\xf9\xf4\xf9\xfb\xdf\xf7\xdd\xf9\xf7\xfb\xdf\xf5\xf7\xda\xf9\xf6\xf9\xdf\xf6\xf7\xda\xf9\xf7\xdf\xf9\xf7\xf7\xda\xfa\xfb\xdf\xf6\xf6\xf6\xdc\xdb\xf6\xfb\xfb\xf7\xfa\xfb\xdb\xf6\xfa\xf9\xf9\xf9\xf9\xdd\xf9\xf7\xf7\xf7\xdf\xfb\xdd\xf9\xfb\xf5\xf5\xf9\xdf\xfb\xfb\xf9\xf9\xf6\xf9\xfb\xdf\xf6\xf9\xf9\xf9\xf9\xfb\xdf\xf4\xf6\xf9\xf9\xfb\xdf\xf8\xf8\xf6\xf8\xf6\xfb\xdf\xf8\xfb\xf8\xf5\xf6\xdf\xf6\xdf\xf6\xfb")); +rcv($sock_c, $port_c, rtpm(9, $seq + 12, $ts + 1920, $ssrc, "\xf6\xf6\xdf\xf6\xdc\xf8\xf8\xf6\xf8\xf8\xf8\xdf\xf8\xf8\xf5\xf5\xf8\xfa\xd9\xf5\xfb\xfb\xf5\xf6\xdc\xdf\xf4\xf8\xf8\xf8\xf3\xdf\xf8\xfb\xf8\xfa\xde\xef\xfb\xfb\xfb\xfb\xdf\xfb\xf6\xf6\xfb\xfb\xfb\xdc\xfa\xfa\xf5\xf3\xdf\xf4\xdf\xf8\xdf\xf6\xf2\xf8\xfb\xdf\xf6\xdc\xfb\xf6\xf6\xf8\xfb\xdf\xf8\xfb\xfb\xf5\xf4\xfb\xdc\xf8\xfa\xde\xf3\xf4\xf8\xdf\xf6\xf8\xdc\xfb\xf3\xf6\xdc\xf6\xf8\xdc\xdc\xf4\xf2\xdf\xf1\xf9\xdd\xdd\xdf\xf3\xf9\xf6\xfb\xdf\xf6\xdd\xf9\xfb\xfb\xf9\xf8\xf8\xfb\xdf\xf2\xfb\xdf\xf4\xfb\xdc\xfb\xf8\xf6\xfb\xf8\xf8\xdf\xf8\xfa\xf5\xf5\xf8\xfa\xdc\xf5\xf5\xf8\xfa\xde\xef\xf8\xf8\xdc\xfb\xfb\xfb\xf6\xf6\xfb\xdc\xfb\xdf\xf1\xf8")); # push media snd($sock_a, $port_b, rtp (0, 1002, 3320, 0x1234, "\x44" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002, 3320, 0x1234, "\x44" x 160)); snd($sock_b, $port_a, rtp (0, 8001, 10160, 0x2d8c, "\x55" x 160)); rcv($sock_a, $port_b, rtpm(0, 8001, 10160, 0x2d8c, "\x55" x 160)); -rcv($sock_c, $port_c, rtpm(9, $seq + 13, $ts + 2080, $ssrc, "\xf1\xf6\xdb\xf8\xfc\xd7\xfb\xf3\xf6\xde\xfb\xdd\xd8\xfe\xf3\xf5\xfe\xdf\xfc\xda\xdf\xf1\xf4\xf8\xdf\xfc\xdc\xdd\xf5\xf6\xfb\xdf\xfb\xdf\xdf\xf8\xf4\xf6\xfe\xfe\x1e\x99\x2c\x87\x22\x84\x0b\xaf\xb5\xbb\x1f\xb9\x57\xd3\xfa\x74\xf6\xff\xff\xd9\xd3\x9f\x76\xf7\xfd\xfb\xdb\xd7\xda\xfb\xfc\xf8\xb6\x5e\xd8\xd6\xbe\x5e\xfc\xb6\x7d\xdd\xd8\xda\x9d\x5f\xf9\xbb\x5d\xdc\xda\xdd\x9b\x7c\xfb\x9d\x5e\xdf\xde\x9a\x5e\xfd\xfe\x9a\x7f\xdd\xda\xdc\xdd\xdf\xfe\xdb\x7c\x9d\xdb\xdf\xfe\x9b\x7e\x9b\xfc\x1e\x98\x36\x8a\x20\xa9\x4c\x99\x79\x7a\xd8\x7b\xf2\xff\xd9\xdf\xf9\xde\xfe\x79\xf8\xfd\xdf\xfc\xfd\xbe\x5f\xf8\x79\xfe\x9e\xfc\xfb\x5d\xff\xfb\xfe\xbe\xdf")); +rcv($sock_c, $port_c, rtpm(9, $seq + 13, $ts + 2080, $ssrc, "\xfb\xf8\xf8\xfa\xdc\xf5\xf5\xf8\xf8\xf8\xf5\xfa\xd9\xf5\xf8\xfb\xde\xef\xf6\xdf\xf6\xdd\xfb\xfb\xf4\xf4\xfb\xdd\xfb\xfb\xf8\xf6\xf8\xf6\xdc\xfb\xfb\xf8\xf6\xdf\x28\x84\x20\x84\x20\x84\x04\xbd\x35\xb7\x9f\xf9\x5c\x8e\x16\xbb\x3b\xbd\xfc\x37\x8d\x27\x9c\x11\xba\x1f\xb8\x5c\x75\xf6\x59\xda\x7e\xdf\xfc\x78\x75\xfd\xdb\x5f\xdf\x7e\xff\xf9\x79\xdf\xdf\x5f\xfe\xdd\xff\xfa\x7e\xdd\xdd\xdf\xff\xde\xfd\xfc\xfd\xde\xdd\xde\xfe\xdc\xdd\xfd\x9f\x7f\xdb\xfd\xde\xde\x9f\xfe\xdc\xdb\xfd\xde\xdd\xdd\x9d\xde\xdd\xdd\xdd\xdd\xdd\xdd\xdd\x9c\xdc\xdb\xfd\xde\xdd\xdc\xdb\xfd\xdb\xfe\xdb\xfe\xdc\xd9\xde\xde\xdf\xfe\xda\xdf\xff\xda\xde\xde\xff\xdc\xd9\xff")); rtpe_req('delete', 'delete'); @@ -322,30 +322,30 @@ snd($sock_a, $port_b, rtp (0, 1001, 3160, 0x1234, "\x11" x 160)); rcv($sock_b, $port_a, rtpm(0, 1001, 3160, 0x1234, "\x11" x 160)); rcv_no($sock_a); rcv_no($sock_b); -($seq, $ts, $ssrc) = rcv($sock_c, $port_c, rtpm(9 | 0x80, -1, -1, -1, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\x2a\x84\x20\x84\x20\x84\x04\x8e\x16\x9d\x5d\xfe\xdb\xd8\xd1\xd3\xd9\xd9\x9b\xdc\xd9\xd7\xd7\xd8\xd6\xd9\xda\xdb\xd9\xd7\xda\xd7\x9a\xd9\xd8\xd8\xd6\xd9\xd7\xda\xd9\xd9\xd9\xd6\xda\xd7\xda\xda\xd9\xd9\xd6\xda\xd7\xdb\xda\xda\xd9\xd7\xdb\xd8\xd6\xda\xdb\xdb\xd8\xd6\xda\xd8\xd6\xdb\xdb\xdc\xd3\xdf\xd9\xd6\xd9\xd9\xdc\xd2\x9e\x1b\x96\x3f\x8b\x20\xb5\x0c\xba\x3f\xbe\xd5\x6d\xf0\xd5\xdb\x7b\xdf\xdc\xf6\xf1\xdd\xd8\xdd\xdf\xfd\xf8\xf1\xfc\xdd\xda\x9e\xff\x7d\xf2\xfc\xbb\xd8\xdb\xfc")); +($seq, $ts, $ssrc) = rcv($sock_c, $port_c, rtpm(9 | 0x80, -1, -1, -1, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\x2a\x84\x20\x84\x20\x84\x04\x8e\x16\x9d\x5d\xfe\xdb\xd8\xd1\xd3\xd9\xd9\x9b\xdc\xd9\xd7\xd7\xd8\xd6\xd9\xda\xdb\xd9\xd7\xda\xd7\x9a\xd9\xd8\xd8\xd6\xd9\xd7\xda\xd9\xd9\xd9\xd6\xda\xd7\xda\xda\xd9\xd9\xd6\xda\xd7\xdb\xda\xda\xd9\xd7\xdb\xd8\xd6\xda\xdb\xdb\xd8\xd6\xda\xd8\xd6\xdb\xdb\xdc\xd3\xdf\xd9\xd6\xd9\xd9\xdc\xd2\xde\xda\xd7\xdc\xd5\xdd\xd4\xd8\xd9\xd6\xdf\xd7\xdf\xd8\xd4\xd9\xd7\xff\xd3\xfc\xda\xd6\xda\xd7\xfd\xd3\xfd\xda\xd7\xdc\xd3\xfa\xd3\xfd\xda\xd8\xd8\xd3\xf7\xd1")); # untriggered media -rcv($sock_c, $port_c, rtpm(9, $seq + 1, $ts + 160, $ssrc, "\xff\xf5\xfb\xbb\xdc\xd9\xfe\xdd\xf8\xf8\xf7\xdf\xdd\xfe\xdc\xfe\xfd\xf6\xff\xde\xfd\xfe\xde\xff\xf9\xfa\xdf\xfd\xfc\xff\xdf\xfb\xfb\xde\xfd\xfd\xfc\xff\xff\xfb\xdf\xfc\xfc\xfc\xfb\xdf\xfa\xfe\xdf\xfc\xfc\xf9\xff\xfd\xfd\xfe\xfe\xdf\xfa\xfc\xfc\xfc\xfc\xfc\xff\xfc\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfb\xdf\xfb\xff\xff\xff\xff\xfc\xfd\xfc\xfc\xfb\xfe\xdf\xfa\xfc\xfc\xfb\xfc\xfb\xdf\xfc\xfa\xfb\xdf\xf9\xf9\xfe\xdf\xfa\xf9\xfc\xfc\xfc\xfb\xdf\xf8\xfb\xfe\xfc\xfc\xfb\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfb\xdf\xf3\xfe\xfa\xfa\xfb\xdf\xf6\xfa\xf8\xf7\xde\xf4\xdf\xf6\xf8\xf7\xfb\xdf\xf7\xdd\xf9\xfb\xf9\xf7\xfb\xf9\xfb\xdf\xf7\xf9\xf9\xfb")); +rcv($sock_c, $port_c, rtpm(9, $seq + 1, $ts + 160, $ssrc, "\xde\xde\xdb\xdb\xd6\xfb\xd2\xdf\xfe\xd6\xdb\xdb\xfc\xd4\xd6\xf9\xd7\xdc\xd5\xff\xd7\xdb\xfd\xd8\x96\x1e\x98\x39\x86\x20\xb4\x08\xbc\x31\xbc\xda\xec\xf0\x50\xd3\xf1\x7b\xdc\xf5\xf2\xd7\xd7\xfb\xff\xf8\xf6\xf6\xdb\xd8\xda\xf9\xf9\xb6\x77\x9c\xd9\xd8\xdf\xf6\xf9\xf4\xbb\x58\x99\xdd\xfc\xf6\xfb\xb8\x7f\xda\xde\xdf\xb7\xfe\xfa\xfb\xdc\x9c\x5b\xb5\xfe\xff\xf9\xfc\xbd\x5a\xfa\xfd\xff\xbc\xf9\xfc\xde\xbd\x7c\xfc\xfd\xfb\xbf\xdf\xfc\xbb\x5e\xfd\xbb\x7f\x9f\x7c\xf9\xfe\xde\xfa\xfd\xff\xdf\xfa\xfc\xff\xbf\xff\xfc\xfe\xbf\xff\xfd\xfd\xbd\xfd\xfd\xbd\x7d\xfd\xbd\xfd\xfd\xbd\xfd\x7d\xbd\xfd\x7d\xfd\xbd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd")); # catch up to delay caused by rcv_no above -rcv($sock_c, $port_c, rtpm(9, $seq + 2, $ts + 320, $ssrc, "\xfb\xf9\xf9\xfb\xfb\xf9\xf9\xfb\xfb\xf8\xf8\xfb\xfb\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xfa\xf7\xfa\xfa\xfa\xfa\xfa\xfa\xf7\xfa\xfa\xfa\xfa\xfa\xfa\xf7\xfa\xde\xf2\xde\xf2\xde\xf0\xfa\xdc\xf3\xdc\xf3\xdf\xf3\xfb\xfb\xfb\xfb\xfb\xfa\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xde\xee\xde\xf5\xfb\xfa\xf8\xde\xf1\xdf\xf6\xf8\xf8\xf8\xfa\xf8\xfa\xde\xf1\xfa\xfa\xf8\xf8\xfa\xd9\xf3\xf8\xf8\xfa\xde\xf1\xdc\xf6\xf8\xf8\xf8\xde\xf3\xfb\xf8\xf8\xfa\xde\xf3\xf8\xf8\xfa\xde\xf1\xdf\xf6\xf8\xf8\xf8\xde\xf5\xf8\xf8\xf8\xf8\xf8\xde\xf5\xf5\xf8\xfa\xfa\xf8\xde\xf5\xf5\xf8\xfa\xde\xf1\xde\xf5\xf5\xf8\xfa\xdc\xf8\xf8\xf5\xf5\xf8\xfa\xd9\xf8\xf5\xf8\xf8\xf5")); -rcv($sock_c, $port_c, rtpm(9, $seq + 3, $ts + 480, $ssrc, "\xf8\xdc\xde\xef\xfb\xdf\xf0\xfb\xd6\xf4\xf3\xdf\xf9\xf3\xf9\xd9\xfb\xf5\xfb\xdf\xf2\xf7\xdd\xdf\xf7\xdf\xf5\xf5\xf7\xdd\xdf\xf9\xfb\xf9\xf3\xfb\xdf\xf9\xdf\xf9\xf7\xf5\xf5\xdf\xfb\xdf\xf9\xf7\xf9\xf5\xfb\xdf\xf9\xfb\xfb\xf6\xf6\xf9\xdf\xfb\xfb\xfb\xf9\xf4\xf9\xdf\xf6\xdf\xf6\xf9\xf6\xf9\xfb\xdf\xf8\xf8\xfb\xf6\xf6\xfb\xdc\xfb\xdf\xf4\xf6\xfb\xf6\xdf\xf4\xdc\xdf\xf4\xf6\xfb\xf8\xf6\xdc\xdf\xf4\xf8\xfb\xfb\xf4\xfb\xda\xf2\xdf\xf6\xfb\xf8\xf8\xdf\xf4\xfb\xfb\xfb\xf8\xf8\xdf\xf3\xf8\xfb\xdf\xf2\xfb\xdc\xf8\xf6\xdc\xfb\xf4\xf8\xdf\xf8\xf5\xfb\xdf\xf1\xf6\xdc\xf8\xf8\xfb\xdf\xf4\xf6\xdf\xf6\xf8\xfb\xdc\xf8\xf5\xfb\xf8\xf5\xfb\xdc\xf5\xf8")); -rcv($sock_c, $port_c, rtpm(9, $seq + 4, $ts + 640, $ssrc, "\xfa\xf5\xf8\xfa\xdc\xf8\xf5\xf5\xf8\xde\xf5\xf8\xf8\xf5\xf8\xfa\xdc\xf8\xf5\xf5\xf8\xfa\xdc\xf8\xf8\xf5\xf5\xf8\xfa\xd9\xf8\xf8\xf5\xf5\xf8\xfa\xd9\xf8\xfa\xfa\xf5\xf3\xde\xf8\xde\xf8\xf8\xf5\xf1\xfa\xde\xfa\xde\xf3\xf8\xf3\xf6\xdc\xfb\xda\xf6\xf8\xf4\xf6\xfb\xf8\xdc\xdf\xf6\xf8\xf6\xf8\xf6\xdf\xfb\xfb\xfb\xf8\xf6\xf8\xfb\xdc\xf8\xf8\xfa\xf5\xf3\xdf\xf8\xf8\xdc\xfa\xf8\xef\xdf\xf8\xf6\xdc\xf8\xdf\xf0\xf8\xfb\xf8\xfb\xfb\xdf\xf4\xf8\xf8\xfa\xfa\xf8\xfa\xde\xf1\xf8\xfa\xde\xf1\xf6\xda\xf4\xfb\xf6\xdf\xf6\xf6\xdd\xf8\xfb\xf8\xf8\xfb\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xde\xf3\xf8\xf8\xfa\xde\xf3\xde\xf3\xf8\xf8\xfb\xdc\xf5\xfa\xf8\xf5\xf8\xfa")); -rcv($sock_c, $port_c, rtpm(9, $seq + 5, $ts + 800, $ssrc, "\xd9\xf5\xf8\xfa\xfa\xf8\xf5\xde\xf5\xf8\xfa\xde\xf3\xf5\xfb\xdf\xf5\xf8\xdc\xf8\xf3\xf6\xdc\xf8\xf8\xdf\xf3\xf6\xfb\xdf\xf6\xfb\xfb\xf8\xf6\xdc\xfb\xf8\xf6\xfb\xfb\xf8\xfa\xdc\xf8\xf5\xf5\xf8\xfa\xde\xf5\xfa\xde\xf1\xf6\xfb\xdf\xf5\xf6\xd8\xf6\xf8\xf2\xdf\xf9\xf6\xda\xf4\xdf\xf3\xf7\xf9\xf7\xd9\xfb\xdf\xf3\xf7\xf7\xf9\xdd\xdb\xfb\xf7\xf2\xf4\xfa\xdb\xdf\xfb\xf9\xf3\xf6\xf6\xde\xde\xdf\xf4\xf6\xf6\xf5\xfa\xde\xfb\xde\xf4\xf8\xf6\xf8\xf9\xfb\xdd\xf9\xfb\xf9\xf7\xfb\xf9\xfb\xdd\xf9\xfb\xf9\xf6\xdf\xf3\xdf\xf9\xfb\xdf\xf4\xdf\xf4\xf7\xfb\xfb\xdf\xf6\xfb\xfb\xf9\xf6\xdf\xf9\xf9\xfb\xfb\xf6\xf9\xfb\xdf\xf6\xfb\xfb\xf8\xf6\xfb\xdf\xf6\xdf")); -rcv($sock_c, $port_c, rtpm(9, $seq + 6, $ts + 960, $ssrc, "\xf6\xfb\xf6\xf8\xfb\xdf\xf8\xf8\xfa\xf8\xf3\xfb\xdc\xf8\xf8\xde\xf5\xf1\xf6\xda\xf0\xf9\xd8\xfb\xf6\xf4\xdf\xf4\xf6\xdd\xdf\xf6\xf9\xfb\xfb\xf9\xf9\xdf\xf4\xfb\xf9\xf8\xfb\xdf\xf4\xfb\xf8\xf8\xfb\xfb\xde\xf1\xfb\xfb\xfb\xfa\xf8\xde\xf3\xfb\xf8\xf8\xde\xf3\xda\xf0\xf9\xf6\xdf\xf9\xf6\xda\xf3\xfb\xf4\xfb\xdd\xf9\xdd\xf9\xf9\xf6\xf9\xf9\xfb\xdc\xf8\xf8\xf6\xdf\xf4\xf6\xdf\xf6\xdf\xf6\xdf\xf6\xf6\xfb\xfb\xdf\xf6\xfb\xfb\xf8\xf6\xfb\xdf\xf6\xf8\xfb\xfb\xf8\xf8\xde\xf3\xf8\xfb\xfb\xfa\xde\xf3\xf8\xfb\xfb\xfa\xfa\xde\xf1\xf8\xfa\xfa\xfa\xfa\xdc\xf5\xf5\xf8\xfa\xde\xf1\xfa\xdc\xf5\xf5\xf8\xde\xf3\xdf\xf6\xf6\xf6\xf8\xdc\xdf\xf8\xf8\xf6\xf4")); -rcv($sock_c, $port_c, rtpm(9, $seq + 7, $ts + 1120, $ssrc, "\xf4\xdf\xdf\xfb\xdf\xf4\xf4\xf4\xf8\xdc\xdf\xfb\xfb\xf6\xf4\xf6\xdf\xfb\xdc\xfb\xfb\xf5\xf2\xfb\xf8\xdf\xf8\xdc\xfb\xf5\xf4\xf6\xdf\xf6\xfb\xdf\xf8\xfb\xfb\xfa\xf8\xf5\xfa\xdc\xf5\xf5\xf8\xfa\xf8\xf3\xda\xf6\xf6\xfb\xdf\xf6\xf6\xdc\xfb\xdf\xf2\xfb\xfb\xfb\xfb\xdf\xf6\xf6\xfb\xdf\xf6\xf8\xdf\xf8\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xde\xf1\xf8\xfa\xde\xf1\xf8\xde\xf3\xfb\xf6\xdf\xf6\xfb\xdf\xf6\xfb\xf8\xfb\xde\xf1\xdf\xf6\xf8\xf8\xfb\xdf\xf3\xdf\xf4\xf8\xfb\xfb\xfb\xf8\xfa\xfa\xf8\xf8\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa")); -rcv($sock_c, $port_c, rtpm(9, $seq + 8, $ts + 1280, $ssrc, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xde\xee\xd6\xef\xdc\xdf\xf4\xda\xec\xdd\xf6\xda\xf9\xf4\xdb\xef\xda\xf3\xd6\xf7\xfa\xd9\xf2\xfe\xf8\xda\xf7\xde\xfa\xf8\xf7\xfe\xd9\xf7\xdc\xfa\xfa\xf6\xfc\xdc\xfb\xd9\xf8\xf5\xf6\xfb\xd9\xfb\xd7\xf2\xf6\xfa\xfc\xfe\xd9\xd9\xf6\xf4\xf7\xde\xf6\xd8\xd8\xf7\xf6\xf7\xde\xf4\xdd\xd4\xfc\xf1\xf6\xdf\xf4\xfc\xd4\xdf\xf0\xf4\xfc\xf8\xf9\xd7\xdd\xf4\xf3\xfc\xf9\xfb\xd7\xdd\xf7\xf7\xfb\xf8\xf6\xd7\xdc")); -rcv($sock_c, $port_c, rtpm(9, $seq + 9, $ts + 1440, $ssrc, "\xf8\xf7\xfb\xf7\xf8\xdb\xdd\xfe\xf9\xf8\xf5\xf8\xdd\xdd\xfe\xfe\xf9\xf7\xfc\xfc\xdc\xfe\xfe\xfa\xf8\xfa\xfb\xdc\xfb\xdc\xf9\xf6\xf9\xf7\xdb\xf5\xfb\xda\xf5\xf8\xfa\xde\xf6\xfa\xdb\xf5\xf8\xfb\xdb\xf3\xfb\xd9\xfa\xf6\xfa\xde\xf6\xfa\xde\xfa\xfa\xf9\xdf\xf6\xf7\xdd\xfb\xdd\xf9\xf9\xf5\xf7\xfb\xdf\xf9\xfb\xfb\xf7\xf7\xdf\xf9\xfb\xfb\xf9\xf6\xfb\xdf\xf6\xfb\xf9\xf9\xf9\xf9\xdf\xf4\xf9\xf9\xf8\xf8\xf8\xdf\xf4\xf8\xf8\xf8\xf8\xf8\xde\xf3\xfb\xfb\xfb\xfa\xfa\xdc\xf5\xf5\xf8\xfa\xde\xf1\xdf\xf6\xfb\xf8\xf5\xdf\xf4\xdf\xf6\xf8\xf6\xf8\xfb\xdf\xf8\xf8\xf8\xf5\xf5\xf8\xdc\xde\xf3\xf8\xf8\xf3\xfb\xdc\xdf\xf2\xdc\xfb\xf6\xf6\xdf\xf6\xf8\xdf\xf8")); -rcv($sock_c, $port_c, rtpm(9, $seq + 10, $ts + 1600, $ssrc, "\xf8\xf6\xdc\xf6\xf8\xfb\xfb\xfb\xf5\xfb\xdc\xf5\xf8\xf8\xf8\xf8\xf5\xde\xf8\xf8\xf8\xf8\xf8\xf5\xfa\xdc\xf8\xf8\xf7\xfa\xf7\xf8\xde\xf7\xde\xf0\xf8\xf8\xf8\xde\xf3\xdc\xf5\xf3\xdf\xf8\xfa\xf5\xfb\xde\xf1\xf8\xdf\xf8\xf3\xf8\xdf\xf6\xf8\xfb\xfb\xf6\xfb\xdf\xf4\xfb\xdf\xf1\xf6\xdf\xfb\xf6\xf8\xdc\xf8\xf6\xdf\xf6\xf6\xf8\xfb\xdf\xf6\xdf\xf4\xf6\xf8\xfb\xdf\xf6\xdf\xf4\xf6\xf6\xfb\xdf\xf8\xdf\xf6\xf6\xf2\xfb\xdf\xfb\xdc\xfb\xf8\xf2\xf9\xf9\xdf\xfb\xfb\xfb\xf6\xf4\xf8\xdc\xdf\xf6\xf8\xf8\xf6\xf8\xfb\xdc\xf8\xf8\xfa\xfa\xf5\xf5\xde\xf5\xf5\xdf\xf8\xf3\xf8\xdf\xf4\xf6\xdc\xfb\xf6\xf6\xdf\xf6\xfb\xdf\xf6\xf8\xf6\xdc\xf8\xfb\xfb\xf8\xf8\xf8")); -rcv($sock_c, $port_c, rtpm(9, $seq + 11, $ts + 1760, $ssrc, "\xfa\xde\xf1\xf8\xfa\xdc\xf5\xf5\xf8\xf8\xfa\xde\xf3\xf8\xf5\xfb\xdc\xfa\xfa\xf8\xf3\xfb\xdf\xf5\xfb\xde\xf3\xf6\xf6\xdc\xdf\xf8\xfb\xf8\xf4\xf4\xdf\xfb\xdf\xf4\xfb\xfb\xf6\xf8\xfb\xdc\xf8\xfa\xfa\xf8\xf3\xde\xf3\xda\xf4\xf6\xfb\xf8\xfb\xdf\xf8\xf8\xf8\xf8\xf8\xf5\xfa\xdc\xf5\xf5\xf8\xdc\xf8\xf3\xdf\xf0\xfb\xdf\xf8\xdc\xf4\xfb\xf6\xf6\xdf\xf8\xdc\xfb\xf8\xf5\xf6\xdf\xf2\xfb\xdc\xfb\xdf\xf4\xf8\xf6\xf8\xf8\xdf\xfb\xf8\xf8\xf8\xf5\xf8\xde\xf3\xf8\xfa\xde\xf1\xfb\xdf\xf6\xf6\xf8\xdf\xf8\xfb\xfa\xf8\xf3\xdf\xf6\xdf\xf6\xf8\xfb\xfb\xfa\xf8\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa")); -rcv($sock_c, $port_c, rtpm(9, $seq + 12, $ts + 1920, $ssrc, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xde\xee\xd8\xf8\xf7\xdc\xf4\xdc\xef\xda\xf4\xfb\xda\xf0\xdd\xf3\xd8\xf6\xdf\xf9\xf4\xdf\xef\xd5\xf9\xf9\xf9\xf9\xf9\xf0\xdb\xf7\xda\xf3\xda\xf7\xf5\xde\xfa\xd9\xf5\xfc\xf8\xf6\xdc\xfb\xd7\xf1\xf7\xdc\xf7\xde\xfa\xd8\xf7\xf7\xde\xf7\xfe\xdc\xdb\xf4\xf4\xfe\xfa\xf7\xd8\xd7\xf2\xf3\xdc\xf9\xf5\xd9\xd5\xf5\xf1\xfb\xdc\xf8\xfc\xd6\xfb")); +rcv($sock_c, $port_c, rtpm(9, $seq + 2, $ts + 320, $ssrc, "\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfb\xde\xf3\xdc\xf8\xfb\xde\xf1\xde\xf6\xde\xf5\xfa\xdc\xf8\xfb\xdf\xf5\xfa\xf8\xf9\xfb\xdf\xf7\xdf\xf6\xfb\xf7\xfb\xfb\xf9\xdf\xf7\xdf\xf5\xf7\xf9\xf7\xf9\xf9\xdf\xf7\xf9\xf9\xfb\xfb\xf9\xfb\xdf\xf3\xfb\xfb\xfb\xfb\xfb\xdf\xf3\xdf\xf6\xf9\xf9\xfb\xfb\xf9\xfb\xdf\xf3\xfb\xfb\xfb\xfb\xfb\xdf\xf2\xfb\xdf\xf6\xf9\xf9\xdf\xf4\xf6\xdf\xf6\xf9\xf6\xdf\xf9\xf9\xdf\xf4\xf8\xf8\xfb\xfb\xf6\xfb\xfb\xfb\xfb\xf8\xfa\xfa\xf8\xf8\xfa\xde\xf1\xfa\xf8\xf8\xfa\xde\xf3\xfa\xf5\xfa\xde\xf3\xdf\xf3\xfb\xf8\xf8\xdf\xf6\xdf\xf4\xfb")); +rcv($sock_c, $port_c, rtpm(9, $seq + 3, $ts + 480, $ssrc, "\xfb\xf8\xfa\xfa\xfa\xf8\xf8\xfa\xfa\xf8\xf8\xfa\xde\xf2\xf8\xf8\xde\xf4\xf5\xfa\xde\xf1\xf5\xfa\xde\xf5\xf8\xfa\xf5\xf8\xfa\xde\xf5\xf5\xf8\xfa\xde\xf3\xf8\xf8\xf8\xde\xf5\xf8\xf8\xf5\xf8\xfa\xde\xf5\xf5\xf8\xfa\xfa\xfa\xfa\xf7\xf8\xfa\xdb\xf3\xfa\xf8\xf8\xfa\xde\xf8\xf5\xf5\xf8\xfa\xde\xf8\xfa\xf7\xf2\xfa\xde\xfa\xde\xf5\xf5\xf3\xf8\xde\xfa\xdc\xf8\xf5\xf1\xf6\xda\xf2\xda\xfb\xf9\xf4\xf4\xdf\xf4\xdf\xfb\xfb\xf6\xf6\xfb\xf9\xdf\xfb\xfb\xf8\xf6\xfb\xf8\xfb\xdc\xf8\xf8\xf8\xf5\xf5\xf8\xdc\xfa\xde\xf3\xf8\xf6\xf8\xf8\xde\xde\xf3\xf8\xf8\xf6\xf8\xfb\xd9\xf6\xfb\xf8\xf6\xdf\xf4\xdf\xf8\xf8\xf8\xf5\xf8\xf8\xfa\xfa\xde\xf5\xf5\xfa\xfa\xf3")); +rcv($sock_c, $port_c, rtpm(9, $seq + 4, $ts + 640, $ssrc, "\xfb\xd7\xf4\xf6\xdf\xf6\xf6\xf6\xda\xf6\xf9\xdf\xf6\xf9\xf3\xdb\xf5\xf9\xdf\xf7\xf9\xf3\xdb\xf7\xdd\xdf\xf7\xf7\xf7\xdb\xf6\xfb\xdb\xf6\xf8\xf5\xde\xf6\xfa\xde\xf7\xdf\xf3\xfa\xfa\xfa\xdf\xf6\xdf\xf4\xf8\xf9\xf9\xfb\xf9\xfb\xfb\xf9\xf9\xfb\xfb\xf9\xf9\xfb\xfb\xf9\xf9\xfb\xfb\xf8\xf8\xfb\xfb\xf8\xf8\xfa\xde\xf3\xf8\xf8\xfa\xde\xf3\xdf\xf4\xf8\xf8\xf8\xde\xf3\xfb\xf8\xf8\xfb\xfa\xde\xf3\xf8\xf8\xfb\xde\xf3\xfb\xf8\xf8\xfa\xde\xf8\xf5\xf5\xf8\xfa\xde\xf8\xfa\xf8\xf3\xfa\xfa\xdc\xfa\xde\xf1\xf3\xfb\xfb\xdc\xfa\xd9\xf4\xf2\xdf\xf2\xfb\xdd\xdd\xf8\xf4\xf8\xf4\xf6\xdd\xdf\xf6\xfb\xf8\xf6\xf9\xf8\xdc\xfb\xfb\xf8\xf4\xf8\xf8\xdf\xf5\xf8\xfa")); +rcv($sock_c, $port_c, rtpm(9, $seq + 5, $ts + 800, $ssrc, "\xfa\xf8\xf5\xde\xf5\xf8\xfa\xde\xf1\xf6\xda\xf2\xdf\xf4\xdf\xf4\xf6\xdf\xf4\xfb\xfb\xfb\xf8\xf8\xdf\xf6\xf8\xf6\xfb\xf8\xfb\xdc\xf8\xf8\xf5\xf6\xdf\xf6\xdf\xf6\xf8\xf6\xfb\xfb\xfb\xdf\xf5\xf8\xf8\xf8\xf8\xfa\xde\xf1\xf8\xfa\xde\xf1\xfb\xdf\xf3\xf8\xfb\xdf\xf4\xfb\xfb\xf6\xf8\xfb\xdc\xf8\xf8\xf8\xf5\xf5\xfa\xd9\xf8\xfa\xfa\xf5\xf3\xdf\xf8\xdf\xf8\xf8\xf5\xf1\xfb\xdc\xdf\xf8\xf8\xf5\xf1\xf6\xda\xf9\xdf\xf8\xf6\xf4\xf2\xdd\xdf\xfb\xdd\xf6\xf6\xf3\xf9\xdf\xf9\xdd\xdf\xf3\xf3\xf9\xfb\xdd\xdf\xfb\xf9\xf4\xf6\xf9\xf9\xdd\xdf\xf6\xf9\xf6\xf9\xf4\xdd\xdd\xf9\xf9\xf9\xf6\xf9\xf6\xda\xf6\xfb\xfb\xf9\xf6\xfb\xdd\xf8\xf8\xfb\xdf\xf0\xf6\xda\xf4")); +rcv($sock_c, $port_c, rtpm(9, $seq + 6, $ts + 960, $ssrc, "\xf9\xdf\xfb\xf9\xf2\xdd\xf9\xf9\xdf\xf9\xfb\xf6\xf8\xf8\xfb\xdc\xf8\xfb\xf8\xf5\xf8\xf5\xdf\xf4\xfb\xf8\xf8\xde\xf3\xdf\xf4\xfb\xfb\xf8\xfa\xfa\xfa\xf8\xf8\xfa\xde\xf1\xf8\xfa\xdc\xf3\xf5\xdf\xfa\xf8\xf1\xdf\xf6\xdf\xf4\xfb\xdc\xf6\xdf\xf4\xfb\xf8\xf8\xfa\xfa\xfa\xf8\xf8\xfa\xde\xf3\xf8\xf8\xde\xf3\xfa\xfa\xfa\xf5\xf8\xdc\xfa\xf8\xf5\xfa\xf8\xf5\xde\xfa\xf8\xf5\xf8\xfa\xfa\xde\xf2\xfa\xf8\xf8\xfa\xde\xf4\xf5\xf8\xfa\xde\xf2\xde\xf5\xf5\xf5\xde\xde\xef\xdf\xf8\xf6\xf4\xdf\xdf\xf2\xfb\xdf\xf4\xf6\xdf\xfb\xf9\xf4\xdd\xfb\xf6\xfb\xfb\xfb\xf8\xfb\xdc\xf6\xdf\xf4\xf6\xfb\xf8\xdf\xf6\xdc\xf8\xf6\xf8\xf8\xfa\xde\xf5\xf8\xfa\xf8\xf3\xdf\xfa")); +rcv($sock_c, $port_c, rtpm(9, $seq + 7, $ts + 1120, $ssrc, "\xf8\xf8\xde\xf8\xf1\xfa\xfa\xf5\xf8\xd9\xfa\xfa\xf8\xf5\xf5\xf8\xde\xf5\xfa\xd9\xf3\xf6\xfb\xdc\xf8\xf6\xda\xf0\xf9\xf6\xdd\xfb\xf9\xfb\xfb\xfb\xf6\xdf\xf4\xdf\xf6\xf6\xf9\xf6\xda\xf6\xfb\xf9\xf6\xfb\xf6\xdd\xfb\xdf\xf6\xf4\xf9\xf6\xda\xf6\xfb\xfb\xf6\xf9\xf9\xdd\xfb\xfb\xfb\xf6\xf8\xf6\xda\xf4\xfb\xdf\xf1\xf6\xdf\xf6\xf9\xf9\xdd\xfb\xf6\xf9\xf6\xdf\xf4\xfb\xdd\xf6\xf9\xf6\xdf\xf4\xfb\xdf\xf4\xfb\xf9\xf9\xfb\xfb\xfb\xf8\xf8\xfb\xdf\xf1\xf8\xf8\xfb\xdf\xf6\xdf\xf2\xf6\xf6\xfb\xdd\xdf\xdf\xf4\xf2\xf6\xfb\xdf\xf9\xda\xf9\xf6\xf3\xf7\xfb\xdf\xfb\xda\xf6\xf5\xf3\xdf\xfb\xf9\xdd\xdf\xf7\xf5\xf7\xfb\xfb\xdf\xfb\xdf\xf4\xf7\xf9\xf9\xdf\xf9")); +rcv($sock_c, $port_c, rtpm(9, $seq + 8, $ts + 1280, $ssrc, "\xdf\xf6\xf6\xf6\xf9\xdf\xfb\xdd\xf9\xf6\xf6\xf6\xdf\xf9\xdf\xfb\xf9\xf6\xf6\xf9\xfb\xdd\xfb\xfb\xfb\xf8\xf6\xfb\xdf\xf4\xf8\xdf\xf8\xf6\xf8\xfb\xdf\xf3\xfb\xdf\xf4\xf4\xfb\xda\xf4\xf8\xdf\xf6\xf6\xf6\xdf\xf9\xdf\xfb\xfb\xf6\xf4\xf8\xdf\xfb\xdf\xf6\xf6\xf6\xf8\xdf\xfb\xdc\xf8\xf6\xf6\xf8\xfb\xdc\xfb\xfa\xf8\xf5\xf8\xfa\xde\xf1\xf6\xdc\xf8\xf8\xfa\xde\xf3\xf4\xf8\xdf\xf8\xfb\xde\xf3\xf6\xf6\xfb\xdf\xf8\xdc\xfb\xf8\xf3\xf6\xf8\xfb\xda\xf8\xfb\xf8\xf4\xf6\xfb\xdc\xfb\xdf\xf4\xf6\xfb\xfb\xdf\xf4\xfb\xdc\xf5\xf6\xf8\xfb\xfb\xfa\xde\xf5\xf5\xfb\xfa\xf8\xf5\xfa\xdc\xf5\xf5\xfb\xde\xf1\xf4\xdf\xf8\xf8\xfb\xdf\xf3\xf6\xf8\xfb\xdf\xf6\xdf\xf6")); +rcv($sock_c, $port_c, rtpm(9, $seq + 9, $ts + 1440, $ssrc, "\xf6\xf8\xfb\xdc\xf8\xfb\xfb\xf5\xf6\xfb\xfb\xfb\xde\xf3\xfb\xdf\xf2\xf6\xfb\xda\xf8\xf8\xfb\xf8\xf4\xf6\xdc\xfb\xfb\xfb\xfb\xf8\xf5\xfb\xdc\xf5\xf6\xdf\xf6\xf4\xf6\xdc\xdf\xf6\xdf\xf4\xf6\xf6\xfb\xda\xf9\xdf\xf4\xf4\xf4\xf9\xdd\xdf\xfb\xfb\xf6\xf2\xf6\xdf\xdf\xfb\xdd\xf6\xf9\xf4\xf9\xdf\xf9\xfb\xfb\xf8\xf6\xf8\xfb\xdc\xf8\xfb\xfa\xf5\xf3\xdf\xf6\xfb\xfb\xdf\xf6\xfb\xdf\xf4\xf8\xfb\xdf\xf3\xf8\xfb\xfb\xf8\xf8\xde\xf5\xf8\xf8\xf8\xf8\xf8\xfa\xde\xf1\xfa\xfa\xfa\xf8\xf8\xde\xf3\xfa\xf8\xf8\xf8\xde\xf5\xf8\xf5\xfa\xf8\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa")); +rcv($sock_c, $port_c, rtpm(9, $seq + 10, $ts + 1600, $ssrc, "\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xde\xee\xd6\xef\xda\xf2\xda\xf9\xf1\xd9\xf3\xd6\xef\xd9\xde\xef\xd7\xf1\xdc\xf8\xfa\xda\xef\xd5\xf8\xf9\xfc\xfe\xdd\xf2\xd9\xfe\xfb\xfb\xdf\xf8\xf3\xd8\xdc\xf9\xf6\xdb\xf5\xf3\xd9\xdb\xf5\xf8\xdd\xf8\xf2\xdb\xdf\xf6\xfe\xdf\xf7\xf8\xfe\xd9\xf8\xf9\xfc\xf9\xf9\xfc\xdb\xf6\xfc\xfa\xfe\xfa\xfc\xdb\xf6\xfa\xf8\xfe\xfe\xfc\xda\xf6\xfa\xf8\xf8\xdf\xf5\xdc")); +rcv($sock_c, $port_c, rtpm(9, $seq + 11, $ts + 1760, $ssrc, "\xfb\xdf\xf1\xf8\xdf\xf8\xdf\xf6\xfb\xf8\xf7\xda\xfa\xde\xf6\xf8\xf6\xfa\xdd\xdd\xdb\xf3\xf6\xf6\xf6\xdf\xde\xdc\xfa\xf8\xf3\xf8\xfb\xd9\xdc\xfb\xdf\xf0\xf3\xfc\xdc\xdc\xfb\xda\xf5\xf2\xf8\xfe\xdc\xfb\xd9\xfb\xf5\xf6\xfb\xde\xfa\xdc\xfa\xf9\xf4\xf9\xfb\xdf\xf7\xdd\xf9\xf7\xfb\xdf\xf5\xf7\xda\xf9\xf6\xf9\xdf\xf6\xf7\xda\xf9\xf7\xdf\xf9\xf7\xf7\xda\xfa\xfb\xdf\xf6\xf6\xf6\xdc\xdb\xf6\xfb\xfb\xf7\xfa\xfb\xdb\xf6\xfa\xf9\xf9\xf9\xf9\xdd\xf9\xf7\xf7\xf7\xdf\xfb\xdd\xf9\xfb\xf5\xf5\xf9\xdf\xfb\xfb\xf9\xf9\xf6\xf9\xfb\xdf\xf6\xf9\xf9\xf9\xf9\xfb\xdf\xf4\xf6\xf9\xf9\xfb\xdf\xf8\xf8\xf6\xf8\xf6\xfb\xdf\xf8\xfb\xf8\xf5\xf6\xdf\xf6\xdf\xf6\xfb")); +rcv($sock_c, $port_c, rtpm(9, $seq + 12, $ts + 1920, $ssrc, "\xf6\xf6\xdf\xf6\xdc\xf8\xf8\xf6\xf8\xf8\xf8\xdf\xf8\xf8\xf5\xf5\xf8\xfa\xd9\xf5\xfb\xfb\xf5\xf6\xdc\xdf\xf4\xf8\xf8\xf8\xf3\xdf\xf8\xfb\xf8\xfa\xde\xef\xfb\xfb\xfb\xfb\xdf\xfb\xf6\xf6\xfb\xfb\xfb\xdc\xfa\xfa\xf5\xf3\xdf\xf4\xdf\xf8\xdf\xf6\xf2\xf8\xfb\xdf\xf6\xdc\xfb\xf6\xf6\xf8\xfb\xdf\xf8\xfb\xfb\xf5\xf4\xfb\xdc\xf8\xfa\xde\xf3\xf4\xf8\xdf\xf6\xf8\xdc\xfb\xf3\xf6\xdc\xf6\xf8\xdc\xdc\xf4\xf2\xdf\xf1\xf9\xdd\xdd\xdf\xf3\xf9\xf6\xfb\xdf\xf6\xdd\xf9\xfb\xfb\xf9\xf8\xf8\xfb\xdf\xf2\xfb\xdf\xf4\xfb\xdc\xfb\xf8\xf6\xfb\xf8\xf8\xdf\xf8\xfa\xf5\xf5\xf8\xfa\xdc\xf5\xf5\xf8\xfa\xde\xef\xf8\xf8\xdc\xfb\xfb\xfb\xf6\xf6\xfb\xdc\xfb\xdf\xf1\xf8")); # push media snd($sock_a, $port_b, rtp (0, 1002, 3320, 0x1234, "\x44" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002, 3320, 0x1234, "\x44" x 160)); snd($sock_b, $port_a, rtp (0, 8001, 10160, 0x2d8c, "\x55" x 160)); rcv($sock_a, $port_b, rtpm(0, 8001, 10160, 0x2d8c, "\x55" x 160)); -rcv($sock_c, $port_c, rtpm(9, $seq + 13, $ts + 2080, $ssrc, "\xf1\xf6\xdb\xf8\xfc\xd7\xfb\xf3\xf6\xde\xfb\xdd\xd8\xfe\xf3\xf5\xfe\xdf\xfc\xda\xdf\xf1\xf4\xf8\xdf\xfc\xdc\xdd\xf5\xf6\xfb\xdf\xfb\xdf\xdf\xf8\xf4\xf6\xfe\xfe\x1e\x99\x2c\x87\x22\x84\x0b\xaf\xb5\xbb\x1f\xb9\x57\xd3\xfa\x74\xf6\xff\xff\xd9\xd3\x9f\x76\xf7\xfd\xfb\xdb\xd7\xda\xfb\xfc\xf8\xb6\x5e\xd8\xd6\xbe\x5e\xfc\xb6\x7d\xdd\xd8\xda\x9d\x5f\xf9\xbb\x5d\xdc\xda\xdd\x9b\x7c\xfb\x9d\x5e\xdf\xde\x9a\x5e\xfd\xfe\x9a\x7f\xdd\xda\xdc\xdd\xdf\xfe\xdb\x7c\x9d\xdb\xdf\xfe\x9b\x7e\x9b\xfc\x1e\x98\x36\x8a\x20\xa9\x4c\x99\x79\x7a\xd8\x7b\xf2\xff\xd9\xdf\xf9\xde\xfe\x79\xf8\xfd\xdf\xfc\xfd\xbe\x5f\xf8\x79\xfe\x9e\xfc\xfb\x5d\xff\xfb\xfe\xbe\xdf")); +rcv($sock_c, $port_c, rtpm(9, $seq + 13, $ts + 2080, $ssrc, "\xfb\xf8\xf8\xfa\xdc\xf5\xf5\xf8\xf8\xf8\xf5\xfa\xd9\xf5\xf8\xfb\xde\xef\xf6\xdf\xf6\xdd\xfb\xfb\xf4\xf4\xfb\xdd\xfb\xfb\xf8\xf6\xf8\xf6\xdc\xfb\xfb\xf8\xf6\xdf\x28\x84\x20\x84\x20\x84\x04\xbd\x35\xb7\x9f\xf9\x5c\x8e\x16\xbb\x3b\xbd\xfc\x37\x8d\x27\x9c\x11\xba\x1f\xb8\x5c\x75\xf6\x59\xda\x7e\xdf\xfc\x78\x75\xfd\xdb\x5f\xdf\x7e\xff\xf9\x79\xdf\xdf\x5f\xfe\xdd\xff\xfa\x7e\xdd\xdd\xdf\xff\xde\xfd\xfc\xfd\xde\xdd\xde\xfe\xdc\xdd\xfd\x9f\x7f\xdb\xfd\xde\xde\x9f\xfe\xdc\xdb\xfd\xde\xdd\xdd\x9d\xde\xdd\xdd\xdd\xdd\xdd\xdd\xdd\x9c\xdc\xdb\xfd\xde\xdd\xdc\xdb\xfd\xdb\xfe\xdb\xfe\xdc\xd9\xde\xde\xdf\xfe\xda\xdf\xff\xda\xde\xde\xff\xdc\xd9\xff")); rtpe_req('delete', 'delete');