You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

201 lines
5.3KB

  1. /*
  2. * pixel format descriptor
  3. * Copyright (c) 2009 Michael Niedermayer <michaelni@gmx.at>
  4. *
  5. * This file is part of FFmpeg.
  6. *
  7. * FFmpeg is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU Lesser General Public
  9. * License as published by the Free Software Foundation; either
  10. * version 2.1 of the License, or (at your option) any later version.
  11. *
  12. * FFmpeg is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with FFmpeg; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  20. */
  21. #include "libavutil/pixfmt.h"
  22. #include "pixdesc.h"
  23. const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
  24. [PIX_FMT_YUV420P] = {
  25. .name = "yuv420p",
  26. .nb_channels = 3,
  27. .log2_chroma_w= 1,
  28. .log2_chroma_h= 1,
  29. .comp = {
  30. {0,0,1,0,7}, /* Y */
  31. {1,0,1,0,7}, /* U */
  32. {2,0,1,0,7}, /* V */
  33. },
  34. },
  35. [PIX_FMT_YUYV422] = {
  36. .name = "yuyv422",
  37. .nb_channels = 3,
  38. .log2_chroma_w= 1,
  39. .log2_chroma_h= 0,
  40. .comp = {
  41. {0,1,1,0,7}, /* Y */
  42. {0,3,2,0,7}, /* U */
  43. {0,3,4,0,7}, /* V */
  44. },
  45. },
  46. [PIX_FMT_RGB24] = {
  47. .name = "rgb24",
  48. .nb_channels = 3,
  49. .log2_chroma_w= 0,
  50. .log2_chroma_h= 0,
  51. .comp = {
  52. {0,2,1,0,7}, /* R */
  53. {0,2,2,0,7}, /* G */
  54. {0,2,3,0,7}, /* B */
  55. },
  56. },
  57. [PIX_FMT_YUV422P] = {
  58. .name = "yuv422p",
  59. .nb_channels = 3,
  60. .log2_chroma_w= 1,
  61. .log2_chroma_h= 0,
  62. .comp = {
  63. {0,0,1,0,7}, /* Y */
  64. {1,0,1,0,7}, /* U */
  65. {2,0,1,0,7}, /* V */
  66. },
  67. },
  68. [PIX_FMT_YUV410P] = {
  69. .name = "yuv410p",
  70. .nb_channels = 3,
  71. .log2_chroma_w= 2,
  72. .log2_chroma_h= 2,
  73. .comp = {
  74. {0,0,1,0,7}, /* Y */
  75. {1,0,1,0,7}, /* U */
  76. {2,0,1,0,7}, /* V */
  77. },
  78. },
  79. [PIX_FMT_MONOBLACK] = {
  80. .name = "monoblack",
  81. .nb_channels = 1,
  82. .log2_chroma_w= 0,
  83. .log2_chroma_h= 0,
  84. .comp = {
  85. {0,0,1,7,0}, /* Y */
  86. },
  87. .flags = PIX_FMT_BITSTREAM,
  88. },
  89. [PIX_FMT_PAL8] = {
  90. .name = "pal8",
  91. .nb_channels = 1,
  92. .log2_chroma_w= 0,
  93. .log2_chroma_h= 0,
  94. .comp = {
  95. {0,0,1,0,7},
  96. },
  97. .flags = PIX_FMT_PAL,
  98. },
  99. [PIX_FMT_UYVY422] = {
  100. .name = "uyvy422",
  101. .nb_channels = 3,
  102. .log2_chroma_w= 1,
  103. .log2_chroma_h= 0,
  104. .comp = {
  105. {0,1,2,0,7}, /* Y */
  106. {0,3,1,0,7}, /* U */
  107. {0,3,3,0,7}, /* V */
  108. },
  109. },
  110. [PIX_FMT_NV12] = {
  111. .name = "nv12",
  112. .nb_channels = 3,
  113. .log2_chroma_w= 1,
  114. .log2_chroma_h= 1,
  115. .comp = {
  116. {0,0,1,0,7}, /* Y */
  117. {1,1,1,0,7}, /* U */
  118. {1,1,2,0,7}, /* V */
  119. },
  120. },
  121. [PIX_FMT_RGBA] = {
  122. .name = "rgba",
  123. .nb_channels = 4,
  124. .log2_chroma_w= 0,
  125. .log2_chroma_h= 0,
  126. .comp = {
  127. {0,3,1,0,7}, /* R */
  128. {0,3,2,0,7}, /* G */
  129. {0,3,3,0,7}, /* B */
  130. {0,3,4,0,7}, /* A */
  131. },
  132. },
  133. [PIX_FMT_GRAY16BE] = {
  134. .name = "gray16be",
  135. .nb_channels = 1,
  136. .log2_chroma_w= 0,
  137. .log2_chroma_h= 0,
  138. .comp = {
  139. {0,1,1,0,15}, /* Y */
  140. },
  141. .flags = PIX_FMT_BE,
  142. },
  143. [PIX_FMT_GRAY16LE] = {
  144. .name = "gray16le",
  145. .nb_channels = 1,
  146. .log2_chroma_w= 0,
  147. .log2_chroma_h= 0,
  148. .comp = {
  149. {0,1,1,0,15}, /* Y */
  150. },
  151. },
  152. [PIX_FMT_RGB48BE] = {
  153. .name = "rgb48be",
  154. .nb_channels = 3,
  155. .log2_chroma_w= 0,
  156. .log2_chroma_h= 0,
  157. .comp = {
  158. {0,5,1,0,15}, /* R */
  159. {0,5,3,0,15}, /* G */
  160. {0,5,5,0,15}, /* B */
  161. },
  162. .flags = PIX_FMT_BE,
  163. },
  164. [PIX_FMT_RGB48LE] = {
  165. .name = "rgb48le",
  166. .nb_channels = 3,
  167. .log2_chroma_w= 0,
  168. .log2_chroma_h= 0,
  169. .comp = {
  170. {0,5,1,0,15}, /* R */
  171. {0,5,3,0,15}, /* G */
  172. {0,5,5,0,15}, /* B */
  173. },
  174. },
  175. [PIX_FMT_RGB565BE] = {
  176. .name = "rgb565be",
  177. .nb_channels = 3,
  178. .log2_chroma_w= 0,
  179. .log2_chroma_h= 0,
  180. .comp = {
  181. {0,1,0,3,4}, /* R */
  182. {0,1,1,5,5}, /* G */
  183. {0,1,1,0,4}, /* B */
  184. },
  185. .flags = PIX_FMT_BE,
  186. },
  187. [PIX_FMT_RGB565LE] = {
  188. .name = "rgb565le",
  189. .nb_channels = 3,
  190. .log2_chroma_w= 0,
  191. .log2_chroma_h= 0,
  192. .comp = {
  193. {0,1,2,3,4}, /* R */
  194. {0,1,1,5,5}, /* G */
  195. {0,1,1,0,4}, /* B */
  196. },
  197. },
  198. };