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"><br>-- <br>Muhammad Bilal Latif<br><br>