I read Faq, but it seems that I did not pay attention much. You are right. I modify the code , and it works perfectly . Thanks.
Best Wishes Novalis PS: Here is the modified part: RTSPClient* rtspClient; EventTriggerId stopTrigger; UsageEnvironment* env; char doEventLoopWatchVariable; bool doesDoEventLoopEnded ; void Stop(void *myParameter) { shutdownStream(rtspClient); } void Clear() { std::cout << "Try to delete env and scheduler " << std::endl; TaskScheduler* scheduler = &(env->taskScheduler()); bool canDelete = ( (env->liveMediaPriv == NULL) && (env->groupsockPriv == NULL)); if(canDelete) { std::cout << "now can eble to delete enviroment" << std::endl; } else { std::cout << "can not able to delete enviroment" << std::endl; } env->reclaim(); delete scheduler; } void Start() { // Begin by setting up our usage environment: TaskScheduler* scheduler = BasicTaskScheduler::createNew(); env = BasicUsageEnvironment::createNew(*scheduler); stopTrigger = env->taskScheduler().createEventTrigger(&Stop); char* programName ="Test"; char* rtpsURL = "rtsp://192.168.3.165/video.h264"; rtspClient = openURL(*env, programName,rtpsURL ); rtspClient->sendDescribeCommand(continueAfterDESCRIBE); doEventLoopWatchVariable = 0; doesDoEventLoopEnded = false; // All subsequent activity takes place within the event loop: env->taskScheduler().doEventLoop(&doEventLoopWatchVariable); // does not return doesDoEventLoopEnded = true; } int main(int argc, char** argv) { boost::thread StartClientThread = boost::thread(Start); boost::this_thread::sleep( boost::posix_time::seconds(10) ); env->taskScheduler().triggerEvent(stopTrigger); doEventLoopWatchVariable = 1; while(!doesDoEventLoopEnded) { std::cout << "do event loop does not end " << std::endl; } std::cout << "do event loop ended " << std::endl; std::cout << "now try to cleanup client " << std::endl; Clear(); int endMain; std::cin >> endMain; // Just for not to exit main loop return 0; } _______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel