comparison lcldec.c @ 9759:5968a9f15535 libavcodec

Correct calculation of compressed input length.
author reimar
date Sun, 31 May 2009 10:01:26 +0000
parents 8ebcc162db3d
children 14b65c693625
comparison
equal deleted inserted replaced
9758:8ebcc162db3d 9759:5968a9f15535
197 if (mthread_outlen != mszh_dlen) { 197 if (mthread_outlen != mszh_dlen) {
198 av_log(avctx, AV_LOG_ERROR, "Mthread1 decoded size differs (%d != %d)\n", 198 av_log(avctx, AV_LOG_ERROR, "Mthread1 decoded size differs (%d != %d)\n",
199 mthread_outlen, mszh_dlen); 199 mthread_outlen, mszh_dlen);
200 return -1; 200 return -1;
201 } 201 }
202 mszh_dlen = mszh_decomp(encoded + 8 + mthread_inlen, len - mthread_inlen, 202 mszh_dlen = mszh_decomp(encoded + 8 + mthread_inlen, len - 8 - mthread_inlen,
203 c->decomp_buf + mthread_outlen, c->decomp_size - mthread_outlen); 203 c->decomp_buf + mthread_outlen, c->decomp_size - mthread_outlen);
204 if (mthread_outlen != mszh_dlen) { 204 if (mthread_outlen != mszh_dlen) {
205 av_log(avctx, AV_LOG_ERROR, "Mthread2 decoded size differs (%d != %d)\n", 205 av_log(avctx, AV_LOG_ERROR, "Mthread2 decoded size differs (%d != %d)\n",
206 mthread_outlen, mszh_dlen); 206 mthread_outlen, mszh_dlen);
207 return -1; 207 return -1;
240 mthread_inlen = FFMIN(mthread_inlen, len - 8); 240 mthread_inlen = FFMIN(mthread_inlen, len - 8);
241 mthread_outlen = *(unsigned int*)(encoded+4); 241 mthread_outlen = *(unsigned int*)(encoded+4);
242 mthread_outlen = FFMIN(mthread_outlen, c->decomp_size); 242 mthread_outlen = FFMIN(mthread_outlen, c->decomp_size);
243 ret = zlib_decomp(avctx, encoded + 8, mthread_inlen, 0, mthread_outlen); 243 ret = zlib_decomp(avctx, encoded + 8, mthread_inlen, 0, mthread_outlen);
244 if (ret < 0) return ret; 244 if (ret < 0) return ret;
245 ret = zlib_decomp(avctx, encoded + 8 + mthread_inlen, len - mthread_inlen, 245 ret = zlib_decomp(avctx, encoded + 8 + mthread_inlen, len - 8 - mthread_inlen,
246 mthread_outlen, mthread_outlen); 246 mthread_outlen, mthread_outlen);
247 if (ret < 0) return ret; 247 if (ret < 0) return ret;
248 } else { 248 } else {
249 int ret = zlib_decomp(avctx, encoded, len, 0, c->decomp_size); 249 int ret = zlib_decomp(avctx, encoded, len, 0, c->decomp_size);
250 if (ret < 0) return ret; 250 if (ret < 0) return ret;