Advertisement
Guest User

Untitled

a guest
Jul 24th, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.22 KB | None | 0 0
  1.  
  2. /* autogenerated from video-orc.orc */
  3.  
  4. #ifdef HAVE_CONFIG_H
  5. #include "config.h"
  6. #endif
  7. #include <glib.h>
  8.  
  9. #ifndef _ORC_INTEGER_TYPEDEFS_
  10. #define _ORC_INTEGER_TYPEDEFS_
  11. #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  12. #include <stdint.h>
  13. typedef int8_t orc_int8;
  14. typedef int16_t orc_int16;
  15. typedef int32_t orc_int32;
  16. typedef int64_t orc_int64;
  17. typedef uint8_t orc_uint8;
  18. typedef uint16_t orc_uint16;
  19. typedef uint32_t orc_uint32;
  20. typedef uint64_t orc_uint64;
  21. #define ORC_UINT64_C(x) UINT64_C(x)
  22. #elif defined(_MSC_VER)
  23. typedef signed __int8 orc_int8;
  24. typedef signed __int16 orc_int16;
  25. typedef signed __int32 orc_int32;
  26. typedef signed __int64 orc_int64;
  27. typedef unsigned __int8 orc_uint8;
  28. typedef unsigned __int16 orc_uint16;
  29. typedef unsigned __int32 orc_uint32;
  30. typedef unsigned __int64 orc_uint64;
  31. #define ORC_UINT64_C(x) (x##Ui64)
  32. #define inline __inline
  33. #else
  34. #include <limits.h>
  35. typedef signed char orc_int8;
  36. typedef short orc_int16;
  37. typedef int orc_int32;
  38. typedef unsigned char orc_uint8;
  39. typedef unsigned short orc_uint16;
  40. typedef unsigned int orc_uint32;
  41. #if INT_MAX == LONG_MAX
  42. typedef long long orc_int64;
  43. typedef unsigned long long orc_uint64;
  44. #define ORC_UINT64_C(x) (x##ULL)
  45. #else
  46. typedef long orc_int64;
  47. typedef unsigned long orc_uint64;
  48. #define ORC_UINT64_C(x) (x##UL)
  49. #endif
  50. #endif
  51. typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
  52. typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
  53. typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
  54. #endif
  55. #ifndef ORC_RESTRICT
  56. #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  57. #define ORC_RESTRICT restrict
  58. #elif defined(__GNUC__) && __GNUC__ >= 4
  59. #define ORC_RESTRICT __restrict__
  60. #else
  61. #define ORC_RESTRICT
  62. #endif
  63. #endif
  64.  
  65. #ifndef DISABLE_ORC
  66. #include <orc/orc.h>
  67. #endif
  68. void video_orc_blend_little (int n);
  69. void video_orc_blend_big (int n);
  70. void video_orc_unpack_I420 (int n);
  71. void video_orc_pack_I420 (int n);
  72. void video_orc_unpack_YUY2 (int n);
  73. void video_orc_pack_YUY2 (int n);
  74. void video_orc_pack_UYVY (int n);
  75. void video_orc_unpack_UYVY (int n);
  76. void video_orc_unpack_YVYU (int n);
  77. void video_orc_pack_YVYU (int n);
  78. void video_orc_unpack_YUV9 (int n);
  79. void video_orc_unpack_Y42B (int n);
  80. void video_orc_pack_Y42B (int n);
  81. void video_orc_unpack_Y444 (int n);
  82. void video_orc_pack_Y444 (int n);
  83. void video_orc_unpack_GRAY8 (int n);
  84. void video_orc_pack_GRAY8 (int n);
  85. void video_orc_unpack_BGRA (int n);
  86. void video_orc_pack_BGRA (int n);
  87. void video_orc_pack_RGBA (int n);
  88. void video_orc_unpack_RGBA (int n);
  89. void video_orc_unpack_ABGR (int n);
  90. void video_orc_pack_ABGR (int n);
  91. void video_orc_unpack_NV12 (int n);
  92. void video_orc_pack_NV12 (int n);
  93. void video_orc_unpack_NV21 (int n);
  94. void video_orc_pack_NV21 (int n);
  95. void video_orc_unpack_NV24 (int n);
  96. void video_orc_pack_NV24 (int n);
  97. void video_orc_unpack_A420 (orc_uint8 * ORC_RESTRICT d4, int n);
  98. void video_orc_pack_A420 (int n);
  99. void video_orc_resample_bilinear_u32 (int n);
  100. void video_orc_merge_linear_u8 (int n);
  101.  
  102.  
  103. /* begin Orc C target preamble */
  104. #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
  105. #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
  106. #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
  107. #define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
  108. #define ORC_SB_MAX 127
  109. #define ORC_SB_MIN (-1-ORC_SB_MAX)
  110. #define ORC_UB_MAX 255
  111. #define ORC_UB_MIN 0
  112. #define ORC_SW_MAX 32767
  113. #define ORC_SW_MIN (-1-ORC_SW_MAX)
  114. #define ORC_UW_MAX 65535
  115. #define ORC_UW_MIN 0
  116. #define ORC_SL_MAX 2147483647
  117. #define ORC_SL_MIN (-1-ORC_SL_MAX)
  118. #define ORC_UL_MAX 4294967295U
  119. #define ORC_UL_MIN 0
  120. #define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
  121. #define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
  122. #define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
  123. #define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
  124. #define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
  125. #define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
  126. #define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
  127. #define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
  128. #define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
  129. #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
  130. #define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
  131. #define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
  132. #define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
  133. #define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
  134. #ifndef ORC_RESTRICT
  135. #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  136. #define ORC_RESTRICT restrict
  137. #elif defined(__GNUC__) && __GNUC__ >= 4
  138. #define ORC_RESTRICT __restrict__
  139. #else
  140. #define ORC_RESTRICT
  141. #endif
  142. #endif
  143. /* end Orc C target preamble */
  144.  
  145.  
  146.  
  147. /* video_orc_blend_little */
  148. #ifdef DISABLE_ORC
  149. void
  150. video_orc_blend_little (int n){
  151.   int i;
  152.   orc_union32 * ORC_RESTRICT ptr0;
  153.   const orc_union32 * ORC_RESTRICT ptr4;
  154.   orc_union32 var39;
  155.   orc_union32 var40;
  156.   orc_union16 var41;
  157.   orc_int8 var42;
  158.   orc_union32 var43;
  159.   orc_union64 var44;
  160.   orc_union64 var45;
  161.   orc_union64 var46;
  162.   orc_union32 var47;
  163.   orc_union64 var48;
  164.   orc_union64 var49;
  165.   orc_union64 var50;
  166.   orc_union64 var51;
  167.   orc_union64 var52;
  168.   orc_union32 var53;
  169.   orc_union32 var54;
  170.  
  171.   ptr0 = (orc_union32 *)d1;
  172.   ptr4 = (orc_union32 *)s1;
  173.  
  174.     /* 14: loadpl */
  175.     var39.i = (int)0x000000ff; /* 255 or 1.25987e-321f */
  176.  
  177.   for (i = 0; i < n; i++) {
  178.     /* 0: loadl */
  179.     var40 = ptr4[i];
  180.     /* 1: convlw */
  181.     var41.i = var40.i;
  182.     /* 2: convwb */
  183.     var42 = var41.i;
  184.     /* 3: splatbl */
  185.     var43.i = ((var42&0xff) << 24) | ((var42&0xff)<<16) | ((var42&0xff) << 8) | (var42&0xff);
  186.     /* 4: convubw */
  187.     var44.x4[0] = (orc_uint8)var43.x4[0];
  188.     var44.x4[1] = (orc_uint8)var43.x4[1];
  189.     var44.x4[2] = (orc_uint8)var43.x4[2];
  190.     var44.x4[3] = (orc_uint8)var43.x4[3];
  191.     /* 5: shruw */
  192.     var45.x4[0] = ((orc_uint16)var44.x4[0]) >> 8;
  193.     var45.x4[1] = ((orc_uint16)var44.x4[1]) >> 8;
  194.     var45.x4[2] = ((orc_uint16)var44.x4[2]) >> 8;
  195.     var45.x4[3] = ((orc_uint16)var44.x4[3]) >> 8;
  196.     /* 6: convubw */
  197.     var46.x4[0] = (orc_uint8)var40.x4[0];
  198.     var46.x4[1] = (orc_uint8)var40.x4[1];
  199.     var46.x4[2] = (orc_uint8)var40.x4[2];
  200.     var46.x4[3] = (orc_uint8)var40.x4[3];
  201.     /* 7: loadl */
  202.     var47 = ptr0[i];
  203.     /* 8: convubw */
  204.     var48.x4[0] = (orc_uint8)var47.x4[0];
  205.     var48.x4[1] = (orc_uint8)var47.x4[1];
  206.     var48.x4[2] = (orc_uint8)var47.x4[2];
  207.     var48.x4[3] = (orc_uint8)var47.x4[3];
  208.     /* 9: subw */
  209.     var49.x4[0] = var46.x4[0] - var48.x4[0];
  210.     var49.x4[1] = var46.x4[1] - var48.x4[1];
  211.     var49.x4[2] = var46.x4[2] - var48.x4[2];
  212.     var49.x4[3] = var46.x4[3] - var48.x4[3];
  213.     /* 10: mullw */
  214.     var50.x4[0] = (var49.x4[0] * var45.x4[0]) & 0xffff;
  215.     var50.x4[1] = (var49.x4[1] * var45.x4[1]) & 0xffff;
  216.     var50.x4[2] = (var49.x4[2] * var45.x4[2]) & 0xffff;
  217.     var50.x4[3] = (var49.x4[3] * var45.x4[3]) & 0xffff;
  218.     /* 11: div255w */
  219.     var51.x4[0] = ((orc_uint16)(((orc_uint16)(var50.x4[0]+128)) + (((orc_uint16)(var50.x4[0]+128))>>8)))>>8;
  220.     var51.x4[1] = ((orc_uint16)(((orc_uint16)(var50.x4[1]+128)) + (((orc_uint16)(var50.x4[1]+128))>>8)))>>8;
  221.     var51.x4[2] = ((orc_uint16)(((orc_uint16)(var50.x4[2]+128)) + (((orc_uint16)(var50.x4[2]+128))>>8)))>>8;
  222.     var51.x4[3] = ((orc_uint16)(((orc_uint16)(var50.x4[3]+128)) + (((orc_uint16)(var50.x4[3]+128))>>8)))>>8;
  223.     /* 12: addw */
  224.     var52.x4[0] = var48.x4[0] + var51.x4[0];
  225.     var52.x4[1] = var48.x4[1] + var51.x4[1];
  226.     var52.x4[2] = var48.x4[2] + var51.x4[2];
  227.     var52.x4[3] = var48.x4[3] + var51.x4[3];
  228.     /* 13: convwb */
  229.     var53.x4[0] = var52.x4[0];
  230.     var53.x4[1] = var5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement