diff options
Diffstat (limited to 'test/test_rtp.cc')
-rw-r--r-- | test/test_rtp.cc | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/test/test_rtp.cc b/test/test_rtp.cc new file mode 100644 index 0000000..b3ef80d --- /dev/null +++ b/test/test_rtp.cc @@ -0,0 +1,112 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set et sw=2 ts=2: */ +/*************************************************************************** + * test_rtp.cc + * + * Mon Sep 2 14:02:16 CEST 2013 + * Copyright 2013 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of lrtp. + * + * lrtp is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * lrtp is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with lrtp; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "../src/rtp.h" + +#include <stdio.h> + +void dump(RTP &rtp, const char *title) +{ + char buf[16 * 1024]; + + unsigned char *p = (unsigned char *)buf; + size_t s = rtp.packet(buf, sizeof(buf)); + + printf("%12s: ", title); + for(int i = 0; i < s; i++) { + if(i % 8 == 0) printf(" "); + printf("%02x ", *p++); + } + printf("\n"); +} + +int main() +{ + RTP rtp; + dump(rtp, "Clean"); + + rtp.setMarker(true); + dump(rtp, "mark"); + + char payload[] = { 0xff, 0xff, 0xff }; + rtp.setPayload(payload, sizeof(payload)); + dump(rtp, "Payload[6*f]"); + + rtp.setPadding(5); + dump(rtp, "Padding(5)"); + + rtp.setPadding(0); + dump(rtp, "Padding(0)"); + + rtp.setPadding(3); + dump(rtp, "Padding(3)"); + + rtp.setMarker(true); + dump(rtp, "mark"); + + rtp.setPayloadType(1); + dump(rtp, "pt(1)"); + + rtp.setPayloadType(0x7f); + dump(rtp, "pt(7f)"); + + rtp.setPayloadType(2); + dump(rtp, "pt(2)"); + + rtp.addCSrc(1); + dump(rtp, "CSrc[1]"); + + rtp.removeCSrc(1); + dump(rtp, "CSrc[-]"); + + rtp.addCSrc(2); + rtp.addCSrc(4); + dump(rtp, "CSrc[2,4]"); + + rtp.removeCSrc(2); + dump(rtp, "CSrc[2]"); + + rtp.setSeq(0x0102); + dump(rtp, "seq"); + + rtp.setTimestamp(0x03040506); + dump(rtp, "ts"); + + rtp.setSSrc(0x0708090a); + dump(rtp, "ssrc"); + + char buf[MAX_RTP_PACKET_SIZE]; + size_t sz = rtp.packet(buf, sizeof(buf)); + + RTP rtp2; + rtp2.fromPacket(buf, sz); + + dump(rtp2, "fromPacket"); + + return 0; +} + |