/** \fn getFrame \brief Get a processed frame */ bool lavDeint::getNextFrame(uint32_t *fn,ADMImage *image) { // since we do nothing, just get the output of previous filter if(false==previousFilter->getNextFrame(fn,src)) { ADM_warning("rotate : Cannot get frame\n"); return false; } // const uint8_t *iBuff[3]; uint8_t *oBuff[3]; int strideIn[3],strideOut[3]; uint32_t stride[3]; image->GetWritePlanes(oBuff); src->GetReadPlanes((uint8_t **)iBuff); image->GetPitches(stride); for(int i=0;i<3;i++) strideOut[i]=stride[i]; src->GetPitches(stride); for(int i=0;i<3;i++) strideIn[i]=stride[i]; int type; if(src->flags&AVI_KEY_FRAME) type=1; else if(src->flags & AVI_B_FRAME) type=3; else type=2; pp_postprocess( iBuff, strideIn, oBuff, strideOut, info.width, info.height, NULL, 0, ppmode, ppcontext, type); // I ? image->copyInfo(src); return true; }
/** \fn getFrame \brief Get a processed frame */ bool swScaleResizeFilter::getNextFrame(uint32_t *fn,ADMImage *image) { // since we do nothing, just get the output of previous filter if(false==previousFilter->getNextFrame(fn,original)) { ADM_warning("swResize : Cannot get frame\n"); return false; } uint8_t *src[3]; uint8_t *dst[3]; uint32_t ssrc[3]; uint32_t ddst[3]; original->GetReadPlanes(src); image->GetWritePlanes(dst); original->GetPitches(ssrc); image->GetPitches(ddst); resizer->convertPlanes(ssrc,ddst,src,dst); image->copyInfo(original); // Fixme change A/R ? return true; }