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