1344 } |
1103 } |
1345 /* odd width */ |
1104 /* odd width */ |
1346 if (width % 2 != 0) { |
1105 if (width % 2 != 0) { |
1347 *line1++ = *lum1++; |
1106 *line1++ = *lum1++; |
1348 *line1++ = *cb1++; |
1107 *line1++ = *cb1++; |
1349 } |
|
1350 } |
|
1351 } |
|
1352 |
|
1353 static void |
|
1354 nv12_to_nv21 (AVPicture * dst, const AVPicture * src, int width, int height) |
|
1355 { |
|
1356 const uint8_t *s_c_ptr; |
|
1357 uint8_t *d_c_ptr; |
|
1358 int w, c_wrap; |
|
1359 |
|
1360 memcpy (dst->data[0], src->data[0], src->linesize[0] * height); |
|
1361 |
|
1362 s_c_ptr = src->data[1]; |
|
1363 d_c_ptr = dst->data[1]; |
|
1364 c_wrap = src->linesize[1] - ((width + 1) & ~0x01); |
|
1365 |
|
1366 for (; height >= 2; height -= 2) { |
|
1367 for (w = width; w >= 2; w -= 2) { |
|
1368 d_c_ptr[0] = s_c_ptr[1]; |
|
1369 d_c_ptr[1] = s_c_ptr[0]; |
|
1370 s_c_ptr += 2; |
|
1371 d_c_ptr += 2; |
|
1372 } |
|
1373 |
|
1374 /* handle odd width */ |
|
1375 if (w) { |
|
1376 d_c_ptr[0] = s_c_ptr[1]; |
|
1377 d_c_ptr[1] = s_c_ptr[0]; |
|
1378 s_c_ptr += 2; |
|
1379 d_c_ptr += 2; |
|
1380 } |
|
1381 s_c_ptr += c_wrap; |
|
1382 d_c_ptr += c_wrap; |
|
1383 } |
|
1384 |
|
1385 /* handle odd height */ |
|
1386 if (height) { |
|
1387 for (w = width; w >= 2; w -= 2) { |
|
1388 d_c_ptr[0] = s_c_ptr[1]; |
|
1389 d_c_ptr[1] = s_c_ptr[0]; |
|
1390 s_c_ptr += 2; |
|
1391 d_c_ptr += 2; |
|
1392 } |
|
1393 |
|
1394 /* handle odd width */ |
|
1395 if (w) { |
|
1396 d_c_ptr[0] = s_c_ptr[1]; |
|
1397 d_c_ptr[1] = s_c_ptr[0]; |
|
1398 s_c_ptr += 2; |
|
1399 d_c_ptr += 2; |
|
1400 } |
|
1401 } |
|
1402 } |
|
1403 |
|
1404 static void |
|
1405 nv12_to_yuv444p (AVPicture * dst, const AVPicture * src, int width, int height) |
|
1406 { |
|
1407 int w, h; |
|
1408 uint8_t *dst_lum1, *dst_lum2, *dst_line = dst->data[0]; |
|
1409 uint8_t *dst_cb1, *dst_cb2, *dst_cb_line = dst->data[1]; |
|
1410 uint8_t *dst_cr1, *dst_cr2, *dst_cr_line = dst->data[2]; |
|
1411 uint8_t *lum1, *lum2, *src_lum_line = src->data[0]; |
|
1412 uint8_t *src_c1, *src_c_line = src->data[1]; |
|
1413 uint8_t cb, cr; |
|
1414 |
|
1415 for (h = height / 2; h--;) { |
|
1416 dst_lum1 = dst_line; |
|
1417 dst_lum2 = dst_line + dst->linesize[0]; |
|
1418 |
|
1419 dst_cb1 = dst_cb_line; |
|
1420 dst_cb2 = dst_cb_line + dst->linesize[1]; |
|
1421 dst_cr1 = dst_cr_line; |
|
1422 dst_cr2 = dst_cr_line + dst->linesize[2]; |
|
1423 |
|
1424 lum1 = src_lum_line; |
|
1425 lum2 = src_lum_line + src->linesize[0]; |
|
1426 |
|
1427 src_c1 = src_c_line; |
|
1428 |
|
1429 for (w = width / 2; w--;) { |
|
1430 cb = *src_c1++; |
|
1431 cr = *src_c1++; |
|
1432 *dst_lum1++ = *lum1++; |
|
1433 *dst_lum2++ = *lum2++; |
|
1434 *dst_cb1++ = *dst_cb2++ = cb; |
|
1435 *dst_cr1++ = *dst_cr2++ = cr; |
|
1436 *dst_lum1++ = *lum1++; |
|
1437 *dst_lum2++ = *lum2++; |
|
1438 *dst_cb1++ = *dst_cb2++ = cb; |
|
1439 *dst_cr1++ = *dst_cr2++ = cr; |
|
1440 } |
|
1441 /* odd width */ |
|
1442 if (width % 2 != 0) { |
|
1443 cb = *src_c1++; |
|
1444 cr = *src_c1++; |
|
1445 *dst_lum1++ = *lum1++; |
|
1446 *dst_lum2++ = *lum2++; |
|
1447 *dst_cb1++ = *dst_cb2++ = *src_c1++; |
|
1448 *dst_cr1++ = *dst_cr2++ = *src_c1++; |
|
1449 } |
|
1450 |
|
1451 dst_line += dst->linesize[0] * 2; |
|
1452 dst_cb_line += dst->linesize[1] * 2; |
|
1453 dst_cr_line += dst->linesize[2] * 2; |
|
1454 src_lum_line += src->linesize[0] * 2; |
|
1455 src_c_line += src->linesize[1]; |
|
1456 } |
|
1457 |
|
1458 /* odd height */ |
|
1459 if (height % 2 != 0) { |
|
1460 dst_lum1 = dst_line; |
|
1461 lum1 = src_lum_line; |
|
1462 src_c1 = src_c_line; |
|
1463 dst_cb1 = dst_cb_line; |
|
1464 dst_cr1 = dst_cr_line; |
|
1465 |
|
1466 for (w = width / 2; w--;) { |
|
1467 cb = *src_c1++; |
|
1468 cr = *src_c1++; |
|
1469 *dst_lum1++ = *lum1++; |
|
1470 *dst_cb1++ = cb; |
|
1471 *dst_cr1++ = cr; |
|
1472 *dst_lum1++ = *lum1++; |
|
1473 *dst_cb1++ = cb; |
|
1474 *dst_cr1++ = cr; |
|
1475 } |
|
1476 /* odd width */ |
|
1477 if (width % 2 != 0) { |
|
1478 cb = *src_c1++; |
|
1479 cr = *src_c1++; |
|
1480 *dst_lum1++ = *lum1++; |
|
1481 *dst_cb1++ = cb; |
|
1482 *dst_cr1++ = cr; |
|
1483 } |
|
1484 } |
|
1485 } |
|
1486 |
|
1487 #define nv21_to_nv12 nv12_to_nv21 |
|
1488 |
|
1489 static void |
|
1490 nv21_to_yuv444p (AVPicture * dst, const AVPicture * src, int width, int height) |
|
1491 { |
|
1492 int w, h; |
|
1493 uint8_t *dst_lum1, *dst_lum2, *dst_line = dst->data[0]; |
|
1494 uint8_t *dst_cb1, *dst_cb2, *dst_cb_line = dst->data[1]; |
|
1495 uint8_t *dst_cr1, *dst_cr2, *dst_cr_line = dst->data[2]; |
|
1496 uint8_t *lum1, *lum2, *src_lum_line = src->data[0]; |
|
1497 uint8_t *src_c1, *src_c_line = src->data[1]; |
|
1498 uint8_t cb, cr; |
|
1499 |
|
1500 for (h = height / 2; h--;) { |
|
1501 dst_lum1 = dst_line; |
|
1502 dst_lum2 = dst_line + dst->linesize[0]; |
|
1503 |
|
1504 dst_cb1 = dst_cb_line; |
|
1505 dst_cb2 = dst_cb_line + dst->linesize[1]; |
|
1506 dst_cr1 = dst_cr_line; |
|
1507 dst_cr2 = dst_cr_line + dst->linesize[2]; |
|
1508 |
|
1509 lum1 = src_lum_line; |
|
1510 lum2 = src_lum_line + src->linesize[0]; |
|
1511 |
|
1512 src_c1 = src_c_line; |
|
1513 |
|
1514 for (w = width / 2; w--;) { |
|
1515 cr = *src_c1++; |
|
1516 cb = *src_c1++; |
|
1517 *dst_lum1++ = *lum1++; |
|
1518 *dst_lum2++ = *lum2++; |
|
1519 *dst_cb1++ = *dst_cb2++ = cb; |
|
1520 *dst_cr1++ = *dst_cr2++ = cr; |
|
1521 *dst_lum1++ = *lum1++; |
|
1522 *dst_lum2++ = *lum2++; |
|
1523 *dst_cb1++ = *dst_cb2++ = cb; |
|
1524 *dst_cr1++ = *dst_cr2++ = cr; |
|
1525 } |
|
1526 /* odd width */ |
|
1527 if (width % 2 != 0) { |
|
1528 cr = *src_c1++; |
|
1529 cb = *src_c1++; |
|
1530 *dst_lum1++ = *lum1++; |
|
1531 *dst_lum2++ = *lum2++; |
|
1532 *dst_cb1++ = *dst_cb2++ = *src_c1++; |
|
1533 *dst_cr1++ = *dst_cr2++ = *src_c1++; |
|
1534 } |
|
1535 |
|
1536 dst_line += dst->linesize[0] * 2; |
|
1537 dst_cb_line += dst->linesize[1] * 2; |
|
1538 dst_cr_line += dst->linesize[2] * 2; |
|
1539 src_lum_line += src->linesize[0] * 2; |
|
1540 src_c_line += src->linesize[1]; |
|
1541 } |
|
1542 |
|
1543 /* odd height */ |
|
1544 if (height % 2 != 0) { |
|
1545 dst_lum1 = dst_line; |
|
1546 lum1 = src_lum_line; |
|
1547 src_c1 = src_c_line; |
|
1548 |
|
1549 dst_cb1 = dst_cb_line; |
|
1550 dst_cr1 = dst_cr_line; |
|
1551 |
|
1552 for (w = width / 2; w--;) { |
|
1553 cr = *src_c1++; |
|
1554 cb = *src_c1++; |
|
1555 *dst_lum1++ = *lum1++; |
|
1556 *dst_cb1++ = cb; |
|
1557 *dst_cr1++ = cr; |
|
1558 *dst_lum1++ = *lum1++; |
|
1559 *dst_cb1++ = cb; |
|
1560 *dst_cr1++ = cr; |
|
1561 } |
|
1562 /* odd width */ |
|
1563 if (width % 2 != 0) { |
|
1564 cr = *src_c1++; |
|
1565 cb = *src_c1++; |
|
1566 *dst_lum1++ = *lum1++; |
|
1567 *dst_cb1++ = cb; |
|
1568 *dst_cr1++ = cr; |
|
1569 } |
1108 } |
1570 } |
1109 } |
1571 } |
1110 } |
1572 |
1111 |
1573 #define SCALEBITS 10 |
1112 #define SCALEBITS 10 |
2650 {PIX_FMT_YUV420P, PIX_FMT_RGBA32, yuv420p_to_rgba32}, |
2062 {PIX_FMT_YUV420P, PIX_FMT_RGBA32, yuv420p_to_rgba32}, |
2651 {PIX_FMT_YUV420P, PIX_FMT_BGRA32, yuv420p_to_bgra32}, |
2063 {PIX_FMT_YUV420P, PIX_FMT_BGRA32, yuv420p_to_bgra32}, |
2652 {PIX_FMT_YUV420P, PIX_FMT_ARGB32, yuv420p_to_argb32}, |
2064 {PIX_FMT_YUV420P, PIX_FMT_ARGB32, yuv420p_to_argb32}, |
2653 {PIX_FMT_YUV420P, PIX_FMT_ABGR32, yuv420p_to_abgr32}, |
2065 {PIX_FMT_YUV420P, PIX_FMT_ABGR32, yuv420p_to_abgr32}, |
2654 |
2066 |
2655 {PIX_FMT_NV12, PIX_FMT_RGB555, nv12_to_rgb555}, |
|
2656 {PIX_FMT_NV12, PIX_FMT_RGB565, nv12_to_rgb565}, |
|
2657 {PIX_FMT_NV12, PIX_FMT_BGR24, nv12_to_bgr24}, |
|
2658 {PIX_FMT_NV12, PIX_FMT_RGB24, nv12_to_rgb24}, |
|
2659 {PIX_FMT_NV12, PIX_FMT_RGB32, nv12_to_rgb32}, |
|
2660 {PIX_FMT_NV12, PIX_FMT_BGR32, nv12_to_bgr32}, |
|
2661 {PIX_FMT_NV12, PIX_FMT_xRGB32, nv12_to_xrgb32}, |
|
2662 {PIX_FMT_NV12, PIX_FMT_BGRx32, nv12_to_bgrx32}, |
|
2663 {PIX_FMT_NV12, PIX_FMT_RGBA32, nv12_to_rgba32}, |
|
2664 {PIX_FMT_NV12, PIX_FMT_BGRA32, nv12_to_bgra32}, |
|
2665 {PIX_FMT_NV12, PIX_FMT_ARGB32, nv12_to_argb32}, |
|
2666 {PIX_FMT_NV12, PIX_FMT_ABGR32, nv12_to_abgr32}, |
|
2667 {PIX_FMT_NV12, PIX_FMT_NV21, nv12_to_nv21}, |
|
2668 {PIX_FMT_NV12, PIX_FMT_YUV444P, nv12_to_yuv444p}, |
|
2669 |
|
2670 {PIX_FMT_NV21, PIX_FMT_RGB555, nv21_to_rgb555}, |
|
2671 {PIX_FMT_NV21, PIX_FMT_RGB565, nv21_to_rgb565}, |
|
2672 {PIX_FMT_NV21, PIX_FMT_BGR24, nv21_to_bgr24}, |
|
2673 {PIX_FMT_NV21, PIX_FMT_RGB24, nv21_to_rgb24}, |
|
2674 {PIX_FMT_NV21, PIX_FMT_RGB32, nv21_to_rgb32}, |
|
2675 {PIX_FMT_NV21, PIX_FMT_BGR32, nv21_to_bgr32}, |
|
2676 {PIX_FMT_NV21, PIX_FMT_xRGB32, nv21_to_xrgb32}, |
|
2677 {PIX_FMT_NV21, PIX_FMT_BGRx32, nv21_to_bgrx32}, |
|
2678 {PIX_FMT_NV21, PIX_FMT_RGBA32, nv21_to_rgba32}, |
|
2679 {PIX_FMT_NV21, PIX_FMT_BGRA32, nv21_to_bgra32}, |
|
2680 {PIX_FMT_NV21, PIX_FMT_ARGB32, nv21_to_argb32}, |
|
2681 {PIX_FMT_NV21, PIX_FMT_ABGR32, nv21_to_abgr32}, |
|
2682 {PIX_FMT_NV21, PIX_FMT_YUV444P, nv21_to_yuv444p}, |
|
2683 {PIX_FMT_NV21, PIX_FMT_NV12, nv21_to_nv12}, |
|
2684 |
|
2685 {PIX_FMT_YUV422P, PIX_FMT_YUV422, yuv422p_to_yuv422}, |
2067 {PIX_FMT_YUV422P, PIX_FMT_YUV422, yuv422p_to_yuv422}, |
2686 {PIX_FMT_YUV422P, PIX_FMT_UYVY422, yuv422p_to_uyvy422}, |
2068 {PIX_FMT_YUV422P, PIX_FMT_UYVY422, yuv422p_to_uyvy422}, |
2687 {PIX_FMT_YUV422P, PIX_FMT_YVYU422, yuv422p_to_yvyu422}, |
|
2688 |
2069 |
2689 {PIX_FMT_YUV444P, PIX_FMT_RGB24, yuv444p_to_rgb24}, |
2070 {PIX_FMT_YUV444P, PIX_FMT_RGB24, yuv444p_to_rgb24}, |
2690 |
2071 |
2691 {PIX_FMT_YUVJ420P, PIX_FMT_RGB555, yuvj420p_to_rgb555}, |
2072 {PIX_FMT_YUVJ420P, PIX_FMT_RGB555, yuvj420p_to_rgb555}, |
2692 {PIX_FMT_YUVJ420P, PIX_FMT_RGB565, yuvj420p_to_rgb565}, |
2073 {PIX_FMT_YUVJ420P, PIX_FMT_RGB565, yuvj420p_to_rgb565}, |
2706 {PIX_FMT_YUV422, PIX_FMT_YUV420P, yuv422_to_yuv420p}, |
2087 {PIX_FMT_YUV422, PIX_FMT_YUV420P, yuv422_to_yuv420p}, |
2707 {PIX_FMT_YUV422, PIX_FMT_YUV422P, yuv422_to_yuv422p}, |
2088 {PIX_FMT_YUV422, PIX_FMT_YUV422P, yuv422_to_yuv422p}, |
2708 |
2089 |
2709 {PIX_FMT_UYVY422, PIX_FMT_YUV420P, uyvy422_to_yuv420p}, |
2090 {PIX_FMT_UYVY422, PIX_FMT_YUV420P, uyvy422_to_yuv420p}, |
2710 {PIX_FMT_UYVY422, PIX_FMT_YUV422P, uyvy422_to_yuv422p}, |
2091 {PIX_FMT_UYVY422, PIX_FMT_YUV422P, uyvy422_to_yuv422p}, |
2711 {PIX_FMT_UYVY422, PIX_FMT_GRAY8, uyvy422_to_gray}, |
|
2712 |
|
2713 {PIX_FMT_YVYU422, PIX_FMT_YUV420P, yvyu422_to_yuv420p}, |
|
2714 {PIX_FMT_YVYU422, PIX_FMT_YUV422P, yvyu422_to_yuv422p}, |
|
2715 {PIX_FMT_YVYU422, PIX_FMT_GRAY8, yvyu422_to_gray}, |
|
2716 |
2092 |
2717 {PIX_FMT_RGB24, PIX_FMT_YUV420P, rgb24_to_yuv420p}, |
2093 {PIX_FMT_RGB24, PIX_FMT_YUV420P, rgb24_to_yuv420p}, |
2718 {PIX_FMT_RGB24, PIX_FMT_NV12, rgb24_to_nv12}, |
|
2719 {PIX_FMT_RGB24, PIX_FMT_NV21, rgb24_to_nv21}, |
|
2720 {PIX_FMT_RGB24, PIX_FMT_RGB565, rgb24_to_rgb565}, |
2094 {PIX_FMT_RGB24, PIX_FMT_RGB565, rgb24_to_rgb565}, |
2721 {PIX_FMT_RGB24, PIX_FMT_RGB555, rgb24_to_rgb555}, |
2095 {PIX_FMT_RGB24, PIX_FMT_RGB555, rgb24_to_rgb555}, |
2722 {PIX_FMT_RGB24, PIX_FMT_RGB32, rgb24_to_rgb32}, |
2096 {PIX_FMT_RGB24, PIX_FMT_RGB32, rgb24_to_rgb32}, |
2723 {PIX_FMT_RGB24, PIX_FMT_BGR32, rgb24_to_bgr32}, |
2097 {PIX_FMT_RGB24, PIX_FMT_BGR32, rgb24_to_bgr32}, |
2724 {PIX_FMT_RGB24, PIX_FMT_xRGB32, rgb24_to_xrgb32}, |
2098 {PIX_FMT_RGB24, PIX_FMT_xRGB32, rgb24_to_xrgb32}, |
2727 {PIX_FMT_RGB24, PIX_FMT_BGR24, rgb24_to_bgr24}, |
2101 {PIX_FMT_RGB24, PIX_FMT_BGR24, rgb24_to_bgr24}, |
2728 {PIX_FMT_RGB24, PIX_FMT_BGRA32, rgb24_to_bgra32}, |
2102 {PIX_FMT_RGB24, PIX_FMT_BGRA32, rgb24_to_bgra32}, |
2729 {PIX_FMT_RGB24, PIX_FMT_ARGB32, rgb24_to_argb32}, |
2103 {PIX_FMT_RGB24, PIX_FMT_ARGB32, rgb24_to_argb32}, |
2730 {PIX_FMT_RGB24, PIX_FMT_ABGR32, rgb24_to_abgr32}, |
2104 {PIX_FMT_RGB24, PIX_FMT_ABGR32, rgb24_to_abgr32}, |
2731 {PIX_FMT_RGB24, PIX_FMT_GRAY8, rgb24_to_gray}, |
2105 {PIX_FMT_RGB24, PIX_FMT_GRAY8, rgb24_to_gray}, |
2732 {PIX_FMT_RGB24, PIX_FMT_GRAY16_L, rgb24_to_gray16_l}, |
|
2733 {PIX_FMT_RGB24, PIX_FMT_GRAY16_B, rgb24_to_gray16_b}, |
|
2734 {PIX_FMT_RGB24, PIX_FMT_PAL8, rgb24_to_pal8}, |
2106 {PIX_FMT_RGB24, PIX_FMT_PAL8, rgb24_to_pal8}, |
2735 {PIX_FMT_RGB24, PIX_FMT_YUV444P, rgb24_to_yuv444p}, |
2107 {PIX_FMT_RGB24, PIX_FMT_YUV444P, rgb24_to_yuv444p}, |
2736 {PIX_FMT_RGB24, PIX_FMT_YUVJ420P, rgb24_to_yuvj420p}, |
2108 {PIX_FMT_RGB24, PIX_FMT_YUVJ420P, rgb24_to_yuvj420p}, |
2737 {PIX_FMT_RGB24, PIX_FMT_YUVJ444P, rgb24_to_yuvj444p}, |
2109 {PIX_FMT_RGB24, PIX_FMT_YUVJ444P, rgb24_to_yuvj444p}, |
2738 {PIX_FMT_RGB24, PIX_FMT_AYUV4444, rgb24_to_ayuv4444}, |
2110 {PIX_FMT_RGB24, PIX_FMT_AYUV4444, rgb24_to_ayuv4444}, |
2739 {PIX_FMT_RGB24, PIX_FMT_V308, rgb24_to_v308}, |
|
2740 |
2111 |
2741 {PIX_FMT_RGB32, PIX_FMT_RGB24, rgb32_to_rgb24}, |
2112 {PIX_FMT_RGB32, PIX_FMT_RGB24, rgb32_to_rgb24}, |
2742 {PIX_FMT_RGB32, PIX_FMT_RGB555, rgba32_to_rgb555}, |
2113 {PIX_FMT_RGB32, PIX_FMT_RGB555, rgba32_to_rgb555}, |
2743 {PIX_FMT_RGB32, PIX_FMT_PAL8, rgb32_to_pal8}, |
2114 {PIX_FMT_RGB32, PIX_FMT_PAL8, rgb32_to_pal8}, |
2744 {PIX_FMT_RGB32, PIX_FMT_YUV420P, rgb32_to_yuv420p}, |
2115 {PIX_FMT_RGB32, PIX_FMT_YUV420P, rgb32_to_yuv420p}, |
2745 {PIX_FMT_RGB32, PIX_FMT_NV12, rgb32_to_nv12}, |
|
2746 {PIX_FMT_RGB32, PIX_FMT_NV21, rgb32_to_nv21}, |
|
2747 {PIX_FMT_RGB32, PIX_FMT_GRAY8, rgb32_to_gray}, |
2116 {PIX_FMT_RGB32, PIX_FMT_GRAY8, rgb32_to_gray}, |
2748 {PIX_FMT_RGB32, PIX_FMT_GRAY16_L, rgb32_to_gray16_l}, |
|
2749 {PIX_FMT_RGB32, PIX_FMT_GRAY16_B, rgb32_to_gray16_b}, |
|
2750 |
2117 |
2751 {PIX_FMT_xRGB32, PIX_FMT_RGB24, xrgb32_to_rgb24}, |
2118 {PIX_FMT_xRGB32, PIX_FMT_RGB24, xrgb32_to_rgb24}, |
2752 {PIX_FMT_xRGB32, PIX_FMT_PAL8, xrgb32_to_pal8}, |
2119 {PIX_FMT_xRGB32, PIX_FMT_PAL8, xrgb32_to_pal8}, |
2753 {PIX_FMT_xRGB32, PIX_FMT_YUV420P, xrgb32_to_yuv420p}, |
2120 {PIX_FMT_xRGB32, PIX_FMT_YUV420P, xrgb32_to_yuv420p}, |
2754 {PIX_FMT_xRGB32, PIX_FMT_NV12, xrgb32_to_nv12}, |
|
2755 {PIX_FMT_xRGB32, PIX_FMT_NV21, xrgb32_to_nv21}, |
|
2756 {PIX_FMT_xRGB32, PIX_FMT_GRAY8, xrgb32_to_gray}, |
2121 {PIX_FMT_xRGB32, PIX_FMT_GRAY8, xrgb32_to_gray}, |
2757 {PIX_FMT_xRGB32, PIX_FMT_GRAY16_L, xrgb32_to_gray16_l}, |
|
2758 {PIX_FMT_xRGB32, PIX_FMT_GRAY16_B, xrgb32_to_gray16_b}, |
|
2759 |
2122 |
2760 {PIX_FMT_RGBA32, PIX_FMT_BGRA32, rgba32_to_bgra32}, |
2123 {PIX_FMT_RGBA32, PIX_FMT_BGRA32, rgba32_to_bgra32}, |
2761 {PIX_FMT_RGBA32, PIX_FMT_ABGR32, rgba32_to_abgr32}, |
2124 {PIX_FMT_RGBA32, PIX_FMT_ABGR32, rgba32_to_abgr32}, |
2762 {PIX_FMT_RGBA32, PIX_FMT_ARGB32, rgba32_to_argb32}, |
2125 {PIX_FMT_RGBA32, PIX_FMT_ARGB32, rgba32_to_argb32}, |
2763 {PIX_FMT_RGBA32, PIX_FMT_BGR32, rgba32_to_bgr32}, |
2126 {PIX_FMT_RGBA32, PIX_FMT_BGR32, rgba32_to_bgr32}, |
2765 {PIX_FMT_RGBA32, PIX_FMT_ABGR32, rgba32_to_abgr32}, |
2128 {PIX_FMT_RGBA32, PIX_FMT_ABGR32, rgba32_to_abgr32}, |
2766 {PIX_FMT_RGBA32, PIX_FMT_RGB24, rgba32_to_rgb24}, |
2129 {PIX_FMT_RGBA32, PIX_FMT_RGB24, rgba32_to_rgb24}, |
2767 {PIX_FMT_RGBA32, PIX_FMT_RGB555, rgba32_to_rgb555}, |
2130 {PIX_FMT_RGBA32, PIX_FMT_RGB555, rgba32_to_rgb555}, |
2768 {PIX_FMT_RGBA32, PIX_FMT_PAL8, rgba32_to_pal8}, |
2131 {PIX_FMT_RGBA32, PIX_FMT_PAL8, rgba32_to_pal8}, |
2769 {PIX_FMT_RGBA32, PIX_FMT_YUV420P, rgba32_to_yuv420p}, |
2132 {PIX_FMT_RGBA32, PIX_FMT_YUV420P, rgba32_to_yuv420p}, |
2770 {PIX_FMT_RGBA32, PIX_FMT_NV12, rgba32_to_nv12}, |
|
2771 {PIX_FMT_RGBA32, PIX_FMT_NV21, rgba32_to_nv21}, |
|
2772 {PIX_FMT_RGBA32, PIX_FMT_GRAY8, rgba32_to_gray}, |
2133 {PIX_FMT_RGBA32, PIX_FMT_GRAY8, rgba32_to_gray}, |
2773 {PIX_FMT_RGBA32, PIX_FMT_GRAY16_L, rgba32_to_gray16_l}, |
|
2774 {PIX_FMT_RGBA32, PIX_FMT_GRAY16_B, rgba32_to_gray16_b}, |
|
2775 {PIX_FMT_RGBA32, PIX_FMT_AYUV4444, rgba32_to_ayuv4444}, |
2134 {PIX_FMT_RGBA32, PIX_FMT_AYUV4444, rgba32_to_ayuv4444}, |
2776 |
2135 |
2777 {PIX_FMT_BGR24, PIX_FMT_RGB24, bgr24_to_rgb24}, |
2136 {PIX_FMT_BGR24, PIX_FMT_RGB24, bgr24_to_rgb24}, |
2778 {PIX_FMT_BGR24, PIX_FMT_YUV420P, bgr24_to_yuv420p}, |
2137 {PIX_FMT_BGR24, PIX_FMT_YUV420P, bgr24_to_yuv420p}, |
2779 {PIX_FMT_BGR24, PIX_FMT_NV12, bgr24_to_nv12}, |
|
2780 {PIX_FMT_BGR24, PIX_FMT_NV21, bgr24_to_nv21}, |
|
2781 {PIX_FMT_BGR24, PIX_FMT_GRAY8, bgr24_to_gray}, |
2138 {PIX_FMT_BGR24, PIX_FMT_GRAY8, bgr24_to_gray}, |
2782 {PIX_FMT_BGR24, PIX_FMT_GRAY16_L, bgr24_to_gray16_l}, |
|
2783 {PIX_FMT_BGR24, PIX_FMT_GRAY16_B, bgr24_to_gray16_b}, |
|
2784 |
2139 |
2785 {PIX_FMT_BGR32, PIX_FMT_RGB24, bgr32_to_rgb24}, |
2140 {PIX_FMT_BGR32, PIX_FMT_RGB24, bgr32_to_rgb24}, |
2786 {PIX_FMT_BGR32, PIX_FMT_RGBA32, bgr32_to_rgba32}, |
2141 {PIX_FMT_BGR32, PIX_FMT_RGBA32, bgr32_to_rgba32}, |
2787 {PIX_FMT_BGR32, PIX_FMT_YUV420P, bgr32_to_yuv420p}, |
2142 {PIX_FMT_BGR32, PIX_FMT_YUV420P, bgr32_to_yuv420p}, |
2788 {PIX_FMT_BGR32, PIX_FMT_NV12, bgr32_to_nv12}, |
|
2789 {PIX_FMT_BGR32, PIX_FMT_NV21, bgr32_to_nv21}, |
|
2790 {PIX_FMT_BGR32, PIX_FMT_GRAY8, bgr32_to_gray}, |
2143 {PIX_FMT_BGR32, PIX_FMT_GRAY8, bgr32_to_gray}, |
2791 {PIX_FMT_BGR32, PIX_FMT_GRAY16_L, bgr32_to_gray16_l}, |
|
2792 {PIX_FMT_BGR32, PIX_FMT_GRAY16_B, bgr32_to_gray16_b}, |
|
2793 |
2144 |
2794 {PIX_FMT_BGRx32, PIX_FMT_RGB24, bgrx32_to_rgb24}, |
2145 {PIX_FMT_BGRx32, PIX_FMT_RGB24, bgrx32_to_rgb24}, |
2795 {PIX_FMT_BGRx32, PIX_FMT_RGBA32, bgrx32_to_rgba32}, |
2146 {PIX_FMT_BGRx32, PIX_FMT_RGBA32, bgrx32_to_rgba32}, |
2796 {PIX_FMT_BGRx32, PIX_FMT_YUV420P, bgrx32_to_yuv420p}, |
2147 {PIX_FMT_BGRx32, PIX_FMT_YUV420P, bgrx32_to_yuv420p}, |
2797 {PIX_FMT_BGRx32, PIX_FMT_NV12, bgrx32_to_nv12}, |
|
2798 {PIX_FMT_BGRx32, PIX_FMT_NV21, bgrx32_to_nv21}, |
|
2799 {PIX_FMT_BGRx32, PIX_FMT_GRAY8, bgrx32_to_gray}, |
2148 {PIX_FMT_BGRx32, PIX_FMT_GRAY8, bgrx32_to_gray}, |
2800 {PIX_FMT_BGRx32, PIX_FMT_GRAY16_L, bgrx32_to_gray16_l}, |
|
2801 {PIX_FMT_BGRx32, PIX_FMT_GRAY16_B, bgrx32_to_gray16_b}, |
|
2802 |
2149 |
2803 {PIX_FMT_BGRA32, PIX_FMT_RGB24, bgra32_to_rgb24}, |
2150 {PIX_FMT_BGRA32, PIX_FMT_RGB24, bgra32_to_rgb24}, |
2804 {PIX_FMT_BGRA32, PIX_FMT_RGBA32, bgra32_to_rgba32}, |
2151 {PIX_FMT_BGRA32, PIX_FMT_RGBA32, bgra32_to_rgba32}, |
2805 {PIX_FMT_BGRA32, PIX_FMT_YUV420P, bgra32_to_yuv420p}, |
2152 {PIX_FMT_BGRA32, PIX_FMT_YUV420P, bgra32_to_yuv420p}, |
2806 {PIX_FMT_BGRA32, PIX_FMT_NV12, bgra32_to_nv12}, |
|
2807 {PIX_FMT_BGRA32, PIX_FMT_NV21, bgra32_to_nv21}, |
|
2808 {PIX_FMT_BGRA32, PIX_FMT_GRAY8, bgra32_to_gray}, |
2153 {PIX_FMT_BGRA32, PIX_FMT_GRAY8, bgra32_to_gray}, |
2809 {PIX_FMT_BGRA32, PIX_FMT_GRAY16_L, bgra32_to_gray16_l}, |
|
2810 {PIX_FMT_BGRA32, PIX_FMT_GRAY16_B, bgra32_to_gray16_b}, |
|
2811 {PIX_FMT_BGRA32, PIX_FMT_AYUV4444, bgra32_to_ayuv4444}, |
2154 {PIX_FMT_BGRA32, PIX_FMT_AYUV4444, bgra32_to_ayuv4444}, |
2812 |
2155 |
2813 {PIX_FMT_ABGR32, PIX_FMT_RGB24, abgr32_to_rgb24}, |
2156 {PIX_FMT_ABGR32, PIX_FMT_RGB24, abgr32_to_rgb24}, |
2814 {PIX_FMT_ABGR32, PIX_FMT_RGBA32, abgr32_to_rgba32}, |
2157 {PIX_FMT_ABGR32, PIX_FMT_RGBA32, abgr32_to_rgba32}, |
2815 {PIX_FMT_ABGR32, PIX_FMT_YUV420P, abgr32_to_yuv420p}, |
2158 {PIX_FMT_ABGR32, PIX_FMT_YUV420P, abgr32_to_yuv420p}, |
2816 {PIX_FMT_ABGR32, PIX_FMT_NV12, abgr32_to_nv12}, |
|
2817 {PIX_FMT_ABGR32, PIX_FMT_NV21, abgr32_to_nv21}, |
|
2818 {PIX_FMT_ABGR32, PIX_FMT_GRAY8, abgr32_to_gray}, |
2159 {PIX_FMT_ABGR32, PIX_FMT_GRAY8, abgr32_to_gray}, |
2819 {PIX_FMT_ABGR32, PIX_FMT_GRAY16_L, abgr32_to_gray16_l}, |
|
2820 {PIX_FMT_ABGR32, PIX_FMT_GRAY16_B, abgr32_to_gray16_b}, |
|
2821 |
2160 |
2822 {PIX_FMT_ARGB32, PIX_FMT_RGB24, argb32_to_rgb24}, |
2161 {PIX_FMT_ARGB32, PIX_FMT_RGB24, argb32_to_rgb24}, |
2823 {PIX_FMT_ARGB32, PIX_FMT_RGBA32, argb32_to_rgba32}, |
2162 {PIX_FMT_ARGB32, PIX_FMT_RGBA32, argb32_to_rgba32}, |
2824 {PIX_FMT_ARGB32, PIX_FMT_YUV420P, argb32_to_yuv420p}, |
2163 {PIX_FMT_ARGB32, PIX_FMT_YUV420P, argb32_to_yuv420p}, |
2825 {PIX_FMT_ARGB32, PIX_FMT_NV12, argb32_to_nv12}, |
|
2826 {PIX_FMT_ARGB32, PIX_FMT_NV21, argb32_to_nv21}, |
|
2827 {PIX_FMT_ARGB32, PIX_FMT_GRAY8, argb32_to_gray}, |
2164 {PIX_FMT_ARGB32, PIX_FMT_GRAY8, argb32_to_gray}, |
2828 {PIX_FMT_ARGB32, PIX_FMT_GRAY16_L, argb32_to_gray16_l}, |
|
2829 {PIX_FMT_ARGB32, PIX_FMT_GRAY16_B, argb32_to_gray16_b}, |
|
2830 |
2165 |
2831 {PIX_FMT_RGB555, PIX_FMT_RGB24, rgb555_to_rgb24}, |
2166 {PIX_FMT_RGB555, PIX_FMT_RGB24, rgb555_to_rgb24}, |
2832 {PIX_FMT_RGB555, PIX_FMT_RGB32, rgb555_to_rgba32}, |
2167 {PIX_FMT_RGB555, PIX_FMT_RGB32, rgb555_to_rgba32}, |
2833 {PIX_FMT_RGB555, PIX_FMT_RGBA32, rgb555_to_rgba32}, |
2168 {PIX_FMT_RGB555, PIX_FMT_RGBA32, rgb555_to_rgba32}, |
2834 {PIX_FMT_RGB555, PIX_FMT_YUV420P, rgb555_to_yuv420p}, |
2169 {PIX_FMT_RGB555, PIX_FMT_YUV420P, rgb555_to_yuv420p}, |
2835 {PIX_FMT_RGB555, PIX_FMT_NV12, rgb555_to_nv12}, |
|
2836 {PIX_FMT_RGB555, PIX_FMT_NV21, rgb555_to_nv21}, |
|
2837 {PIX_FMT_RGB555, PIX_FMT_GRAY8, rgb555_to_gray}, |
2170 {PIX_FMT_RGB555, PIX_FMT_GRAY8, rgb555_to_gray}, |
2838 {PIX_FMT_RGB555, PIX_FMT_GRAY16_L, rgb555_to_gray16_l}, |
|
2839 {PIX_FMT_RGB555, PIX_FMT_GRAY16_B, rgb555_to_gray16_b}, |
|
2840 |
2171 |
2841 {PIX_FMT_RGB565, PIX_FMT_RGB24, rgb565_to_rgb24}, |
2172 {PIX_FMT_RGB565, PIX_FMT_RGB24, rgb565_to_rgb24}, |
2842 {PIX_FMT_RGB565, PIX_FMT_YUV420P, rgb565_to_yuv420p}, |
2173 {PIX_FMT_RGB565, PIX_FMT_YUV420P, rgb565_to_yuv420p}, |
2843 {PIX_FMT_RGB565, PIX_FMT_NV12, rgb565_to_nv12}, |
|
2844 {PIX_FMT_RGB565, PIX_FMT_NV21, rgb565_to_nv21}, |
|
2845 {PIX_FMT_RGB565, PIX_FMT_GRAY8, rgb565_to_gray}, |
2174 {PIX_FMT_RGB565, PIX_FMT_GRAY8, rgb565_to_gray}, |
2846 {PIX_FMT_RGB565, PIX_FMT_GRAY16_L, rgb565_to_gray16_l}, |
|
2847 {PIX_FMT_RGB565, PIX_FMT_GRAY16_B, rgb565_to_gray16_b}, |
|
2848 |
2175 |
2849 {PIX_FMT_GRAY8, PIX_FMT_RGB555, gray_to_rgb555}, |
2176 {PIX_FMT_GRAY8, PIX_FMT_RGB555, gray_to_rgb555}, |
2850 {PIX_FMT_GRAY8, PIX_FMT_RGB565, gray_to_rgb565}, |
2177 {PIX_FMT_GRAY8, PIX_FMT_RGB565, gray_to_rgb565}, |
2851 {PIX_FMT_GRAY8, PIX_FMT_RGB24, gray_to_rgb24}, |
2178 {PIX_FMT_GRAY8, PIX_FMT_RGB24, gray_to_rgb24}, |
2852 {PIX_FMT_GRAY8, PIX_FMT_BGR24, gray_to_bgr24}, |
2179 {PIX_FMT_GRAY8, PIX_FMT_BGR24, gray_to_bgr24}, |
2858 {PIX_FMT_GRAY8, PIX_FMT_BGRA32, gray_to_bgra32}, |
2185 {PIX_FMT_GRAY8, PIX_FMT_BGRA32, gray_to_bgra32}, |
2859 {PIX_FMT_GRAY8, PIX_FMT_ARGB32, gray_to_argb32}, |
2186 {PIX_FMT_GRAY8, PIX_FMT_ARGB32, gray_to_argb32}, |
2860 {PIX_FMT_GRAY8, PIX_FMT_ABGR32, gray_to_abgr32}, |
2187 {PIX_FMT_GRAY8, PIX_FMT_ABGR32, gray_to_abgr32}, |
2861 {PIX_FMT_GRAY8, PIX_FMT_MONOWHITE, gray_to_monowhite}, |
2188 {PIX_FMT_GRAY8, PIX_FMT_MONOWHITE, gray_to_monowhite}, |
2862 {PIX_FMT_GRAY8, PIX_FMT_MONOBLACK, gray_to_monoblack}, |
2189 {PIX_FMT_GRAY8, PIX_FMT_MONOBLACK, gray_to_monoblack}, |
2863 {PIX_FMT_GRAY8, PIX_FMT_GRAY16_L, gray_to_gray16_l}, |
|
2864 {PIX_FMT_GRAY8, PIX_FMT_GRAY16_B, gray_to_gray16_b}, |
|
2865 |
2190 |
2866 {PIX_FMT_MONOWHITE, PIX_FMT_GRAY8, monowhite_to_gray}, |
2191 {PIX_FMT_MONOWHITE, PIX_FMT_GRAY8, monowhite_to_gray}, |
2867 |
2192 |
2868 {PIX_FMT_MONOBLACK, PIX_FMT_GRAY8, monoblack_to_gray}, |
2193 {PIX_FMT_MONOBLACK, PIX_FMT_GRAY8, monoblack_to_gray}, |
2869 |
|
2870 {PIX_FMT_GRAY16_L, PIX_FMT_GRAY8, gray16_l_to_gray}, |
|
2871 {PIX_FMT_GRAY16_L, PIX_FMT_RGB555, gray16_l_to_rgb555}, |
|
2872 {PIX_FMT_GRAY16_L, PIX_FMT_RGB565, gray16_l_to_rgb565}, |
|
2873 {PIX_FMT_GRAY16_L, PIX_FMT_BGR24, gray16_l_to_bgr24}, |
|
2874 {PIX_FMT_GRAY16_L, PIX_FMT_RGB24, gray16_l_to_rgb24}, |
|
2875 {PIX_FMT_GRAY16_L, PIX_FMT_BGR32, gray16_l_to_bgr32}, |
|
2876 {PIX_FMT_GRAY16_L, PIX_FMT_RGB32, gray16_l_to_rgb32}, |
|
2877 {PIX_FMT_GRAY16_L, PIX_FMT_xRGB32, gray16_l_to_xrgb32}, |
|
2878 {PIX_FMT_GRAY16_L, PIX_FMT_BGRx32, gray16_l_to_bgrx32}, |
|
2879 {PIX_FMT_GRAY16_L, PIX_FMT_ABGR32, gray16_l_to_abgr32}, |
|
2880 {PIX_FMT_GRAY16_L, PIX_FMT_ARGB32, gray16_l_to_argb32}, |
|
2881 {PIX_FMT_GRAY16_L, PIX_FMT_BGRA32, gray16_l_to_bgra32}, |
|
2882 {PIX_FMT_GRAY16_L, PIX_FMT_RGBA32, gray16_l_to_rgba32}, |
|
2883 {PIX_FMT_GRAY16_L, PIX_FMT_GRAY16_B, gray16_b_to_gray16_l}, |
|
2884 |
|
2885 {PIX_FMT_GRAY16_B, PIX_FMT_GRAY8, gray16_b_to_gray}, |
|
2886 {PIX_FMT_GRAY16_B, PIX_FMT_RGB555, gray16_b_to_rgb555}, |
|
2887 {PIX_FMT_GRAY16_B, PIX_FMT_RGB565, gray16_b_to_rgb565}, |
|
2888 {PIX_FMT_GRAY16_B, PIX_FMT_BGR24, gray16_b_to_bgr24}, |
|
2889 {PIX_FMT_GRAY16_B, PIX_FMT_RGB24, gray16_b_to_rgb24}, |
|
2890 {PIX_FMT_GRAY16_B, PIX_FMT_BGR32, gray16_b_to_bgr32}, |
|
2891 {PIX_FMT_GRAY16_B, PIX_FMT_RGB32, gray16_b_to_rgb32}, |
|
2892 {PIX_FMT_GRAY16_B, PIX_FMT_xRGB32, gray16_b_to_xrgb32}, |
|
2893 {PIX_FMT_GRAY16_B, PIX_FMT_BGRx32, gray16_b_to_bgrx32}, |
|
2894 {PIX_FMT_GRAY16_B, PIX_FMT_ABGR32, gray16_b_to_abgr32}, |
|
2895 {PIX_FMT_GRAY16_B, PIX_FMT_ARGB32, gray16_b_to_argb32}, |
|
2896 {PIX_FMT_GRAY16_B, PIX_FMT_BGRA32, gray16_b_to_bgra32}, |
|
2897 {PIX_FMT_GRAY16_B, PIX_FMT_RGBA32, gray16_b_to_rgba32}, |
|
2898 {PIX_FMT_GRAY16_B, PIX_FMT_GRAY16_L, gray16_b_to_gray16_l}, |
|
2899 |
2194 |
2900 {PIX_FMT_PAL8, PIX_FMT_RGB555, pal8_to_rgb555}, |
2195 {PIX_FMT_PAL8, PIX_FMT_RGB555, pal8_to_rgb555}, |
2901 {PIX_FMT_PAL8, PIX_FMT_RGB565, pal8_to_rgb565}, |
2196 {PIX_FMT_PAL8, PIX_FMT_RGB565, pal8_to_rgb565}, |
2902 {PIX_FMT_PAL8, PIX_FMT_BGR24, pal8_to_bgr24}, |
2197 {PIX_FMT_PAL8, PIX_FMT_BGR24, pal8_to_bgr24}, |
2903 {PIX_FMT_PAL8, PIX_FMT_RGB24, pal8_to_rgb24}, |
2198 {PIX_FMT_PAL8, PIX_FMT_RGB24, pal8_to_rgb24}, |