If I use MPEG4VideoStreamDiscreteFramer instead of MPEG4VideoStreamFramer then the error is removed.<br>But if we connect it through VLC player or Quick Time then NO VIDEO. However if we use OpenRTSP to receive stream then it works fine. Can any body explain what is lacking? <br>
<br><div class="gmail_quote">On Fri, Jun 19, 2009 at 2:04 AM, Muhammad Bilal <span dir="ltr"><<a href="mailto:m.bilal.latif@gmail.com">m.bilal.latif@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello!<br>I'm trying to stream xVideo decoded video frames. I've written my own Video source file derived from FramedSource and I'm using MPEG4VideoStreamFramer and MPEG4ESVideoRTPSink. Unfortunately when the client connects to the server then following error is displayed. Help would be highly appreciated.<br>
<br>MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 000001F5<br>MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set!<br>MPEG4VideoStreamParser::parseVideoObjectPlane(): 32-bits are not enough to get "vop_time_increment"!<br>
<br>My doGetNextFrame() code is as follows: -<br><br>void CVideoFileSource::doGetNextFrame()<br>{<br> //set the file pointer to appropriate place<br> static int fileIndex = 0;<br> fseek(m_pFile,fileIndex,SEEK_SET);<br>
<br> //read a chunk of data from file<br> int bytesRead = 0;<br> unsigned char *buff_in = new unsigned char [BUFFERSIZE];<br> bytesRead = fread(buff_in,sizeof(unsigned char),BUFFERSIZE,m_pFile);<br> <br> //calculate the frame size<br>
unsigned char* buff_out = new unsigned char [outputBuffSize];<br> int frameSize = m_xVidDecoder.decode_stream(buff_in,BUFFERSIZE,buff_out,outputBuffSize);<br> delete buff_out;<br> <br> //continue only if data read is greater than equal to frame size<br>
if(bytesRead >= frameSize)<br> {<br> if (frameSize <= fMaxSize) {<br> fFrameSize = frameSize;<br> fNumTruncatedBytes = 0;<br> } <br> else {<br> fFrameSize = fMaxSize;<br>
fNumTruncatedBytes = frameSize - fMaxSize;<br> }<br> memmove(fTo, buff_in, fFrameSize);<br><br> <br> fileIndex = fileIndex + frameSize;<br> fDurationInMicroseconds = 40000;<br>
gettimeofday(&fPresentationTime,NULL);<br> afterGetting(this);<br> }<br> delete buff_in;<br>}<br clear="all"><font color="#888888"><br>-- <br>Muhammad Bilal Latif<br><br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Muhammad Bilal Latif<br><br>