No problem. Thanks for your answer. 

It was not the problem to reimplement “createEventTrigger”, 
“deleteEventTrigger”, “triggerEvent” and “SingleStep”. I did this first. But 
this didn´t solve my problem. Windows make the trouble :-)

Windows has a limitation of numbers of sockets that can be open by one process. 
This is 64 ( 2 per stream = 32 stream clients ). So I can create millions of 
EventTriggerID´s, it didn´t effect anything…

To solve this I only define FD_SETSIZE to a higher value.

 

Viele Grüße / Best regards 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dipl.-Inf. (FH)
Daniel Fischer
iGuard - Development

IDS Imaging Development Systems GmbH
Dimbacher Strasse 6-8 ▪ D-74182 Obersulm
Handelsregister: Stuttgart HRB 106225
Geschäftsführer: Jürgen Hartmann, Armin Vogt, Torsten Wiesinger
T :        +49 (0)7134 / 961 96-0
F :        +49 (0)7134 / 961 96-99
E :        d.fisc...@ids-imaging.de

Web: www.ids-imaging.com <http://www.ids-imaging.com/>  -  www.iguard.de 
<http://www.iguard.de/> 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 P   Please consider the environment before printing this e-mail

________________________________

Von: live-devel-boun...@ns.live555.com 
[mailto:live-devel-boun...@ns.live555.com] Im Auftrag von Ross Finlayson
Gesendet: Donnerstag, 2. Juni 2011 04:06
An: LIVE555 Streaming Media - development & use
Betreff: Re: [Live-devel] How to bypass streamlimit causes by EventTriggerIDs

 

        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