graphicscomposition/openwfcompositionengine/common/src/owfimage.c
branchNewGraphicsArchitecture
changeset 35 3aa07f06a4b7
parent 34 76efc8f9f7b4
child 39 a4b63488e0b0
equal deleted inserted replaced
34:76efc8f9f7b4 35:3aa07f06a4b7
   368                     srcPtr ++;
   368                     srcPtr ++;
   369                     count--;
   369                     count--;
   370                 }
   370                 }
   371                 break;
   371                 break;
   372             }
   372             }
   373     
   373             case OWF_IMAGE_UYVY:
       
   374             {
       
   375                 OWFuint8* srcPtr = (OWFuint8*) srcLinePtr;
       
   376                 OWFint y,u,v,r,g,b,x;
       
   377                 for (x = 0; x < count; x++)
       
   378                 {
       
   379                     u = srcPtr[0] - 128;
       
   380                     v = srcPtr[2] - 128;
       
   381                     y = srcPtr[3] - 16;
       
   382                     
       
   383                     r = ((298 * y + 409 * u) / 256);
       
   384                     g = ((298 * y - 100 * v - 208 * u) / 256);
       
   385                     b = ((298 * y + 516 * v) / 256);
       
   386                     
       
   387                     CLIP(r);
       
   388                     CLIP(g);
       
   389                     CLIP(b);
       
   390                     
       
   391                     dstPtr->color.alpha = 255;
       
   392                     dstPtr->color.red = r;
       
   393                     dstPtr->color.green = g;
       
   394                     dstPtr->color.blue = b;
       
   395                     dstPtr++;
       
   396                     
       
   397                     y = srcPtr[1] - 16;
       
   398                     r = ((298 * y + 409 * u) / 256);
       
   399                     g = ((298 * y - 100 * v - 208 * u) / 256);
       
   400                     b = ((298 * y + 516 * v) / 256);
       
   401                     
       
   402                     CLIP(r);
       
   403                     CLIP(g);
       
   404                     CLIP(b);
       
   405                     
       
   406                     dstPtr->color.alpha = 255;
       
   407                     dstPtr->color.red = r;
       
   408                     dstPtr->color.green = g;
       
   409                     dstPtr->color.blue = b;
       
   410                     dstPtr++;                  
       
   411                     srcPtr += 4;                                      
       
   412                 }
       
   413                 break;
       
   414             }
       
   415                 
   374             default:
   416             default:
   375             {
   417             {
   376                 return OWF_FALSE; /* source format not supported */
   418                 return OWF_FALSE; /* source format not supported */
   377             }
   419             }
   378         }
   420         }
   545                 memcpy(dstPtr, srcPtr, src->stride);
   587                 memcpy(dstPtr, srcPtr, src->stride);
   546                 srcPtr = (OWFpixel*)((OWFuint8*)srcPtr + src->stride);
   588                 srcPtr = (OWFpixel*)((OWFuint8*)srcPtr + src->stride);
   547 #endif
   589 #endif
   548                 break;
   590                 break;
   549             }
   591             }
   550     
   592             case OWF_IMAGE_UYVY:
       
   593             {
       
   594                 OWFuint8* srcPtr = (OWFuint8*) srcLinePtr;
       
   595                 OWFint y,u,v,r,g,b,x;
       
   596                 for (x = 0; x < count; x++)
       
   597                 {
       
   598                     u = srcPtr[0] - 128;
       
   599                     v = srcPtr[2] - 128;
       
   600                     y = srcPtr[3] - 16;
       
   601                     
       
   602                     r = ((298 * y + 409 * u) / 256);
       
   603                     g = ((298 * y - 100 * v - 208 * u) / 256);
       
   604                     b = ((298 * y + 516 * v) / 256);
       
   605                     
       
   606                     CLIP(r);
       
   607                     CLIP(g);
       
   608                     CLIP(b);
       
   609                     
       
   610                     dstPtr->color.alpha = 255;
       
   611                     dstPtr->color.red = r;
       
   612                     dstPtr->color.green = g;
       
   613                     dstPtr->color.blue = b;
       
   614                     dstPtr++;
       
   615                     
       
   616                     y = srcPtr[1] - 16;
       
   617                     r = ((298 * y + 409 * u) / 256);
       
   618                     g = ((298 * y - 100 * v - 208 * u) / 256);
       
   619                     b = ((298 * y + 516 * v) / 256);
       
   620                     
       
   621                     CLIP(r);
       
   622                     CLIP(g);
       
   623                     CLIP(b);
       
   624                     
       
   625                     dstPtr->color.alpha = 255;
       
   626                     dstPtr->color.red = r;
       
   627                     dstPtr->color.green = g;
       
   628                     dstPtr->color.blue = b;
       
   629                     dstPtr++;                  
       
   630                     srcPtr += 4;                                      
       
   631                 }
       
   632                 break;
       
   633             }
       
   634                 
   551             default:
   635             default:
   552             {
   636             {
   553                 return OWF_FALSE; /* destination format not supported */
   637                 return OWF_FALSE; /* destination format not supported */
   554             }
   638             }
   555         }
   639         }
  1795         {
  1879         {
  1796             return 2;
  1880             return 2;
  1797         }
  1881         }
  1798 
  1882 
  1799         case OWF_IMAGE_L8:
  1883         case OWF_IMAGE_L8:
       
  1884         case OWF_IMAGE_UYVY:
  1800         {
  1885         {
  1801             return 1;
  1886             return 1;
  1802         }
  1887         }
  1803 
  1888 
  1804         case OWF_IMAGE_L1:
  1889         case OWF_IMAGE_L1:
  1850             padding = 2;
  1935             padding = 2;
  1851             break;
  1936             break;
  1852         }
  1937         }
  1853 
  1938 
  1854         case OWF_IMAGE_L8:
  1939         case OWF_IMAGE_L8:
       
  1940         case OWF_IMAGE_UYVY:
  1855         {
  1941         {
  1856             padding = 1;
  1942             padding = 1;
  1857             break;
  1943             break;
  1858         }
  1944         }
  1859 
  1945