[Live-devel] ProxyServerMediaSession Questions

Subhankar Saha Subhankar_Saha at mindtree.com
Mon Apr 22 02:04:56 PDT 2013


Hello,

I sincerely apologize if the following questions have been asked before here. If these have been asked and answered, I will be very grateful if someone can point me to appropriate discussion thread(s).

We are trying to build a system that acts like multi-channel encoder - it accepts RTSP streams from a number of camera, and, streams out the same to another network for viewing. The ProxyServerMediaSession class meets our requirement appropriately, and we have written our own application looking at the example code given.

This is how we instantiate the server, when we start our software or when a camera is added:

static ProxyServerMediaSession* sms [MAX_STREAMS];

    for (sidx = 0; sidx < MAX_STREAMS; sidx ++)
    {
        ...

        /* Get Stream Name */
        sprintf (streamName, "Stream-%d", (sidx+1));

        /* Create Server Media Session */
        sms[sidx] = ProxyServerMediaSession::createNew
                    (
                        *env,
                        rtspServer,
                        streamer_url[sidx],
                        streamName
                    );

        /* Add Server Media Session to RTSP Server */
        rtspServer->addServerMediaSession (sms[sidx]);

        ...
    }

Now, when we need to close down the Server, this is what we do:

    for (sidx = 0; sidx < MAX_STREAMS; sidx ++)
    {
        ...

        /* Clean up */
        rtspServer->deleteServerMediaSession (sms[sidx]);

        ...
    }


Question#1: When we close our server, we do not see the RTCP BYE being sent to the downstream clients viewing the streams from the server. Is this an issue with 'deleteServerMediaSession'? Or, should we be calling something else, or, do more here?

It appears the system waits for the clients to timeout and close the connections themselves. And when client closes the connection, after waiting an amount of time wanting data to come, some cleanups are triggered on the server side. But ideally, we would like to implement a closure method in which client connections are duly closed on user action on the server (server shutdown or camera deletion).

Question#2: We have a requirement to make the Server a multicast UDP server. From looking at the code, it appears ProxyServerMediaSession makes use of OnDemandServerMediaSubsession ... which is unicast. Is there any plan to support multicasting? If no, could someone guide us on steps needed to get multicast supported?

Thank you very much in advance.

Best regards,
Subhankar.


________________________________

http://www.mindtree.com/email/disclaimer.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20130422/600cf752/attachment-0001.html>


More information about the live-devel mailing list