/** \fn getNextFrame */ bool Msharpen::getNextFrame(uint32_t *fn,ADMImage *image) { ADMImage *src,*blur,*dst; src=vidCache->getImage(nextFrame); if(!src) return false; // EOF blur=blurrImg; dst=image; dst->Pts=src->Pts; for (int i=0;i<3;i++) { blur_plane(src, blur, i); detect_edges(blur, dst, i); if (_param.highq == true) detect_edges_HiQ(blur, dst, i); if (!_param.mask) apply_filter(src, blur, dst, i); } *fn=nextFrame; nextFrame++; vidCache->unlockAll(); return true; }
/** \fn getNextFrame */ bool Msharpen::getNextFrame(uint32_t *fn,ADMImage *image) { ADMImage *src,*blur,*dst; /* PVideoFrame src = child->GetFrame(n, env); PVideoFrame blur = env->NewVideoFrame(vi); PVideoFrame dst = env->NewVideoFrame(vi); */ unsigned char *blurp; unsigned char *dstp; dst=image; src=vidCache->getImage(nextFrame); if(!src) return false; // EOF blur=blurrImg; dst->Pts=src->Pts; { for (int i=0;i<3;i++) { blurp=blur->GetReadPtr((ADM_PLANE)i); blur_plane(src, blur, blurp ,i); dstp=dst->GetWritePtr((ADM_PLANE)i); detect_edges(blur, dst, dstp, i); if (_param.highq == true) detect_edges_HiQ(blur, dst, dstp, i); if (!_param.mask) apply_filter(src, blur, dst, dstp, i); } } *fn=nextFrame; nextFrame++; vidCache->unlockAll(); return true; }