This directory contains unit tests for the library, as well as samples/examples.
These programs all answer brief usage info with the -h
option. For more information on
what's going on in each, check the source.
tcserver
: A simple live media server for RTMFP, RTMP, and RTWebSocket. Please see its documentation.tcrelay
: A relay/translator/proxy for RTMFP, RTMP, and RTWebSocket. It can also speak a simplified form of RTMP for compatibility with buggy implementations. Video and audio messages will expire after configurable deadlines to help stay live during congestion. Can register withredirector
for load balancing.redirector
: A simple load balancer implementing thehttp://zenomt.com/ns/rtmfp#redirector
protocol. Usable as-is or as an example starting point for more sophisticated applications.tcconn
: An example of usingTCConnection
to connect to an RTMFP server and play a stream.tcpublish
: An example usingTCConnection
to publish an FLV to an RTMFP server.conncheck
: An RTMFP server that performs connectivity checks for clients (characterizes client’s NAT and firewall behavior).echoserver
: A sink and echo server usingFlashCryptoAdapter_OpenSSL
(but not RTMP-over-RTMFP messages or metadata). Attempts to open a return flow for any incoming flow and echo received messages, and otherwise is a message sink. Multithreaded. Demonstrates shutting down on interrupt/terminate signals in aRunLoop
. Can register withredirector
as a RedirectorClient example.rtclient
: Simulate “real-time” video and audio traffic (cadence, packet size, message expiration, prioritization) using FlashCrypto (but not RTMP-over-RTMFP messages or data formats). Use withechoserver
.static-redirector
: A simple statically-configured Redirector for FlashCrypto that redirects any new incoming connection to one or more other addresses.fcclient
: A simple connection maker usingFlashCryptoAdapter_OpenSSL
(but not RTMP-over-RTMFP messages or metadata). Exercises opening to FlashCrypto EPDs with fingerprints, required hostnames, or RTMFP URIs. Exercises HMAC and Session Sequence Number negotiation. Sends a short burst and terminates after 30 seconds. Use withechoserver
.server
: A simple connection sink using PlainCrypto (no encryption) to test basic functionality.testclient
: A simple connection maker using PlainCrypto to test basic functionality.t2
: Another simple connection maker using PlainCrypto that sends as much data as quickly as it can to a sink (likeserver
) for 60 seconds.addrlist.hpp
: Utility functions for parsing IP addresses and port numbers from command-line arguments used by many of the above programs.
These programs are run on make ci
.
tis
: Initially and primarily to exerciseIndexSet
, but also exercisesList
,Timer
, andSelectRunLoop
. Should be decomposed and assertions added to detect failures automatically rather than require human inspection.testperform
: ExercisesPerformer
,Timer
,SelectRunLoop
, and multithreaded synchronization. Also requires human inspection.testchecksums
: Test the Internet Checksum and CRC32 implementations.testlist
: TestList
.testvlu
: Test the Variable Length Unsigned and Option functions.testaddress
: TestAddress
.testamf
: Test AMF0 functions.testtcmsg
: TestTC
(RTMP Flash “TinCan”) metadata and message helper functions.testhex
: Test hex encode/decode functions.testflowsync
: TestFlowSyncManager
.testreorder
: TestReorderBuffer
.testmedia
: Testhttp://zenomt.com/ns/rtmfp#media
Media
helper functions.testuriparse
: Test URI parser.