[Live-devel] my performance benchmark of livemedia library, not satisfactory

Matt Schuckmann matt at schuckmannacres.com
Thu Mar 12 12:02:22 PDT 2009


I'm highly suspicious of running live555 in multiple threads even if you 
do follow the FAQ.
The FAQ basically suggests that you can run 2 independent copies of 
Live555 in separate threads and those 2 copies can *NOT* interact except 
via global variables. I don't know for sure but I don't think that is 
not what Liu is after.

Furthermore I'd be very suspicious of even doing what is suggested in in 
the FAQ.
I know of at least one place in the code where things could go very wrong:
The RTPInterface.cpp code uses 2 static hash tables when using RTP over 
TCP. Should you run 2 separate threads of execution of Live555 in the 
same process both threads would use the same copies of these static hash 
tables and it would be very easy for them both to try to modify them at 
the same time or one read while the other is writing and cause those 
hash tables to be in an inconsistent state and probably cause a crash.

I don't know what other little bombs like this are out there waiting to 
be discovered.

Matt S.



More information about the live-devel mailing list