Hi!<br>I am testing H263+ stream. I modified MediaServer for it.<br>Streaming working, but some time occur errors in stream.<br>I trying play file directly - file correct playing without errors.<br>And I found next: errors occur when switch banks. See StreamParser.cpp <br>
&nbsp;StreamParser::ensureValidBytes1(unsigned numBytesNeeded)<br>I playing with BANK_SIZE and found what with BANK_SIZE 50000<br>occur additional errors<br>[h263 @ 0x88cbeb0]H263 SAC not supported<br>[h263 @ 0x88cbeb0]header damaged<br>
Error while decoding frame!<br>[h263 @ 0x88cbeb0]Error at MB: 0 0<br>[h263 @ 0x88cbeb0]concealing 374 DC, 374 AC, 374 MV errors<br>[h263 @ 0x88cbeb0]H263 SAC not supported<br>[h263 @ 0x88cbeb0]header damaged<br>Error while decoding frame!<br>
[h263 @ 0x88cbeb0]H263 SAC not supported<br>[h263 @ 0x88cbeb0]header damaged<br>Error while decoding frame!<br>[h263 @ 0x88cbeb0]H263 SAC not supported<br>[h263 @ 0x88cbeb0]header damaged<br>Error while decoding frame!<br>
[h263 @ 0x88cbeb0]H263 SAC not supported<br>[h263 @ 0x88cbeb0]header damaged<br>Error while decoding frame!<br>V:&nbsp; 12.8 452/452&nbsp; 1%&nbsp; 0%&nbsp; 0.0% 0 0<br>MPlayer interrupted by signal 11 in module: decode_video<br>But with BANK_SIZE 150000 <br>
some errors missing<br>[h263 @ 0x88cbeb0]H263 SAC not supported<br>[h263 @ 0x88cbeb0]header damaged<br>Error while decoding frame!<br>[h263 @ 0x88cbeb0]H263 SAC not supported<br>[h263 @ 0x88cbeb0]header damaged<br>Error while decoding frame!<br>
[h263 @ 0x88cbeb0]H263 SAC not supported<br>[h263 @ 0x88cbeb0]header damaged<br>Error while decoding frame!<br>I looked function, But this module are correct. <br>I found, what error occur in H263plusVideoStreamParser::parse(u_int64_t &amp; currentDuration)<br>
For correct it, I maked little modifications of function:<br>///////////////////////////////////////////////////////////////////////////////<br>// parse() ,&nbsp; derived from H263Creator of MPEG4IP, h263.c<br>unsigned H263plusVideoStreamParser::parse(u_int64_t &amp; currentDuration)<br>
{<br>...<br>...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //prevTrDifference = trDifference;<br>////////////////////////////<br>&nbsp;&nbsp;&nbsp;&nbsp; // landy: move func here<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setParseState(); // Needed for the parsing process in StreamParser<br>///////////////////////////<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp; } catch (int /*e*/) {<br>#ifdef DEBUG<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, &quot;H263plusVideoStreamParser::parse() EXCEPTION (This is normal behavior - *not* an error)\n&quot;);<br>#endif<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; frameSize=0;<br>&nbsp;&nbsp; }<br>
// landy setParseState(); // Needed for the parsing process in StreamParser<br>&nbsp;&nbsp; return frameSize;<br>}<br>&nbsp;<br>&nbsp;<br>All working now correct, without errors!<br>&nbsp;<br>wbr, Andrey Latin<br>Elphel Team