Changeset 1069
- Timestamp:
- 06/06/09 04:44:12 (9 months ago)
- Files:
-
- trunk/ColorConversions.c (modified) (4 diffs)
- trunk/FFusionCodec.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ColorConversions.c
r1039 r1069 422 422 } 423 423 424 static FASTCALL void Y410toY422(AVFrame *picture, UInt8 *o, int outRB, unsigned width, unsigned height) 425 { 426 UInt8 *yc = picture->data[0], *u = picture->data[1], *v = picture->data[2]; 427 int rY = picture->linesize[0], rU = picture->linesize[1], rV = picture->linesize[2]; 428 int x, y, halfwidth = width / 2; 429 430 for (y = 0; y < height; y++) { 431 for (x = 0; x < halfwidth; x++) { 432 int x2 = x * 2, x4 = x * 4; 433 o[x4] = u[x/2]; 434 o[x4 + 1] = yc[x2]; 435 o[x4 + 2] = v[x/2]; 436 o[x4 + 3] = yc[x2 + 1]; 437 } 438 439 o += outRB; 440 yc += rY; 441 442 if (y % 4 == 3) { 443 u += rU; 444 v += rV; 445 } 446 } 447 } 448 424 449 static void ClearRGB(UInt8 *baseAddr, int rowBytes, unsigned width, unsigned height, int bytesPerPixel) 425 450 { … … 485 510 { 486 511 switch (ffPixFmt) { 512 case PIX_FMT_RGB555LE: 513 case PIX_FMT_RGB555BE: 514 return k16BE555PixelFormat; 515 case PIX_FMT_BGR24: 516 return k24RGBPixelFormat; //XXX try k24BGRPixelFormat 517 case PIX_FMT_RGB24: 518 return k24RGBPixelFormat; 519 case PIX_FMT_RGB32: // XXX not a specific pixel format, need LE & BE like 16-bit 520 return k32ARGBPixelFormat; 521 case PIX_FMT_YUV410P: 522 return k2vuyPixelFormat; 487 523 case PIX_FMT_YUV420P: 488 524 return k2vuyPixelFormat; //disables "fast YUV" path 489 case PIX_FMT_BGR24:490 return k24RGBPixelFormat; //XXX try k24BGRPixelFormat491 case PIX_FMT_RGB32: // XXX not a specific pixel format492 return k32ARGBPixelFormat;493 case PIX_FMT_RGB24:494 return k24RGBPixelFormat;495 525 case PIX_FMT_YUV422P: 496 526 return k2vuyPixelFormat; 497 527 case PIX_FMT_YUVA420P: 498 528 return k4444YpCbCrA8PixelFormat; 499 case PIX_FMT_RGB555LE:500 case PIX_FMT_RGB555BE:501 return k16BE555PixelFormat;502 529 default: 503 530 return 0; // error … … 538 565 funcs->convert = RGB24toRGB24; 539 566 break; 567 case PIX_FMT_RGB555LE: 568 funcs->clear = ClearRGB16; 569 funcs->convert = RGB16LEtoRGB16; 570 break; 571 case PIX_FMT_RGB555BE: 572 funcs->clear = ClearRGB16; 573 funcs->convert = RGB16toRGB16; 574 break; 575 case PIX_FMT_YUV410P: 576 funcs->clear = ClearY422; 577 funcs->convert = Y410toY422; 578 break; 540 579 case PIX_FMT_YUV422P: 541 580 funcs->clear = ClearY422; … … 546 585 funcs->convert = YA420toV408; 547 586 break; 548 case PIX_FMT_RGB555LE:549 funcs->clear = ClearRGB16;550 funcs->convert = RGB16LEtoRGB16;551 break;552 case PIX_FMT_RGB555BE:553 funcs->clear = ClearRGB16;554 funcs->convert = RGB16toRGB16;555 break;556 587 default: 557 588 return paramErr; trunk/FFusionCodec.c
r1065 r1069 713 713 case 'VP6A': 714 714 codecID = CODEC_ID_VP6A; 715 break; 716 717 case 'RT21': 718 codecID = CODEC_ID_INDEO2; 719 break; 720 721 case 'IV31': 722 case 'IV32': 723 case 'iv31': 724 case 'iv32': 725 codecID = CODEC_ID_INDEO3; 715 726 break; 716 727 … … 1524 1535 break; 1525 1536 1526 case 'IV31': // Indeo 31537 case 'IV31': // Indeo 3 1527 1538 case 'IV32': 1528 case 'iv31':1539 case 'iv31': 1529 1540 case 'iv32': 1530 1541 err = GetComponentResource((Component)glob->self, codecInfoResourceType, kIndeo3CodecInfoResID, (Handle *)&tempCodecInfo); 1531 1542 break; 1532 1543 1533 case 'RT21': // Indeo 21544 case 'RT21': // Indeo 2 1534 1545 err = GetComponentResource((Component)glob->self, codecInfoResourceType, kIndeo2CodecInfoResID, (Handle *)&tempCodecInfo); 1535 1546 break;
