comparison ps.c @ 11893:5ee87f2c9bc8 libavcodec

Allow PS envelope fixup when ps->num_env_old <= 1. It is already rejected by the "source >= 0 && source != ps->num_env" 0 envelope case and is perfectly legally for the suppressed final envelope case.
author alexc
date Sun, 20 Jun 2010 19:38:08 +0000
parents 72441b6700d4
children 335524dba347
comparison
equal deleted inserted replaced
11892:a0c269879276 11893:5ee87f2c9bc8
233 //Fix up envelopes 233 //Fix up envelopes
234 if (!ps->num_env || ps->border_position[ps->num_env] < numQMFSlots - 1) { 234 if (!ps->num_env || ps->border_position[ps->num_env] < numQMFSlots - 1) {
235 //Create a fake envelope 235 //Create a fake envelope
236 int source = ps->num_env ? ps->num_env - 1 : ps->num_env_old - 1; 236 int source = ps->num_env ? ps->num_env - 1 : ps->num_env_old - 1;
237 if (source >= 0 && source != ps->num_env) { 237 if (source >= 0 && source != ps->num_env) {
238 if (ps->enable_iid && ps->num_env_old > 1) { 238 if (ps->enable_iid) {
239 memcpy(ps->iid_par+ps->num_env, ps->iid_par+source, sizeof(ps->iid_par[0])); 239 memcpy(ps->iid_par+ps->num_env, ps->iid_par+source, sizeof(ps->iid_par[0]));
240 } 240 }
241 if (ps->enable_icc && ps->num_env_old > 1) { 241 if (ps->enable_icc) {
242 memcpy(ps->icc_par+ps->num_env, ps->icc_par+source, sizeof(ps->icc_par[0])); 242 memcpy(ps->icc_par+ps->num_env, ps->icc_par+source, sizeof(ps->icc_par[0]));
243 } 243 }
244 if (ps->enable_ipdopd && ps->num_env_old > 1) { 244 if (ps->enable_ipdopd) {
245 memcpy(ps->ipd_par+ps->num_env, ps->ipd_par+source, sizeof(ps->ipd_par[0])); 245 memcpy(ps->ipd_par+ps->num_env, ps->ipd_par+source, sizeof(ps->ipd_par[0]));
246 memcpy(ps->opd_par+ps->num_env, ps->opd_par+source, sizeof(ps->opd_par[0])); 246 memcpy(ps->opd_par+ps->num_env, ps->opd_par+source, sizeof(ps->opd_par[0]));
247 } 247 }
248 } 248 }
249 ps->num_env++; 249 ps->num_env++;