Not relying on stream state (stopping on image completion) is actually even better ... :)
bool nglImageJPEGCodec::Feed(nglIStream* pIStream) { while(pIStream->Available() && pIStream->GetState() == eStreamReady) { switch(mState) { case jpegReadHeader: if(!ReadHeader(pIStream)) { jpeg_finish_decompress(&mCinfo); jpeg_destroy_decompress(&mCinfo); return false; } mpBuffer = mpImage->GetBuffer() + mLineSize*(mpImage->GetHeight()-1); mState = jpegReadData; /*fallthrough*/ case(jpegReadData): ReadData(); SendData((float)mLine/(float)mpImage->GetHeight()); if(mCinfo.output_scanline >= mCinfo.output_height) { return false; } break; case(jpegError): return false; } } return (pIStream->GetState()==eStreamWait) || (pIStream->GetState()==eStreamReady); } Lo. _______________________________________________ https://mail.gna.org/listinfo/ngl-devel