diff --git a/t/Makefile b/t/Makefile index 8b9f32816..f706673b8 100644 --- a/t/Makefile +++ b/t/Makefile @@ -90,7 +90,8 @@ include ../lib/common.Makefile daemon-tests-bundle daemon-tests-dtls daemon-tests-rollback \ daemon-tests-rollback-redis \ daemon-tests-recording daemon-tests-create daemon-tests-alias \ - daemon-tests-kernel-api + daemon-tests-kernel-api \ + daemon-tests-video TESTS := test-bitstr aes-crypt aead-aes-crypt test-const_str_hash.strhash ifeq ($(with_transcoding),yes) @@ -143,7 +144,8 @@ daemon-tests: daemon-tests-main daemon-tests-jb daemon-tests-pubsub daemon-tests daemon-tests-recording daemon-tests-create \ daemon-tests-dtx daemon-tests-dtx-cn daemon-tests-dtx-no-shift \ daemon-tests-alias \ - daemon-tests-kernel-api + daemon-tests-kernel-api \ + daemon-tests-video daemon-test-deps: tests-preload.so $(MAKE) -C ../daemon @@ -278,6 +280,9 @@ daemon-tests-t38: daemon-test-deps spandsp_recv_fax_pcm spandsp_recv_fax_t38 \ daemon-tests-evs-dtx: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-evs-dtx.pl +daemon-tests-video: daemon-test-deps + ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-video.pl + daemon-tests-codec-prefs: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-codec-prefs.pl diff --git a/t/auto-daemon-tests-video.pl b/t/auto-daemon-tests-video.pl new file mode 100644 index 000000000..39ad6a6b4 --- /dev/null +++ b/t/auto-daemon-tests-video.pl @@ -0,0 +1,438 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use NGCP::Rtpengine::Test; +use NGCP::Rtpclient::SRTP; +use NGCP::Rtpengine::AutoTest; +use Test::More; +use IPC::Open3; + + +$ENV{RTPENGINE_EXTENDED_TESTS} or exit(); + + +autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 + -n 2223 -f -L 7 -E --log-level-internals=7 --video-packet-size=1200)) + or die; + + +my ($sock_a, $sock_b, $port_a, $port_b, $resp, $srtp_ctx_a, $srtp_ctx_b, @ret1, @ret2, $pid1, $pid2, + $cid, $ft); + + + +($sock_a, $sock_b) = new_call([qw(198.51.100.12 4000)], [qw(198.51.100.12 4002)]); + +($cid, $ft, $port_a, undef, $port_b) = create('playback VP8', { + medias => [ + { + type => 'audio', + codecs => ['opus'], + }, + { + type => 'video', + codecs => ['VP8//////threads=1'], + }, + ], + 'rtcp-mux' => 'require', + }, < $ft }, < $ft, file => 'test.mkv' }); + +@ret1 = rcv($sock_a, $port_a, rtpm(96 | 0x80, -1, -1, -1, "\x6c\x07\xfd\x87\x3d\x83\x1a\xeb\x3c\x3b\x30\x6a\x80\x1e\x4e\x43\x69\x76\xe9\x57\x59\x6a\x30\xb6\xd6\xeb\xc8\x0b\x00\x40")); + +@ret1 = rcv($sock_b, $port_b, rtpmre(96, -1, -1, -1, "\x90\x80(..)\Q\xf0\xc2\x02\x9d\x01\x2a\x00\x05\xd0\x02\x11\xc7\x08\x85\x85\x88\x99\x84\x88\x04\x03\x26\x6f\x37\x35\xaf\xe6\x4d\xa6\x65\xbb\x8b\xdc\x50\x51\xbe\x9b\x67\x75\xf1\x4e\xd6\x14\x1f\xec\xfe\x5f\x65\x4e\xbf\xf4\x77\xc7\xeb\xe7\xf3\xbf\xb5\x7f\x71\xfe\x07\xf7\x67\xd8\xcf\xfe\x9f\xf4\x1e\x69\x7d\x73\xfb\x0f\xfc\x1f\xeb\xbd\x53\xfe\x73\xf9\x27\xf8\x9f\xe1\x3f\x78\xbd\xbe\xf1\xbf\xe6\x6e\x87\x1f\xd7\xbf\xdf\xf1\xa2\x82\xaf\xe0\xfc\x2e\x3f\x5b\xd5\x0f\xcd\x3f\xdb\xfb\x1e\xff\x31\xf3\x3f\xd1\x1b\xf1\xfe\xab\xde\x4c\x1f\xe8\x7f\xf6\xf1\x43\xff\x65\xfb\x3f\x14\xb2\xae\xc8\xdb\x85\x63\xdf\xa3\xe0\x20\xb1\x9e\xe1\x6e\x3f\x9a\x27\x1b\xfc\xe8\xed\xa4\x24\x28\x2b\x7d\x67\x5b\xec\x42\xd2\x92\x35\xf6\x88\xb4\xc5\x30\xc2\xa1\x6c\xdd\x13\x99\x60\xa3\xcd\x2c\x4e\x46\x10\xd0\x08\x18\x0e\xba\x70\xaa\x11\xb8\xfc\xb1\x57\x4c\xb7\x4b\x14\x0c\x49\x8b\xd4\xae\xf1\x3c\xf2\x92\xb6\x03\xc6\xdc\x2b\x1e\xfd\x1f\x01\x05\x8d\x03\x7e\x58\xf7\xe8\xf8\x08\x2c\x68\x1b\xf2\xc7\xbf\x0b\xeb\x9f\x35\x9a\xa0\x40\x56\x5a\xd5\xd9\xb6\x13\xd1\x33\xe0\xd3\x11\x67\x34\x13\xac\x42\xce\xff\xcc\x5c\x7b\x53\x87\xe3\xe3\xc0\x5f\x1b\x3e\x0c\x17\x71\x3f\x14\x35\xec\x07\x33\x72\x2f\xf3\xb8\x92\x5d\x54\x82\x8e\x04\x7f\xa9\x1b\x70\xac\x7b\xf4\x7c\x04\x16\x34\x0d\xf9\x63\xdf\xa3\xe0\x20\xb1\xa0\x6f\xcb\x1e\xfd\x54\x82\x7f\xba\x6f\xff\xff\x91\x7a\x45\x05\x8b\x92\x57\x42\x92\x98\x31\x8e\x03\x79\x46\x32\x5a\x75\x71\x92\x90\x2f\x42\xd5\x4e\x75\x6f\xb0\xc6\x2f\x9c\x29\xbb\x0f\x5c\xbe\x5c\x9a\xbb\x23\x6e\x15\x8f\x7e\x8f\x80\x82\xc6\x81\xbf\x2c\x7b\xf4\x7c\x04\x16\x34\x0d\xf9\x6b\xb8\xfc\x6b\x55\x45\xa3\xa7\xb5\x52\x38\x06\xf2\x40\x60\xfd\x2a\x40\xcd\x2b\x02\xd6\xc7\xc3\x03\x0a\x85\xfc\x3e\xdb\xd0\x4f\x9f\x47\xc2\x54\x51\x15\x09\xc1\x51\xb0\x10\x9f\x4e\xd7\x06\xfc\xb1\xef\xd1\xf0\x10\x58\xd0\x37\xe5\x8f\x7e\x8f\x80\x82\xc6\x81\xbf\x2c\x7b\xf4\x41\x85\x78\x4b\xf9\xa1\x1d\xec\x97\x49\x66\xa1\x23\x1e\x68\xf7\x7e\x68\x88\xfd\xbd\x84\xc4\xff\x43\x16\x05\x7a\xca\x20\x2d\x77\x2d\x2a\xa2\xbd\x74\xae\x9a\xcd\x38\x0e\x04\x4a\x8a\xd2\xd6\x5c\x8b\xd4\x94\xed\xf2\xc6\x3d\xfa\x3e\x02\x0b\x1a\x06\xfc\xb1\xef\xd1\xf0\x10\x58\xd0\x37\xe5\x8f\x7e\x8f\x81\xe5\xd5\xb8\x3d\xa4\x16\xc0\xee\x0b\x5f\x45\x3e\xeb\xfe\x68\x01\x95\xe9\x2b\x00\xfe\x35\x12\xd9\x22\x8c\x4f\x10\x44\xb3\x29\x0b\x49\x03\x95\xa0\x46\x86\xa9\x47\x79\x2e\x1d\xbf\x2c\x7b\xf4\x7c\x04\x16\x34\x0d\xf9\x63\xdf\xa3\xe0\x20\xb1\xa0\x6f\xcb\x1e\xfd\x1f\x2e\xc3\xd3\x40\x24\xda\x05\xc9\x40\x26\x3c\xd3\x8a\x6a\x07\x88\x85\xf4\x81\xf4\x25\x30\x3d\x09\x92\x5d\xca\x81\x9a\x0e\xea\xfc\x9d\xd9\xb6\xf1\x46\x23\x57\xf4\x20\xac\x41\x0e\x8b\xa8\xe8\x5e\xea\x9c\x50\xca\x77\xbc\xf4\x7c\x04\x16\x34\x0d\xf9\x63\xdf\xa3\xe0\x20\xb1\xa0\x6f\xcb\x1e\xfd\x1f\x01\x05\x8d\x29\x35\x55\x82\x75\x80\xbe\xab\xb5\x3f\x34\xe4\x36\xb4\x2e\x04\x93\x6c\x38\x93\x31\x69\x68\xe3\x27\x17\x79\x9b\x41\xfe\x73\x0b\x59\x31\x12\x51\xd1\x4f\xfe\x40\x82\x8e\x60\x81\x02\x2f\x23\xee\x1d\x8d\xd0\x92\x6c\xea\xb4\x77\xc2\xf5\x9d\xc5\x77\xe7\xe7\xb8\x1b\xb4\xa3\xdd\x91\xb7\x0a\xc7\xbf\x47\xc0\x41\x63\x40\xdf\x96\x3d\xfa\x3e\x02\x0b\x1a\x06\xfc\xb1\xf0\x06\x35\x99\xe2\x6e\xdd\x1b\xd0\xce\xf4\x3e\x1b\x13\x98\x5e\xdc\xb0\xf4\xf6\x99\x0d\xde\xd0\x48\xce\x78\x6a\x8b\x82\xdb\xe6\x71\xf9\xfb\x27\x29\x69\xea\x8e\x97\x3c\xae\x07\x3f\x09\xd3\x1c\xb0\xe4\x33\xd1\x91\xe7\x96\x80\x18\x49\x59\x4d\xd8\x17\x64\xeb\x82\x4e\xfd\x86\x09\xff\xd7\xb4\x87\x6f\xa3\x9a\xfa\xfb\x93\xe9\x82\xa9\x2e\xdf\x96\x3d\xfa\x3e\x02\x0b\x1a\x06\xfc\xb1\xef\xd1\xf0\x10\x58\xd0\x37\xe5\x8f\x7e\x8f\x98\x44\x08\x8b\xd2\x2b\x9a\x40\x5c\xcb\x6f\x0f\x65\xa1\xbc\x81\xd2\xc9\x8d\xb7\x79\xae\x60\x7d\xb0\xc3\xf3\xcf\xa4\x94\xaa\x55\x29\x45\x65\x58\xd5\xaf\x62\xf6\xf3\x50\x6f\x3e\xf1\x7d\x83\x91\x74\x03\x69\xe1\xc4\x3e\x4c\x1f\xc1\x7f\xcb\xd5\x6a\xd3\xd9\x4c\x49\x7e\x96\xff\xe9\xfe\xb2\x8f\x5c\xd4\xdb\x52\x83\x08\x31\x32\x38\x0f\xeb\x15\x07\x8f\xcf\xc1\x75\x1b\x61\xdc\xe2\xa9\x12\x16\x36\xeb\x06\xf9\x7f\x84\x22\x8d\xf8\x24\xa2\x43\x5c\x34\x5a\x88\x8a\xad\x5b\x1d\x1f\x7a\x2e\x82\x76\xf3\xa0\x2a\xe3\xcb\xb5\xe6\xd5\xd9\x1b\x70\xac\x7b\xf4\x7c\x04\x16\x34\x0d\xf9\x63\xdf\xa3\xe0\x20\xb1\xa0\xb3\x1e\x90\x34\xaf\xcf\x20\xd3\x2a\x0a\x50\x14\x1c\xec\x1a\x67\xe7\xac\x6d\x1f\x17\x95\x2d\x2a\x3f\x93\x12\xb7\x5d\x2c\x9b\x72\x3d\xc5\xf4\x06\xf8\xf6\xc3\xa5\x41\xf1\x7c\xba\xb7\x87\xc0\xfb\x19\x0f\x7c\xcd\x0f\x37\x5c\xf9\xa6\x04\x95\x07\xcc\x70\xae\x62\x23\x3b\x91\x55\x41\x70\x08\x04\x38\xba\xc7\x4e\x23\x2c\xb2\x45\x7d\x71\xc5\x61\xe5\x45\xce\xa8\xe4\x1a\x2d\xe0\xe3\x27\x17\xe8\x85\xa1\x94\xc4\xa7\x1e\x47\xb2\xa5\x30\xdc\x62\x35\x70\x6d\xe5\xcf\xd3\xc9\xdc\xfe\xb7\x36\xae\xc8\xdb\x85\x63\xdf\xa3\xe0\x20\xb1\xa0\x6f\xcb\x1e\xfd\x1f\x01\x05\x8d\x03\x7e\x77\x28\xa3\xf9\x21\xe7\xe2\x7e\x2b\x24\x9c\xe7\x7a\x24\xae\x88\xc4\xab\x8c\xcc\x96\x46\xab\x40\xf6\xad\x61\x91\x58\xd0\xce\xff\x17\x1d\xfd\x0b\x4e\x60\xf4\xcf\xf9\xd7\xb4\x4f\xd2\x84\x78\x71\xff\x49\x57\E")); + +rtpe_req('delete', 'delete', { }); + + + + +($sock_a, $sock_b) = new_call([qw(198.51.100.12 4004)], [qw(198.51.100.12 4006)]); + +($cid, $ft, $port_a, undef, $port_b) = create('playback VP9', { + medias => [ + { + type => 'audio', + codecs => ['opus'], + }, + { + type => 'video', + codecs => ['VP9'], + }, + ], + 'rtcp-mux' => 'require', + }, < $ft }, < $ft, file => 'test.mkv' }); + +@ret1 = rcv($sock_a, $port_a, rtpm(96 | 0x80, -1, -1, -1, "\x6c\x07\xfd\x87\x3d\x83\x1a\xeb\x3c\x3b\x30\x6a\x80\x1e\x4e\x43\x69\x76\xe9\x57\x59\x6a\x30\xb6\xd6\xeb\xc8\x0b\x00\x40")); + +@ret1 = rcv($sock_b, $port_b, rtpmre(96, -1, -1, -1, "\x88(..)\Q\x82\x49\x83\x42\x00\x4f\xf0\x2c\xf6\x08\x38\x24\x1c\x18\x5c\x18\x02\x34\x50\x66\xcb\x7e\x6f\xf9\x3f\xbc\x37\xfe\x3f\xe4\x7f\xfb\x7c\x8c\x1f\x96\x7d\x07\xd3\x79\xc7\x7b\xc3\x7b\x9f\xed\x1f\x5f\xe1\xbd\x1f\xb8\x7e\xd9\xb9\x3f\x17\xd9\x7e\x83\x8c\x9f\x76\xbf\xe7\xbf\xe3\x7e\xd9\xff\x1b\xfc\xef\xc1\xf8\x7f\xdd\xf4\xbe\xed\x7b\xb5\xfa\x7f\xe6\x3e\x27\xc2\x1d\xdb\xff\x29\xf9\xfe\x8f\xc8\xfd\x8c\x22\x71\xf3\x95\x7b\x4d\xcb\xe6\x37\xd9\xbd\xbf\x3d\x5f\xde\xfc\x3e\xa3\xf0\xfe\x4f\x66\xe2\xbe\xbb\xf3\xfa\xd7\xbd\xf8\x1f\x03\xba\xf8\xaf\x1e\xff\x44\x7b\xdf\x8d\xa8\x1a\x1f\xc0\x50\xdd\x2f\xfc\x91\x3c\x2a\xab\x9a\x91\xf5\xbf\xd8\xfc\x80\x00\x00\x00\x00\x8c\x6d\x11\xff\xd0\x95\x0a\x1d\xd7\x55\xa0\xfa\x5d\x0c\xff\x76\x8d\xc6\x1b\xec\x00\x55\x13\xee\x3f\xff\xe6\xd0\x31\xd6\x95\xae\x68\xa6\x31\x86\x4e\x50\x8a\xf5\xab\x58\x7e\xc3\xe4\xb5\x79\x14\x03\x1a\xa5\x38\xb7\x58\xc5\xcb\xb2\xac\x1f\x3c\xe7\x9d\x09\x3d\xdc\x1c\xcf\xf3\x23\x69\x71\x82\xd6\x77\x7a\x38\x49\x0a\x4c\x44\x76\x51\xcc\x39\x87\x31\x01\x2e\xc3\xe7\x9c\xf3\xa1\x27\xbb\x83\x99\xfe\x64\x6d\x2e\x30\x5a\xce\xef\x47\x09\x21\x49\x88\x8e\xca\x39\x87\x30\xe6\x20\x25\xd8\x7c\xf3\x9e\x74\x24\xf7\x70\x73\x3f\xcc\x8d\xa5\xc5\xc9\x1d\x05\x64\x8c\xf1\x8d\x9f\x00\x00\x00\x1b\xf5\x6d\x11\xff\xd0\x95\x0a\x1d\xd7\x55\xa0\xfa\x5d\x0c\xff\x76\x8d\xc6\x1b\xec\x00\x55\x13\xee\x3f\xff\xe6\xd0\x31\xd6\x95\xae\x68\xa6\x31\x86\x4e\x50\x8a\xf5\xab\x58\x7e\xc3\xe4\xb5\x79\x4f\x49\x14\xfe\x20\x2d\xf0\x3f\xa9\xbe\x0e\x06\x4e\xf1\x56\x6b\x11\x43\xa1\x87\x8c\x6a\xdf\x98\x06\x9b\x77\x4b\x03\x5c\x70\x80\x05\x4b\xa7\x06\x83\x6a\xdd\x82\x4c\xe3\x83\xe9\x93\x2d\x7c\x65\xf5\xf2\x81\x0a\x4c\x73\x37\x6d\x95\x87\x56\x70\x26\x06\xdc\xae\x67\xab\x82\xed\x63\x34\xe7\x05\x52\xda\xc4\x61\x21\xfa\xab\xdd\x16\x05\x86\x4b\xfc\x98\x94\x68\xc3\x5b\x0b\x7d\x1f\x5e\x40\x5b\x18\xf2\x0e\xf3\x81\xdc\xbe\x93\x53\x50\xf7\xc3\x08\xa5\xef\x23\xe9\x73\x6a\x8c\xe0\x0d\xf1\x5f\xb4\xf7\xcf\x18\xbe\xb2\x0c\x3b\xb6\x38\x0a\xd9\xcd\x67\xd4\xb0\xab\x17\xc4\x27\xdb\x07\x4d\xaa\x74\x5f\x9b\xaa\x29\x40\xb5\x66\xb1\x33\x68\x06\xc0\xda\xbc\x61\x04\x8d\xde\x82\x9a\x7f\x82\x4a\x63\x15\x8a\xaf\x41\xb3\x96\x2e\x2c\xc6\x3e\xe2\xee\x35\xf3\xdd\x0c\x6d\x90\x12\x0e\xd3\x74\xbb\x64\xcc\xcd\x02\x6f\x24\x58\xd1\x85\xdf\xe9\xcb\x33\xb2\x91\x9b\xaf\x54\x7e\x5d\x31\xd7\xae\xfa\x90\x2a\xbe\xad\x63\x1d\x2f\xa1\xab\xca\x54\x7a\xac\x1d\x34\x46\x6b\x81\x6f\xac\x8f\x38\xc0\x94\x4f\x03\x28\x5b\xa4\xee\x4e\x6a\x46\x65\x87\xba\xa0\x01\xed\x8d\x3a\xc2\x21\x4e\x83\xa3\xe6\x06\x3b\x49\x6b\x27\xb3\x2d\x63\x6b\xc7\xdc\xec\x59\x22\x3e\x8d\x2e\x3c\xac\x7b\x4b\x1c\xc5\x17\x93\x44\x20\x3c\xb0\x3e\x9f\x65\x7d\xb3\xe2\x88\x22\x75\x32\xb3\x15\x41\x03\x21\x2a\xd8\x11\x86\x33\x2f\x6b\x35\x04\x91\xc9\xf2\xf7\x4a\x12\x20\xff\x90\x23\x42\xcc\xd9\x2d\x4e\x69\x08\x6f\xfa\x19\xc9\xf3\x92\xf2\xd9\xe7\xf3\xad\x7a\x68\x80\x53\x97\x72\x71\x2c\xf1\x61\x73\xf3\x77\x64\x31\xec\x31\x1d\x14\x5c\x54\xc6\x6f\x3f\x0f\xd1\xb8\xd0\x85\xbc\xcd\x14\xd5\xdb\x02\x52\xb7\x56\x4a\x1b\xb3\xd3\xd0\xd5\xd4\xba\xa3\xf2\xe9\x8e\xbd\x77\xd4\x4a\x00\x08\xec\xe0\x94\x99\x24\xa1\x41\xa6\x46\xdb\xd7\xc4\x66\x4e\xed\x18\x9f\xb7\x4c\x11\x88\xd1\xcd\x7b\x26\x28\xe9\x6d\x09\x55\xec\x20\x12\x4e\x0a\x2e\xb2\x73\xe8\x92\x0c\xee\x55\xef\xdf\x2d\xc4\x59\x98\x88\x69\xd9\xec\x86\xc5\x4e\xcd\xd4\x88\x0f\x16\x89\xc2\xc7\x00\x91\x8d\x91\x13\x40\x68\x00\x79\x9b\x87\xb5\xd3\x8f\xe2\x10\x49\xa0\xd7\x06\x05\x91\x2f\xaf\xb1\x92\xd9\x07\x60\xeb\x19\xc9\xf2\x38\xeb\xfd\x38\xf9\xc1\xf1\xa2\x71\x53\x33\xf3\xf8\xf4\x92\xdc\x6d\x80\x32\xb6\x8a\x06\x85\xf4\xa7\xa0\xa5\x8b\x14\xad\x0a\x5c\x85\x99\x54\x2b\xc6\xa6\xc2\x3d\x00\xc4\x37\x25\xf4\xfc\xd0\x21\xb8\x7d\x3d\x66\x7a\x03\x76\xcb\xff\x46\x36\xdd\xf4\x02\x34\xfa\x31\x40\x54\x90\x3e\xe5\x8e\xb1\xeb\x8d\xed\x7b\x3e\xc0\xb3\x3d\xbb\x2f\xb7\x4b\xd3\x6c\x00\x2d\x9f\x45\x5d\x1a\x26\x48\xf7\xed\x45\x98\x2d\xd1\x14\x47\x36\x7d\x81\x00\x58\x72\x68\x00\xb5\x84\x6e\xd9\xbb\x8d\x57\xf6\x49\x8b\xeb\x8c\x8e\xdd\x8b\x0a\xc4\x9a\xeb\xd5\x5a\x01\xd6\x87\xfc\xbc\xbf\x37\x81\x33\x0a\x46\x41\x4a\x52\xb0\x5c\x79\xbf\x3d\x02\xba\x63\x31\x8b\x26\xa5\x5c\xf2\x23\x74\x7e\x1e\x33\x83\x12\x2b\xc1\x25\x76\x54\x57\x1f\xe7\xe0\xc8\x2e\x75\x92\xe7\xfa\x0b\xd5\x28\x1e\x47\x39\xf3\xa2\x9e\x90\x92\xd7\xa2\x68\xee\x8e\x63\x47\xa5\x5d\x1a\x65\x01\xe1\x65\xa0\xfe\x4d\x02\x59\xbf\x25\x1e\x64\x61\xb4\x06\x0c\x7f\x4a\xfe\x63\x2f\x42\x2d\xa4\x90\xdc\x89\x66\xa3\x1c\x60\x7a\xea\x2e\x0e\x58\xf1\xd8\x8c\x40\xc8\xbc\x09\x4e\x2d\xbe\x41\x20\x40\x93\xfd\xb4\xd0\x43\xa8\x24\xdd\x69\x85\xc3\xcd\x16\x26\x5a\x4c\xc6\xd3\x13\x18\x2b\xd2\x41\x48\x84\xbb\xca\x73\x98\x71\x17\xaf\x6b\xaf\xef\x1d\xa1\xca\x0b\x68\x7a\x4a\x78\x7b\xd7\x4a\x1f\x68\x34\x6e\x93\x2e\x31\x2c\xb4\xef\x97\x6e\x8c\xbb\x31\xb4\x65\x8d\x9e\xda\x60\x33\x7e\x21\x21\x71\xa9\x9f\x19\x33\x63\xfd\x4c\x96\xef\x95\xf4\x96\xe2\xcd\xe4\xf0\x5d\x8d\xe9\x16\x1c\xb7\xe2\x63\xeb\x51\E")); + +rtpe_req('delete', 'delete', { }); + + + + +new_call; + +offer('audio-only offer', { codec => { transcode => ['VP9'] } }, < { + transcode => ['VP8', 'VP9'], + } }, < { + transcode => ['VP9//////w=640;h=480;cpu-used=1;threads=1'], + set => ['VP8//////w=640;h=480;cpu-used=1;threads=1'], + } }, <