I am using live555 to stream several network cameras. For that I generate one RTSP-Server and for every camera a subsession on this server with a new URL. To signal the TaskScheduler, that there is a new frame for a stream, I use a EventTriggerID. Every stream has his own EventTriggerID. Now I got the problem, that the EventTriggerID is generated by a bitmask (0x80000000), and the line

"m_EventTriggerId = envir().taskScheduler().createEventTrigger(deliverFrame0);"

generates only 32 EventTriggerID´s, so that I have a maximum of 32 stream receivers. Now my question: Is it possible to solve that problem without generating more RTSP-Server with different TaskScheduler on different ports?

Sorry for the long delay in responding to this. (I've been traveling for the past two months, and am way behind on email.)

Note that the implementation of 'event triggers' that we provide (for the "BasicTaskScheduler" class) is just one possible implementation. You can - if you wish - provide your own implementation, by
        1/ Defining a subclass of "BasicTaskScheduler", and
        2/ Reimplementing the virtual functions
virtual EventTriggerId createEventTrigger(TaskFunc* eventHandlerProc);
                virtual void deleteEventTrigger(EventTriggerId eventTriggerId);
virtual void triggerEvent(EventTriggerId eventTriggerId, void* clientData = NULL);

Note that "EventTriggerId" must remain a "u_int32_t", so you won't be able to change that. So you won't be able to continue to use it as a 'bit mask', if you want to support more than 32 triggers. But you can implement event triggers any way you choose.
--

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to