<br><br><div class="gmail_quote"><br><div><br><br></div>Sir<div>I made my application in which i am getting data from a camera to a frame grabber board in which converts the .ts data and give us h264 frames and for the board i have allocated the buffers and i am taking data from the buffers and giving to live media libraries for streaming as shown below:-</div>
<div><br></div><div><div>#define TRANSPORT_PACKET_SIZE 188</div><div>#define TRANSPORT_PACKETS_PER_NETWORK_PACKET 7</div></div><div>int main()</div><div>{</div><div><div>TaskScheduler* scheduler = BasicTaskScheduler::createNew();</div>
<div> env = BasicUsageEnvironment::createNew(*scheduler);</div><div><br></div><div> // Create 'groupsocks' for RTP and RTCP:</div><div> char const* destinationAddressStr = "192.168.15.196";</div><div>
struct in_addr destinationAddress;</div><div> destinationAddress.s_addr = our_inet_addr(destinationAddressStr);</div><div> //destinationAddress.s_addr = chooseRandomIPv4SSMAddress(*env);</div><div><br></div><div> // Note: This is a multicast address. </div>
<div> const unsigned short rtpPortNum = 18888;</div><div> const unsigned short rtcpPortNum = rtpPortNum+1;</div><div> const unsigned char ttl = 7; //255;</div><div><br></div><div> const Port rtpPort(rtpPortNum);</div>
<div> const Port rtcpPort(rtcpPortNum);</div><div><br></div><div> Groupsock rtpGroupsock(*env, destinationAddress, rtpPort, ttl);</div><div> rtpGroupsock.multicastSendOnly(); // we're a SSM source</div><div> Groupsock rtcpGroupsock(*env, destinationAddress, rtcpPort, ttl);</div>
<div> rtcpGroupsock.multicastSendOnly(); // we're a SSM source</div><div><br></div><div> // Create an appropriate 'RTP sink' from the RTP 'groupsock':</div><div> videoSink =</div><div> SimpleRTPSink::createNew(*env, &rtpGroupsock, 33, 90000, "video", "MP2T",</div>
<div><span style="white-space:pre-wrap"> </span> 1, True, False /*no 'M' bit*/);</div><div> </div><div> // Create (and start) a 'RTCP instance' for this RTP sink:</div><div> const unsigned estimatedSessionBandwidth = 5000; // in kbps; for RTCP b/w share</div>
<div> const unsigned maxCNAMElen = 100;</div><div> unsigned char CNAME[maxCNAMElen+1];</div><div> gethostname((char*)CNAME, maxCNAMElen);</div><div> CNAME[maxCNAMElen] = '\0'; // just in case</div></div><div>
<div>
<b>void play() {</b></div><div><b> // Open the input file as a 'byte-stream file source':</b></div><div><b><br></b></div><div><b> fi_params.nFICardFrameSize = TRANSPORT_PACKETS_PER_NETWORK_PACKET * TRANSPORT_PACKET_SIZE;</b></div>
<div><b> fi_params.p_lm_lock_fn = lm_lock_fn;</b></div><div><b> fi_params.p_lm_unlock_fn = lm_unlock_fn;</b></div><div><b><br></b></div><div><b> DeviceParameters temp;</b></div><div><b><br></b></div><div><b><span style="white-space:pre-wrap"> </span>fileSource = DeviceSourceFICard::createNew(*env, fi_params, temp);</b></div>
<div><b> if (fileSource == NULL) {</b></div><div><b> *env << "Unable to open file \"" << inputFileName</b></div><div><b> << "\" as a byte-stream file source\n";</b></div>
<div><b> exit(1);</b></div><div><b> }</b></div><div><b> FramedSource* videoES = fileSource;</b></div><div><b> </b></div><div><b> // Create a framer for the Video Elementary Stream:</b></div><div><b> videoSource = MPEG1or2VideoStreamDiscreteFramer::createNew(*env, videoES);</b></div>
<div><b> </b></div><div><b> // Finally, start playing:</b></div><div><b> *env << "Beginning to read from file...\n";</b></div><div><b> videoSink->startPlaying(*videoSource, afterPlaying, videoSink);</b></div>
<div><b> </b></div><div><b>}</b></div></div><div><br></div><div>and on the server side i used your<b> "test On Demand RTSP Server.cpp" exe </b>and the code under section "<b> // A MPEG-2 Transport Stream, coming from a live UDP (raw-UDP or RTP/UDP) source:"</b></div>
<div><br></div><div>Sir now where should i make changes at streamer side or server side?</div><div> <br><br><div class="gmail_quote">On Mon, Jun 25, 2012 at 1:34 PM, Ketan Gholap <span dir="ltr"><<a href="mailto:ketangholap1990@gmail.com" target="_blank">ketangholap1990@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><font><font face="comic sans ms,sans-serif"><b><br></b></font></font><br>
<div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Ross Finlayson</b> <span dir="ltr"><<a href="mailto:finlayson@live555.com" target="_blank">finlayson@live555.com</a>></span><br>
Date: Sun, Jun 24, 2012 at 2:26 PM<br>Subject: Re: [Live-devel] Missing sync byte!<br>To: LIVE555 Streaming Media - development & use <<a href="mailto:live-devel@ns.live555.com" target="_blank">live-devel@ns.live555.com</a>><br>
<br><br><div style="word-wrap:break-word"><div>You haven't said anything about how your application is constructed, and what it's supposed to do, but this error message is quite specific:<div><br><blockquote type="cite">
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (6).</blockquote><div><br></div></div>This means that whatever object you're feeding your "MultiFramedRTPSource" (subclass) object into has a (much) too small buffer size.</div>
<font color="#888888"><br><br><div><span style="border-collapse:separate;font-size:medium;font-family:Helvetica"><span style="border-collapse:separate">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/" target="_blank">http://www.live555.com/</a></span></span></div>
<br></font></div><br>_______________________________________________<br>live-devel mailing list<br><a href="mailto:live-devel@lists.live555.com" target="_blank">live-devel@lists.live555.com</a><br><a href="http://lists.live555.com/mailman/listinfo/live-devel" target="_blank">http://lists.live555.com/mailman/listinfo/live-devel</a><br>
<br></div></blockquote></div></div><br>
</div><br>