srcP=vidCache->getImage(inframe-2); srcN=vidCache->getImage(inframe+2);
if(_lastRemoved==inframe-1) { data->duplicate(rebuild); if(_param->show&&inframe) { sprintf(txt," Telecined 2"); drawString(data,2,4,txt); }  return 1; }  data->duplicate(rebuild);  srcP=vidCache->getImage(inframe-1);
uint8_t vidFieldUnblend::getFrameNumberNoAlloc (uint32_t inframe,                                uint32_t * len,                                ADMImage * data, uint32_t * flags){		ADMImage *srcP,*srcN,*src,*final;        float distMerged, distN,distP,distM;        char txt[255];        if(inframe<2 || inframe>inframe>_info.nb_frames-3)        {                data->duplicate(vidCache->getImage(inframe));                vidCache->unlockAll();                return 1;        }        srcP=vidCache->getImage(inframe-2);        srcN=vidCache->getImage(inframe+2);        src=vidCache->getImage(inframe);//        merge(srcP,srcN,_uncompressed);        distMerged=computeDiff2(srcP,srcN,src);        final=src;                distMerged/=_info.width*_info.height;        distMerged*=100;        if(distMerged>_param->threshold)        {                // which is closer N or P ?                if(computeDiff(srcN,src)>computeDiff(srcP,src))                        final=srcP;                     else                        final=srcN;        }        if(_param->show)        {                sprintf(txt," M %02.1f",distMerged);                drawString(final,2,2,txt);                if(final!=src)                {                sprintf(txt," Replaced");                drawString(final,2,6,txt);                }        }                 data->duplicate(final);        vidCache->unlockAll();	return 1;}