Mercurial > libavcodec.hg
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; |