You're right but resetting it before the while loop would work. What I dislike about increasing the initial timeout is that it could happen that the first request (Stop) takes like 20 seconds and then you only have 10 seconds left for the remaining calls to SetAVTransportURI, Play and repeated GetTransportInfo. Using one big timeout may cause random failures in one of those WaitOnEvent() calls depening on the timing.