小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

yuv422與yuv420轉(zhuǎn)換成RGB來顯示

 海漩渦 2016-06-22
const int w = m_dwWidth, h = m_dwHeight;
        BYTE * const p = (BYTE *)ddsd.lpSurface;
        if (p == NULL) {
            m_MonDDrawList[i].pddsBackBuffer->Unlock(NULL);
            continue;
        }
         DDPIXELFORMAT ddpf = ddsd.ddpfPixelFormat;
        const int stride = ddsd.lPitch;
        
        //char *s = new char[2048*1536*5];
        //char peric[1024] = {0};
        //sprintf(peric,"pY:%u\n", (const char*)pFrame->pY);
        //OutputDebugString(peric);
#if 0
        /* yuv420 轉(zhuǎn)RGB */
        int j = 0;
        int stride_uv;
        int c, d, e;
        unsigned char* cur;
        BYTE *line = (BYTE *)ddsd.lpSurface;
        int width = m_dwWidth, height = m_dwHeight, t_width;
        unsigned char* y = pFrame->pY;
        unsigned char* u = pFrame->pU;
        unsigned char* v = pFrame->pV;

        stride_uv = (width+1)>>1;

        for( j = 0 ; j < height ; j++ ){
            cur = line;
            for( i = 0 ; i < width ; i++ ){
                c = y[j*width+i] - 16;
                d = u[j*stride_uv+(i>>1)] - 128;
                e = v[j*stride_uv+(i>>1)] - 128;

                (*cur) = clip(( 298 * c           + 409 * e + 128) >> 8);cur++;
                (*cur) = clip(( 298 * c - 100 * d - 208 * e + 128) >> 8);cur++;
                (*cur) = clip(( 298 * c + 516 * d           + 128) >> 8);cur+=2;
            }
            line += t_width<<2;
        }
#else

        /* yuv422 轉(zhuǎn)RGB */
        int j = 0;
        for(j = 0;j < h;j ++)
        {
            //memcpy(s + j * stride,(char*)pFrame->pY + j * w, w);
            memcpy(p + j * stride,(char*)pFrame->pY + j * w, w);
            //memmove(p + j * stride,(char*)pFrame->pY + j * w, w);
        }        


        for(j = 0;j < h/2;j++)
        {
            //memcpy(s + stride * h + j * stride / 2,  (char*)pFrame->pV + j * w / 2, w / 2);    
            memcpy(p + stride * h + j * stride / 2,  (char*)pFrame->pV + j * w / 2, w / 2);    
            //memmove(p + stride * h + j * stride / 2,  (char*)pFrame->pV + j * w / 2, w / 2);
        }

        for(j = 0;j < h/2;j ++)
        {            
            //memcpy(s + stride * h + stride * h / 4 + j* stride / 2, (char*)pFrame->pU + j * w / 2, w / 2);
            memcpy(p + stride * h + stride * h / 4 + j* stride / 2, (char*)pFrame->pU + j * w / 2, w / 2);
            //memmove(p + stride * h + stride * h / 4 + j* stride / 2, (char*)pFrame->pU + j * w / 2, w / 2);
        }
#endif




===================================================================



//m_pYUV2RGBFun(pFrame->pY, pFrame->uYStride, pFrame->pU, pFrame->pV, pFrame->uUVStride,
        //    (UCHAR *)ddsd.lpSurface, pFrame->uWidth, pFrame->uHeight, ddsd.lPitch);

        const int w = m_dwWidth, h = m_dwHeight;
        BYTE * p = (BYTE *)ddsd.lpSurface;
        if (p == NULL) {
            m_MonDDrawList[i].pddsBackBuffer->Unlock(NULL);
            continue;
        }
         DDPIXELFORMAT ddpf = ddsd.ddpfPixelFormat;
        const int stride = ddsd.lPitch;
        int j = 0;

        if(pFrame->uReserved == 1)
        {//  yuv422
            for(j = 0;j < h*w*2;j ++)
            {
                *p++=*pFrame->pU++;
                *p++=*pFrame->pY++;
                *p++=*pFrame->pV++;
                *p++=*pFrame->pY++;
            }   
        }

        else
        {
            // yuv420
            for(j = 0;j < h;j ++)
            {
                memcpy(p + j * stride,(char*)pFrame->pY + j * w, w);
            }       
   
   
            for(j = 0;j < h/2;j++)
            {
               memcpy(p + stride * h + j * stride / 2,    (char*)pFrame->pV + j * w / 2, w / 2);       
            }
   
            for(j = 0;j < h/2;j ++)
            {           
                memcpy(p + stride * h + stride * h / 4 + j* stride / 2, (char*)pFrame->pU + j * w / 2, w / 2);   
            }
        }
       
   

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約