RTCYUVHelper.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /*
  2. * Copyright 2016 The WebRTC project authors. All Rights Reserved.
  3. *
  4. * Use of this source code is governed by a BSD-style license
  5. * that can be found in the LICENSE file in the root of the source
  6. * tree. An additional intellectual property rights grant can be found
  7. * in the file PATENTS. All contributing project authors may
  8. * be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #import <Foundation/Foundation.h>
  11. #import <WebRTC/RTCMacros.h>
  12. #import <WebRTC/RTCVideoFrame.h>
  13. RTC_OBJC_EXPORT
  14. @interface RTC_OBJC_TYPE (RTCYUVHelper) : NSObject
  15. - (instancetype)init NS_UNAVAILABLE;
  16. + (void)I420Rotate:(const uint8_t*)srcY
  17. srcStrideY:(int)srcStrideY
  18. srcU:(const uint8_t*)srcU
  19. srcStrideU:(int)srcStrideU
  20. srcV:(const uint8_t*)srcV
  21. srcStrideV:(int)srcStrideV
  22. dstY:(uint8_t*)dstY
  23. dstStrideY:(int)dstStrideY
  24. dstU:(uint8_t*)dstU
  25. dstStrideU:(int)dstStrideU
  26. dstV:(uint8_t*)dstV
  27. dstStrideV:(int)dstStrideV
  28. width:(int)width
  29. width:(int)height
  30. mode:(RTCVideoRotation)mode;
  31. + (int)I420ToNV12:(const uint8_t*)srcY
  32. srcStrideY:(int)srcStrideY
  33. srcU:(const uint8_t*)srcU
  34. srcStrideU:(int)srcStrideU
  35. srcV:(const uint8_t*)srcV
  36. srcStrideV:(int)srcStrideV
  37. dstY:(uint8_t*)dstY
  38. dstStrideY:(int)dstStrideY
  39. dstUV:(uint8_t*)dstUV
  40. dstStrideUV:(int)dstStrideUV
  41. width:(int)width
  42. width:(int)height;
  43. + (int)I420ToNV21:(const uint8_t*)srcY
  44. srcStrideY:(int)srcStrideY
  45. srcU:(const uint8_t*)srcU
  46. srcStrideU:(int)srcStrideU
  47. srcV:(const uint8_t*)srcV
  48. srcStrideV:(int)srcStrideV
  49. dstY:(uint8_t*)dstY
  50. dstStrideY:(int)dstStrideY
  51. dstUV:(uint8_t*)dstUV
  52. dstStrideUV:(int)dstStrideUV
  53. width:(int)width
  54. width:(int)height;
  55. + (int)I420ToARGB:(const uint8_t*)srcY
  56. srcStrideY:(int)srcStrideY
  57. srcU:(const uint8_t*)srcU
  58. srcStrideU:(int)srcStrideU
  59. srcV:(const uint8_t*)srcV
  60. srcStrideV:(int)srcStrideV
  61. dstARGB:(uint8_t*)dstARGB
  62. dstStrideARGB:(int)dstStrideARGB
  63. width:(int)width
  64. height:(int)height;
  65. + (int)I420ToBGRA:(const uint8_t*)srcY
  66. srcStrideY:(int)srcStrideY
  67. srcU:(const uint8_t*)srcU
  68. srcStrideU:(int)srcStrideU
  69. srcV:(const uint8_t*)srcV
  70. srcStrideV:(int)srcStrideV
  71. dstBGRA:(uint8_t*)dstBGRA
  72. dstStrideBGRA:(int)dstStrideBGRA
  73. width:(int)width
  74. height:(int)height;
  75. + (int)I420ToABGR:(const uint8_t*)srcY
  76. srcStrideY:(int)srcStrideY
  77. srcU:(const uint8_t*)srcU
  78. srcStrideU:(int)srcStrideU
  79. srcV:(const uint8_t*)srcV
  80. srcStrideV:(int)srcStrideV
  81. dstABGR:(uint8_t*)dstABGR
  82. dstStrideABGR:(int)dstStrideABGR
  83. width:(int)width
  84. height:(int)height;
  85. + (int)I420ToRGBA:(const uint8_t*)srcY
  86. srcStrideY:(int)srcStrideY
  87. srcU:(const uint8_t*)srcU
  88. srcStrideU:(int)srcStrideU
  89. srcV:(const uint8_t*)srcV
  90. srcStrideV:(int)srcStrideV
  91. dstRGBA:(uint8_t*)dstRGBA
  92. dstStrideRGBA:(int)dstStrideRGBA
  93. width:(int)width
  94. height:(int)height;
  95. + (int)I420ToRGB24:(const uint8_t*)srcY
  96. srcStrideY:(int)srcStrideY
  97. srcU:(const uint8_t*)srcU
  98. srcStrideU:(int)srcStrideU
  99. srcV:(const uint8_t*)srcV
  100. srcStrideV:(int)srcStrideV
  101. dstRGB24:(uint8_t*)dstRGB24
  102. dstStrideRGB24:(int)dstStrideRGB24
  103. width:(int)width
  104. height:(int)height;
  105. @end