home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 275 / DPCS0111DVD.ISO / Toolkit / Audio-Visual / VirtualDub / Source / VirtualDub-1.9.10-src.7z / src / Kasumi / source / blt_reference.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2009-09-14  |  14.6 KB  |  260 lines

  1. #include <vd2/system/vdtypes.h>
  2. #include <vd2/Kasumi/pixmap.h>
  3. #include <vd2/Kasumi/pixmaputils.h>
  4. #include "blt_setup.h"
  5.  
  6. #define DECLARE_PALETTED(x, y) extern void VDPixmapBlt_##x##_to_##y##_reference(void *dst0, ptrdiff_t dstpitch, const void *src0, ptrdiff_t srcpitch, vdpixsize w, vdpixsize h, const void *pal0)
  7. #define DECLARE_RGB(x, y) extern void VDPixmapBlt_##x##_to_##y##_reference(void *dst0, ptrdiff_t dstpitch, const void *src0, ptrdiff_t srcpitch, vdpixsize w, vdpixsize h)
  8. #define DECLARE_YUV(x, y) extern void VDPixmapBlt_##x##_to_##y##_reference(void *dst0, ptrdiff_t dstpitch, const void *src0, ptrdiff_t srcpitch, vdpixsize w, vdpixsize h)
  9. #define DECLARE_YUV_REV(x, y) void VDPixmapBlt_##x##_to_##y##_reference(void *dst0, ptrdiff_t dstpitch, const void *src0, ptrdiff_t srcpitch, vdpixsize w, vdpixsize h)
  10. #define DECLARE_YUV_PLANAR(x, y) extern void VDPixmapBlt_##x##_to_##y##_reference(const VDPixmap& dst, const VDPixmap& src, vdpixsize w, vdpixsize h)
  11.  
  12. DECLARE_RGB(RGB565,      XRGB1555);
  13. DECLARE_RGB(RGB888,   XRGB1555);
  14. DECLARE_RGB(XRGB8888, XRGB1555);
  15. DECLARE_RGB(XRGB1555, RGB565);
  16. DECLARE_RGB(RGB888,   RGB565);
  17. DECLARE_RGB(XRGB8888, RGB565);
  18. DECLARE_RGB(XRGB1555, RGB888);
  19. DECLARE_RGB(RGB565,   RGB888);
  20. DECLARE_RGB(XRGB8888, RGB888);
  21. DECLARE_RGB(XRGB1555, XRGB8888);
  22. DECLARE_RGB(RGB565,   XRGB8888);
  23. DECLARE_RGB(RGB888,   XRGB8888);
  24.  
  25. DECLARE_PALETTED(Pal1, Any8);
  26. DECLARE_PALETTED(Pal1, Any16);
  27. DECLARE_PALETTED(Pal1, Any24);
  28. DECLARE_PALETTED(Pal1, Any32);
  29. DECLARE_PALETTED(Pal2, Any8);
  30. DECLARE_PALETTED(Pal2, Any16);
  31. DECLARE_PALETTED(Pal2, Any24);
  32. DECLARE_PALETTED(Pal2, Any32);
  33. DECLARE_PALETTED(Pal4, Any8);
  34. DECLARE_PALETTED(Pal4, Any16);
  35. DECLARE_PALETTED(Pal4, Any24);
  36. DECLARE_PALETTED(Pal4, Any32);
  37. DECLARE_PALETTED(Pal8, Any8);
  38. DECLARE_PALETTED(Pal8, Any16);
  39. DECLARE_PALETTED(Pal8, Any24);
  40. DECLARE_PALETTED(Pal8, Any32);
  41.  
  42. DECLARE_YUV(XVYU, UYVY);
  43. DECLARE_YUV(XVYU, YUYV);
  44. DECLARE_YUV(Y8, UYVY);
  45. DECLARE_YUV(Y8, YUYV);
  46. DECLARE_YUV(UYVY, Y8);
  47. DECLARE_YUV(YUYV, Y8);
  48. DECLARE_YUV(UYVY, YUYV);
  49. DECLARE_YUV_PLANAR(YUV411, YV12);
  50.  
  51. DECLARE_YUV(UYVY, XRGB1555);
  52. DECLARE_YUV(UYVY, RGB565);
  53. DECLARE_YUV(UYVY, RGB888);
  54. DECLARE_YUV(UYVY, XRGB8888);
  55. DECLARE_YUV(YUYV, XRGB1555);
  56. DECLARE_YUV(YUYV, RGB565);
  57. DECLARE_YUV(YUYV, RGB888);
  58. DECLARE_YUV(YUYV, XRGB8888);
  59. DECLARE_YUV(Y8, XRGB1555);
  60. DECLARE_YUV(Y8, RGB565);
  61. DECLARE_YUV(Y8, RGB888);
  62. DECLARE_YUV(Y8, XRGB8888);
  63.  
  64. DECLARE_YUV_REV(XRGB1555, Y8);
  65. DECLARE_YUV_REV(RGB565,   Y8);
  66. DECLARE_YUV_REV(RGB888,   Y8);
  67. DECLARE_YUV_REV(XRGB8888, Y8);
  68.  
  69. DECLARE_YUV_REV(XRGB1555, XVYU);
  70. DECLARE_YUV_REV(RGB565,   XVYU);
  71. DECLARE_YUV_REV(RGB888,   XVYU);
  72. DECLARE_YUV_REV(XRGB8888, XVYU);
  73.  
  74. DECLARE_YUV_PLANAR(YV12, XRGB1555);
  75. DECLARE_YUV_PLANAR(YV12, RGB565);
  76. DECLARE_YUV_PLANAR(YV12, RGB888);
  77. DECLARE_YUV_PLANAR(YV12, XRGB8888);
  78.  
  79. DECLARE_YUV_PLANAR(YUV411, XRGB1555);
  80. DECLARE_YUV_PLANAR(YUV411, RGB565);
  81. DECLARE_YUV_PLANAR(YUV411, RGB888);
  82. DECLARE_YUV_PLANAR(YUV411, XRGB8888);
  83.  
  84. extern void VDPixmapBlt_YUVPlanar_decode_reference(const VDPixmap& dst, const VDPixmap& src, vdpixsize w, vdpixsize h);
  85. extern void VDPixmapBlt_YUVPlanar_encode_reference(const VDPixmap& dst, const VDPixmap& src, vdpixsize w, vdpixsize h);
  86. extern void VDPixmapBlt_YUVPlanar_convert_reference(const VDPixmap& dst, const VDPixmap& src, vdpixsize w, vdpixsize h);
  87. extern void VDPixmapBlt_UberblitAdapter(const VDPixmap& dst, const VDPixmap& src, vdpixsize w, vdpixsize h);
  88.  
  89. using namespace nsVDPixmap;
  90.  
  91. void VDPixmapInitBlittersReference(VDPixmapBlitterTable& table) {
  92.     // use uberblit as the baseline
  93.     VDPixmapFormatSubset uberblitSrcFormats;
  94.     VDPixmapFormatSubset uberblitDstFormats;
  95.  
  96.     uberblitSrcFormats =
  97.         kPixFormat_Pal1,
  98.         kPixFormat_Pal2,
  99.         kPixFormat_Pal4,
  100.         kPixFormat_Pal8,
  101.         kPixFormat_XRGB1555,
  102.         kPixFormat_RGB565,
  103.         kPixFormat_RGB888,
  104.         kPixFormat_XRGB8888,
  105.         kPixFormat_Y8,
  106.         kPixFormat_YUV422_UYVY,
  107.         kPixFormat_YUV422_YUYV,
  108.         kPixFormat_YUV444_XVYU,
  109.         kPixFormat_YUV444_Planar,
  110.         kPixFormat_YUV422_Planar,
  111.         kPixFormat_YUV422_Planar_16F,
  112.         kPixFormat_YUV420_Planar,
  113.         kPixFormat_YUV411_Planar,
  114.         kPixFormat_YUV410_Planar,
  115.         kPixFormat_YUV422_Planar_Centered,
  116.         kPixFormat_YUV420_Planar_Centered,
  117.         kPixFormat_YUV422_V210,
  118.         kPixFormat_YUV422_UYVY_709,
  119.         kPixFormat_YUV420_NV12;
  120.  
  121.     uberblitDstFormats =
  122.         kPixFormat_XRGB1555,
  123.         kPixFormat_RGB565,
  124.         kPixFormat_RGB888,
  125.         kPixFormat_XRGB8888,
  126.         kPixFormat_Y8,
  127.         kPixFormat_YUV422_UYVY,
  128.         kPixFormat_YUV422_YUYV,
  129.         kPixFormat_YUV444_XVYU,
  130.         kPixFormat_YUV444_Planar,
  131.         kPixFormat_YUV422_Planar,
  132.         kPixFormat_YUV422_Planar_16F,
  133.         kPixFormat_YUV420_Planar,
  134.         kPixFormat_YUV411_Planar,
  135.         kPixFormat_YUV410_Planar,
  136.         kPixFormat_YUV422_Planar_Centered,
  137.         kPixFormat_YUV420_Planar_Centered,
  138.         kPixFormat_YUV422_V210,
  139.         kPixFormat_YUV422_UYVY_709,
  140.         kPixFormat_YUV420_NV12;
  141.  
  142.     table.AddBlitter(uberblitSrcFormats, uberblitDstFormats, VDPixmapBlt_UberblitAdapter);
  143.  
  144.     // standard formats
  145.  
  146.     table.AddBlitter(kPixFormat_Pal1,    kPixFormat_Y8,            VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal1_to_Any8_reference>);
  147.     table.AddBlitter(kPixFormat_Pal1,    kPixFormat_XRGB1555,    VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal1_to_Any16_reference>);
  148.     table.AddBlitter(kPixFormat_Pal1,    kPixFormat_RGB565,        VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal1_to_Any16_reference>);
  149.     table.AddBlitter(kPixFormat_Pal1,    kPixFormat_RGB888,        VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal1_to_Any24_reference>);
  150.     table.AddBlitter(kPixFormat_Pal1,    kPixFormat_XRGB8888,    VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal1_to_Any32_reference>);
  151.     table.AddBlitter(kPixFormat_Pal2,    kPixFormat_Y8,            VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal2_to_Any8_reference>);
  152.     table.AddBlitter(kPixFormat_Pal2,    kPixFormat_XRGB1555,    VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal2_to_Any16_reference>);
  153.     table.AddBlitter(kPixFormat_Pal2,    kPixFormat_RGB565,        VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal2_to_Any16_reference>);
  154.     table.AddBlitter(kPixFormat_Pal2,    kPixFormat_RGB888,        VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal2_to_Any24_reference>);
  155.     table.AddBlitter(kPixFormat_Pal2,    kPixFormat_XRGB8888,    VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal2_to_Any32_reference>);
  156.     table.AddBlitter(kPixFormat_Pal4,    kPixFormat_Y8,            VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal4_to_Any8_reference>);
  157.     table.AddBlitter(kPixFormat_Pal4,    kPixFormat_XRGB1555,    VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal4_to_Any16_reference>);
  158.     table.AddBlitter(kPixFormat_Pal4,    kPixFormat_RGB565,        VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal4_to_Any16_reference>);
  159.     table.AddBlitter(kPixFormat_Pal4,    kPixFormat_RGB888,        VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal4_to_Any24_reference>);
  160.     table.AddBlitter(kPixFormat_Pal4,    kPixFormat_XRGB8888,    VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal4_to_Any32_reference>);
  161.     table.AddBlitter(kPixFormat_Pal8,    kPixFormat_Y8,            VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal8_to_Any8_reference>);
  162.     table.AddBlitter(kPixFormat_Pal8,    kPixFormat_XRGB1555,    VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal8_to_Any16_reference>);
  163.     table.AddBlitter(kPixFormat_Pal8,    kPixFormat_RGB565,        VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal8_to_Any16_reference>);
  164.     table.AddBlitter(kPixFormat_Pal8,    kPixFormat_RGB888,        VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal8_to_Any24_reference>);
  165.     table.AddBlitter(kPixFormat_Pal8,    kPixFormat_XRGB8888,    VDPixmapBlitterPalettedAdapter<VDPixmapBlt_Pal8_to_Any32_reference>);
  166.  
  167.     table.AddBlitter(kPixFormat_XRGB1555,    kPixFormat_RGB565,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB1555_to_RGB565_reference>);
  168.     table.AddBlitter(kPixFormat_XRGB1555,    kPixFormat_RGB888,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB1555_to_RGB888_reference>);
  169.     table.AddBlitter(kPixFormat_XRGB1555,    kPixFormat_XRGB8888,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB1555_to_XRGB8888_reference>);
  170.     table.AddBlitter(kPixFormat_RGB565,        kPixFormat_XRGB1555,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB565_to_XRGB1555_reference>);
  171.     table.AddBlitter(kPixFormat_RGB565,        kPixFormat_RGB888,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB565_to_RGB888_reference>);
  172.     table.AddBlitter(kPixFormat_RGB565,        kPixFormat_XRGB8888,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB565_to_XRGB8888_reference>);
  173.     table.AddBlitter(kPixFormat_RGB888,        kPixFormat_XRGB1555,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB888_to_XRGB1555_reference>);
  174.     table.AddBlitter(kPixFormat_RGB888,        kPixFormat_RGB565,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB888_to_RGB565_reference>);
  175.     table.AddBlitter(kPixFormat_RGB888,        kPixFormat_XRGB8888,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB888_to_XRGB8888_reference>);
  176.     table.AddBlitter(kPixFormat_XRGB8888,    kPixFormat_XRGB1555,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB8888_to_XRGB1555_reference>);
  177.     table.AddBlitter(kPixFormat_XRGB8888,    kPixFormat_RGB565,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB8888_to_RGB565_reference>);
  178.     table.AddBlitter(kPixFormat_XRGB8888,    kPixFormat_RGB888,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB8888_to_RGB888_reference>);
  179.  
  180.     table.AddBlitter(kPixFormat_YUV444_XVYU,    kPixFormat_YUV422_UYVY,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XVYU_to_UYVY_reference>);
  181.     table.AddBlitter(kPixFormat_YUV444_XVYU,    kPixFormat_YUV422_YUYV,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XVYU_to_YUYV_reference>);
  182.     table.AddBlitter(kPixFormat_Y8,                kPixFormat_YUV422_UYVY,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_Y8_to_UYVY_reference>);
  183.     table.AddBlitter(kPixFormat_Y8,                kPixFormat_YUV422_YUYV,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_Y8_to_YUYV_reference>);
  184.     table.AddBlitter(kPixFormat_YUV422_UYVY,    kPixFormat_Y8,            VDPixmapBlitterChunkyAdapter<VDPixmapBlt_UYVY_to_Y8_reference>);
  185.     table.AddBlitter(kPixFormat_YUV422_YUYV,    kPixFormat_Y8,            VDPixmapBlitterChunkyAdapter<VDPixmapBlt_YUYV_to_Y8_reference>);
  186.  
  187.     table.AddBlitter(kPixFormat_YUV422_UYVY,    kPixFormat_XRGB1555,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_UYVY_to_XRGB1555_reference>);
  188.     table.AddBlitter(kPixFormat_YUV422_UYVY,    kPixFormat_RGB565,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_UYVY_to_RGB565_reference>);
  189.     table.AddBlitter(kPixFormat_YUV422_UYVY,    kPixFormat_RGB888,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_UYVY_to_RGB888_reference>);
  190.     table.AddBlitter(kPixFormat_YUV422_UYVY,    kPixFormat_XRGB8888,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_UYVY_to_XRGB8888_reference>);
  191.     table.AddBlitter(kPixFormat_YUV422_YUYV,    kPixFormat_XRGB1555,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_YUYV_to_XRGB1555_reference>);
  192.     table.AddBlitter(kPixFormat_YUV422_YUYV,    kPixFormat_RGB565,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_YUYV_to_RGB565_reference>);
  193.     table.AddBlitter(kPixFormat_YUV422_YUYV,    kPixFormat_RGB888,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_YUYV_to_RGB888_reference>);
  194.     table.AddBlitter(kPixFormat_YUV422_YUYV,    kPixFormat_XRGB8888,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_YUYV_to_XRGB8888_reference>);
  195.     table.AddBlitter(kPixFormat_Y8,                kPixFormat_XRGB1555,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_Y8_to_XRGB1555_reference>);
  196.     table.AddBlitter(kPixFormat_Y8,                kPixFormat_RGB565,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_Y8_to_RGB565_reference>);
  197.     table.AddBlitter(kPixFormat_Y8,                kPixFormat_RGB888,        VDPixmapBlitterChunkyAdapter<VDPixmapBlt_Y8_to_RGB888_reference>);
  198.     table.AddBlitter(kPixFormat_Y8,                kPixFormat_XRGB8888,    VDPixmapBlitterChunkyAdapter<VDPixmapBlt_Y8_to_XRGB8888_reference>);
  199.  
  200.     table.AddBlitter(kPixFormat_XRGB1555,    kPixFormat_YUV444_XVYU, VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB1555_to_XVYU_reference>);
  201.     table.AddBlitter(kPixFormat_RGB565,        kPixFormat_YUV444_XVYU, VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB565_to_XVYU_reference>);
  202.     table.AddBlitter(kPixFormat_RGB888,        kPixFormat_YUV444_XVYU, VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB888_to_XVYU_reference>);
  203.     table.AddBlitter(kPixFormat_XRGB8888,    kPixFormat_YUV444_XVYU, VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB8888_to_XVYU_reference>);
  204.  
  205.     table.AddBlitter(kPixFormat_XRGB1555,    kPixFormat_Y8,            VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB1555_to_Y8_reference>);
  206.     table.AddBlitter(kPixFormat_RGB565,        kPixFormat_Y8,            VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB565_to_Y8_reference>);
  207.     table.AddBlitter(kPixFormat_RGB888,        kPixFormat_Y8,            VDPixmapBlitterChunkyAdapter<VDPixmapBlt_RGB888_to_Y8_reference>);
  208.     table.AddBlitter(kPixFormat_XRGB8888,    kPixFormat_Y8,            VDPixmapBlitterChunkyAdapter<VDPixmapBlt_XRGB8888_to_Y8_reference>);
  209.  
  210.     table.AddBlitter(kPixFormat_YUV411_Planar, kPixFormat_YUV420_Planar, VDPixmapBlt_YUV411_to_YV12_reference);
  211.  
  212.     table.AddBlitter(kPixFormat_YUV422_UYVY, kPixFormat_YUV422_YUYV, VDPixmapBlitterChunkyAdapter<VDPixmapBlt_UYVY_to_YUYV_reference>);
  213.     table.AddBlitter(kPixFormat_YUV422_YUYV, kPixFormat_YUV422_UYVY, VDPixmapBlitterChunkyAdapter<VDPixmapBlt_UYVY_to_YUYV_reference>);        // not an error -- same routine
  214.  
  215.     //////////////////////////////////////////////////////////
  216.  
  217.     VDPixmapFormatSubset srcFormats;
  218.     VDPixmapFormatSubset dstFormats;
  219.  
  220.     srcFormats = kPixFormat_YUV444_Planar,
  221.                 kPixFormat_YUV422_Planar,
  222.                 kPixFormat_YUV420_Planar,
  223.                 kPixFormat_YUV411_Planar,
  224.                 kPixFormat_YUV410_Planar,
  225.                 kPixFormat_YUV422_Planar_Centered,
  226.                 kPixFormat_YUV420_Planar_Centered;
  227.  
  228.     dstFormats = kPixFormat_XRGB1555, kPixFormat_RGB565, kPixFormat_RGB888, kPixFormat_XRGB8888, kPixFormat_YUV422_UYVY, kPixFormat_YUV422_YUYV;
  229.  
  230.     table.AddBlitter(srcFormats, dstFormats, VDPixmapBlt_YUVPlanar_decode_reference);
  231.  
  232.     //////////////////////////////////////////////////////////
  233.  
  234.     dstFormats = kPixFormat_YUV444_Planar, kPixFormat_YUV422_Planar, kPixFormat_YUV420_Planar, kPixFormat_YUV411_Planar, kPixFormat_YUV410_Planar, kPixFormat_YUV422_Planar_Centered, kPixFormat_YUV420_Planar_Centered;
  235.     srcFormats = kPixFormat_XRGB1555, kPixFormat_RGB565, kPixFormat_RGB888, kPixFormat_XRGB8888, kPixFormat_YUV422_UYVY, kPixFormat_YUV422_YUYV;
  236.  
  237.     table.AddBlitter(srcFormats, dstFormats, VDPixmapBlt_YUVPlanar_encode_reference);
  238.  
  239.     //////////////////////////////////////////////////////////
  240.  
  241.     srcFormats = kPixFormat_YUV444_Planar, kPixFormat_YUV422_Planar, kPixFormat_YUV420_Planar, kPixFormat_YUV411_Planar, kPixFormat_YUV410_Planar, kPixFormat_Y8, kPixFormat_YUV422_Planar_Centered, kPixFormat_YUV420_Planar_Centered;
  242.     dstFormats = kPixFormat_YUV444_Planar, kPixFormat_YUV422_Planar, kPixFormat_YUV420_Planar, kPixFormat_YUV411_Planar, kPixFormat_YUV410_Planar, kPixFormat_Y8, kPixFormat_YUV422_Planar_Centered, kPixFormat_YUV420_Planar_Centered;
  243.  
  244.     table.AddBlitter(srcFormats, dstFormats, VDPixmapBlt_YUVPlanar_convert_reference);
  245. }
  246.  
  247. tpVDPixBltTable VDGetPixBltTableReferenceInternal() {
  248.     static VDPixmapBlitterTable sReferenceTable;
  249.  
  250.     VDPixmapInitBlittersReference(sReferenceTable);
  251.  
  252.     return sReferenceTable.mTable;
  253. }
  254.  
  255. tpVDPixBltTable VDGetPixBltTableReference() {
  256.     static tpVDPixBltTable spTable = VDGetPixBltTableReferenceInternal();
  257.  
  258.     return spTable;
  259. }
  260.