[Live-devel] simulate RTP packet loss
Andy Stevens
stevens at electricalscience.com
Fri Sep 7 10:02:40 PDT 2012
>> I would like to simulate packet loss of RTP packets on the network,
>> and I would like to use Live555 to do this. In fact, there already
>> is some code in MultiFramedRTPSink (in the
>> MultiFramedRTPSink::sendPacketIfNecessary() function) which is
>> contained in a "TEST_LOSS" macro, and is hardcoded to simulate 10%
>> loss:
>>
>> #ifdef TEST_LOSS
>> if ((our_random()%10) != 0) // simulate 10% packet loss
>> ##### #endif
>>
>> I would like to do some more sophisticated testing (e.g. change the
>> packet loss to 5% or 25%). What is the "right" way to do this?
>
> Normally I don't advise modifying the supplied code. However,
> because you just want to simulate packet loss for testing (i.e., I
> presume you don't plan on building a product that loses packets ,
> you might as well just modify the (#ifdef'd out) code that's already
> there.
>
> E.g., if you want to simulate N% packet loss (where N is an integer
> in the range [0,100], then you could change the "if" condition above
> to if ((our_random()%100 >= N) // simulate N% packet loss
Thanks Ross. But actually, I DO want to build it into the product.
Because the product is portable, I want to be able to turn on the packet
loss feature in the field, and for multiple installations. I also want
to things like rearrange the packets so that they arrive in the wrong
order, so I can be sure that they are being reordered properly.
But I just wanted to be sure that there wasn't any C++ trick that I
hadn't thought of that was preventing me from subclassing this properly
so that I can overload the private functions. I guess that I am hacking
the library more than the typical user. Also, C++ is not my best
language (I'm more of a C and Java guy).
--Andy Stevens
More information about the live-devel
mailing list