Skip to content
Snippets Groups Projects
postprocess.c 37.1 KiB
Newer Older
  • Learn to ignore specific revisions
  •                 c->nonBQPTable[i] = QP_store[i] & 0x3F;
                }
            } else {
                int i,j;
                for(i=0; i<mbHeight; i++) {
                    for(j=0; j<absQPStride; j++) {
                        c->nonBQPTable[i*absQPStride+j] = QP_store[i*QPStride+j] & 0x3F;
    
        av_log(c, AV_LOG_DEBUG, "using npp filters 0x%X/0x%X\n",
               mode->lumMode, mode->chromMode);
    
        postProcess(src[0], srcStride[0], dst[0], dstStride[0],
    
                    width, height, QP_store, QPStride, 0, mode, c);
    
    
        if (!(src[1] && src[2] && dst[1] && dst[2]))
            return;
    
    
        width  = (width )>>c->hChromaSubSample;
        height = (height)>>c->vChromaSubSample;
    
        if(mode->chromMode){
            postProcess(src[1], srcStride[1], dst[1], dstStride[1],
                        width, height, QP_store, QPStride, 1, mode, c);
            postProcess(src[2], srcStride[2], dst[2], dstStride[2],
                        width, height, QP_store, QPStride, 2, mode, c);
        }
        else if(srcStride[1] == dstStride[1] && srcStride[2] == dstStride[2]){
            linecpy(dst[1], src[1], height, srcStride[1]);
            linecpy(dst[2], src[2], height, srcStride[2]);
        }else{
            int y;
            for(y=0; y<height; y++){
                memcpy(&(dst[1][y*dstStride[1]]), &(src[1][y*srcStride[1]]), width);
                memcpy(&(dst[2][y*dstStride[2]]), &(src[2][y*srcStride[2]]), width);