@img/sharp-libvips-dev 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. package/README.md +47 -0
  2. package/cplusplus/VConnection.cpp +151 -0
  3. package/cplusplus/VError.cpp +49 -0
  4. package/cplusplus/VImage.cpp +1548 -0
  5. package/cplusplus/VInterpolate.cpp +62 -0
  6. package/cplusplus/VRegion.cpp +27 -0
  7. package/cplusplus/index.js +1 -0
  8. package/cplusplus/vips-operators.cpp +3760 -0
  9. package/include/aom/aom.h +127 -0
  10. package/include/aom/aom_codec.h +573 -0
  11. package/include/aom/aom_decoder.h +257 -0
  12. package/include/aom/aom_encoder.h +1137 -0
  13. package/include/aom/aom_external_partition.h +452 -0
  14. package/include/aom/aom_frame_buffer.h +84 -0
  15. package/include/aom/aom_image.h +448 -0
  16. package/include/aom/aom_integer.h +68 -0
  17. package/include/aom/aomcx.h +2112 -0
  18. package/include/aom/aomdx.h +604 -0
  19. package/include/archive.h +1212 -0
  20. package/include/archive_entry.h +723 -0
  21. package/include/cairo/cairo-deprecated.h +123 -0
  22. package/include/cairo/cairo-features.h +29 -0
  23. package/include/cairo/cairo-ft.h +118 -0
  24. package/include/cairo/cairo-gobject.h +192 -0
  25. package/include/cairo/cairo-svg.h +130 -0
  26. package/include/cairo/cairo-version.h +8 -0
  27. package/include/cairo/cairo.h +3281 -0
  28. package/include/cgif.h +80 -0
  29. package/include/expat.h +1064 -0
  30. package/include/expat_config.h +140 -0
  31. package/include/expat_external.h +165 -0
  32. package/include/ffi.h +531 -0
  33. package/include/ffitarget.h +164 -0
  34. package/include/fontconfig/fcfreetype.h +59 -0
  35. package/include/fontconfig/fcprivate.h +134 -0
  36. package/include/fontconfig/fontconfig.h +1158 -0
  37. package/include/freetype2/freetype/config/ftconfig.h +51 -0
  38. package/include/freetype2/freetype/config/ftheader.h +836 -0
  39. package/include/freetype2/freetype/config/ftmodule.h +21 -0
  40. package/include/freetype2/freetype/config/ftoption.h +1014 -0
  41. package/include/freetype2/freetype/config/ftstdlib.h +185 -0
  42. package/include/freetype2/freetype/config/integer-types.h +250 -0
  43. package/include/freetype2/freetype/config/mac-support.h +49 -0
  44. package/include/freetype2/freetype/config/public-macros.h +138 -0
  45. package/include/freetype2/freetype/freetype.h +5337 -0
  46. package/include/freetype2/freetype/ftadvanc.h +188 -0
  47. package/include/freetype2/freetype/ftbbox.h +101 -0
  48. package/include/freetype2/freetype/ftbdf.h +212 -0
  49. package/include/freetype2/freetype/ftbitmap.h +329 -0
  50. package/include/freetype2/freetype/ftbzip2.h +102 -0
  51. package/include/freetype2/freetype/ftcache.h +1087 -0
  52. package/include/freetype2/freetype/ftchapters.h +168 -0
  53. package/include/freetype2/freetype/ftcid.h +167 -0
  54. package/include/freetype2/freetype/ftcolor.h +1667 -0
  55. package/include/freetype2/freetype/ftdriver.h +1246 -0
  56. package/include/freetype2/freetype/fterrdef.h +283 -0
  57. package/include/freetype2/freetype/fterrors.h +296 -0
  58. package/include/freetype2/freetype/ftfntfmt.h +93 -0
  59. package/include/freetype2/freetype/ftgasp.h +143 -0
  60. package/include/freetype2/freetype/ftglyph.h +750 -0
  61. package/include/freetype2/freetype/ftgxval.h +354 -0
  62. package/include/freetype2/freetype/ftgzip.h +151 -0
  63. package/include/freetype2/freetype/ftimage.h +1284 -0
  64. package/include/freetype2/freetype/ftincrem.h +348 -0
  65. package/include/freetype2/freetype/ftlcdfil.h +323 -0
  66. package/include/freetype2/freetype/ftlist.h +296 -0
  67. package/include/freetype2/freetype/ftlzw.h +100 -0
  68. package/include/freetype2/freetype/ftmac.h +289 -0
  69. package/include/freetype2/freetype/ftmm.h +805 -0
  70. package/include/freetype2/freetype/ftmodapi.h +807 -0
  71. package/include/freetype2/freetype/ftmoderr.h +204 -0
  72. package/include/freetype2/freetype/ftotval.h +206 -0
  73. package/include/freetype2/freetype/ftoutln.h +588 -0
  74. package/include/freetype2/freetype/ftparams.h +218 -0
  75. package/include/freetype2/freetype/ftpfr.h +179 -0
  76. package/include/freetype2/freetype/ftrender.h +244 -0
  77. package/include/freetype2/freetype/ftsizes.h +159 -0
  78. package/include/freetype2/freetype/ftsnames.h +272 -0
  79. package/include/freetype2/freetype/ftstroke.h +773 -0
  80. package/include/freetype2/freetype/ftsynth.h +104 -0
  81. package/include/freetype2/freetype/ftsystem.h +350 -0
  82. package/include/freetype2/freetype/fttrigon.h +350 -0
  83. package/include/freetype2/freetype/fttypes.h +617 -0
  84. package/include/freetype2/freetype/ftwinfnt.h +276 -0
  85. package/include/freetype2/freetype/otsvg.h +336 -0
  86. package/include/freetype2/freetype/t1tables.h +793 -0
  87. package/include/freetype2/freetype/ttnameid.h +1235 -0
  88. package/include/freetype2/freetype/tttables.h +855 -0
  89. package/include/freetype2/freetype/tttags.h +124 -0
  90. package/include/freetype2/ft2build.h +42 -0
  91. package/include/fribidi/fribidi-arabic.h +81 -0
  92. package/include/fribidi/fribidi-begindecls.h +3 -0
  93. package/include/fribidi/fribidi-bidi-types-list.h +96 -0
  94. package/include/fribidi/fribidi-bidi-types.h +405 -0
  95. package/include/fribidi/fribidi-bidi.h +142 -0
  96. package/include/fribidi/fribidi-brackets.h +89 -0
  97. package/include/fribidi/fribidi-char-sets-list.h +54 -0
  98. package/include/fribidi/fribidi-char-sets.h +106 -0
  99. package/include/fribidi/fribidi-common.h +152 -0
  100. package/include/fribidi/fribidi-config.h +23 -0
  101. package/include/fribidi/fribidi-deprecated.h +175 -0
  102. package/include/fribidi/fribidi-enddecls.h +3 -0
  103. package/include/fribidi/fribidi-flags.h +72 -0
  104. package/include/fribidi/fribidi-joining-types-list.h +44 -0
  105. package/include/fribidi/fribidi-joining-types.h +249 -0
  106. package/include/fribidi/fribidi-joining.h +74 -0
  107. package/include/fribidi/fribidi-mirroring.h +86 -0
  108. package/include/fribidi/fribidi-shape.h +71 -0
  109. package/include/fribidi/fribidi-types.h +79 -0
  110. package/include/fribidi/fribidi-unicode-version.h +10 -0
  111. package/include/fribidi/fribidi-unicode.h +105 -0
  112. package/include/fribidi/fribidi.h +129 -0
  113. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h +221 -0
  114. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-autocleanups.h +37 -0
  115. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h +525 -0
  116. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h +40 -0
  117. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h +115 -0
  118. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h +481 -0
  119. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h +113 -0
  120. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-macros.h +718 -0
  121. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-marshal.h +33 -0
  122. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h +70 -0
  123. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h +168 -0
  124. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h +46 -0
  125. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixdata.h +165 -0
  126. package/include/gio-unix-2.0/gio/gdesktopappinfo.h +200 -0
  127. package/include/gio-unix-2.0/gio/gfiledescriptorbased.h +67 -0
  128. package/include/gio-unix-2.0/gio/gunixfdmessage.h +86 -0
  129. package/include/gio-unix-2.0/gio/gunixinputstream.h +85 -0
  130. package/include/gio-unix-2.0/gio/gunixmounts.h +172 -0
  131. package/include/gio-unix-2.0/gio/gunixoutputstream.h +84 -0
  132. package/include/glib-2.0/gio/gaction.h +100 -0
  133. package/include/glib-2.0/gio/gactiongroup.h +163 -0
  134. package/include/glib-2.0/gio/gactiongroupexporter.h +47 -0
  135. package/include/glib-2.0/gio/gactionmap.h +101 -0
  136. package/include/glib-2.0/gio/gappinfo.h +369 -0
  137. package/include/glib-2.0/gio/gapplication.h +257 -0
  138. package/include/glib-2.0/gio/gapplicationcommandline.h +124 -0
  139. package/include/glib-2.0/gio/gasyncinitable.h +132 -0
  140. package/include/glib-2.0/gio/gasyncresult.h +87 -0
  141. package/include/glib-2.0/gio/gbufferedinputstream.h +135 -0
  142. package/include/glib-2.0/gio/gbufferedoutputstream.h +88 -0
  143. package/include/glib-2.0/gio/gbytesicon.h +54 -0
  144. package/include/glib-2.0/gio/gcancellable.h +120 -0
  145. package/include/glib-2.0/gio/gcharsetconverter.h +65 -0
  146. package/include/glib-2.0/gio/gcontenttype.h +84 -0
  147. package/include/glib-2.0/gio/gconverter.h +98 -0
  148. package/include/glib-2.0/gio/gconverterinputstream.h +82 -0
  149. package/include/glib-2.0/gio/gconverteroutputstream.h +82 -0
  150. package/include/glib-2.0/gio/gcredentials.h +87 -0
  151. package/include/glib-2.0/gio/gdatagrambased.h +146 -0
  152. package/include/glib-2.0/gio/gdatainputstream.h +182 -0
  153. package/include/glib-2.0/gio/gdataoutputstream.h +127 -0
  154. package/include/glib-2.0/gio/gdbusactiongroup.h +56 -0
  155. package/include/glib-2.0/gio/gdbusaddress.h +67 -0
  156. package/include/glib-2.0/gio/gdbusauthobserver.h +53 -0
  157. package/include/glib-2.0/gio/gdbusconnection.h +691 -0
  158. package/include/glib-2.0/gio/gdbuserror.h +111 -0
  159. package/include/glib-2.0/gio/gdbusinterface.h +83 -0
  160. package/include/glib-2.0/gio/gdbusinterfaceskeleton.h +129 -0
  161. package/include/glib-2.0/gio/gdbusintrospection.h +327 -0
  162. package/include/glib-2.0/gio/gdbusmenumodel.h +47 -0
  163. package/include/glib-2.0/gio/gdbusmessage.h +204 -0
  164. package/include/glib-2.0/gio/gdbusmethodinvocation.h +136 -0
  165. package/include/glib-2.0/gio/gdbusnameowning.h +117 -0
  166. package/include/glib-2.0/gio/gdbusnamewatching.h +104 -0
  167. package/include/glib-2.0/gio/gdbusobject.h +80 -0
  168. package/include/glib-2.0/gio/gdbusobjectmanager.h +96 -0
  169. package/include/glib-2.0/gio/gdbusobjectmanagerclient.h +148 -0
  170. package/include/glib-2.0/gio/gdbusobjectmanagerserver.h +95 -0
  171. package/include/glib-2.0/gio/gdbusobjectproxy.h +81 -0
  172. package/include/glib-2.0/gio/gdbusobjectskeleton.h +98 -0
  173. package/include/glib-2.0/gio/gdbusproxy.h +220 -0
  174. package/include/glib-2.0/gio/gdbusserver.h +62 -0
  175. package/include/glib-2.0/gio/gdbusutils.h +65 -0
  176. package/include/glib-2.0/gio/gdebugcontroller.h +81 -0
  177. package/include/glib-2.0/gio/gdebugcontrollerdbus.h +71 -0
  178. package/include/glib-2.0/gio/gdrive.h +274 -0
  179. package/include/glib-2.0/gio/gdtlsclientconnection.h +77 -0
  180. package/include/glib-2.0/gio/gdtlsconnection.h +230 -0
  181. package/include/glib-2.0/gio/gdtlsserverconnection.h +71 -0
  182. package/include/glib-2.0/gio/gemblem.h +63 -0
  183. package/include/glib-2.0/gio/gemblemedicon.h +83 -0
  184. package/include/glib-2.0/gio/gfile.h +1359 -0
  185. package/include/glib-2.0/gio/gfileattribute.h +86 -0
  186. package/include/glib-2.0/gio/gfileenumerator.h +154 -0
  187. package/include/glib-2.0/gio/gfileicon.h +59 -0
  188. package/include/glib-2.0/gio/gfileinfo.h +1546 -0
  189. package/include/glib-2.0/gio/gfileinputstream.h +116 -0
  190. package/include/glib-2.0/gio/gfileiostream.h +123 -0
  191. package/include/glib-2.0/gio/gfilemonitor.h +100 -0
  192. package/include/glib-2.0/gio/gfilenamecompleter.h +81 -0
  193. package/include/glib-2.0/gio/gfileoutputstream.h +124 -0
  194. package/include/glib-2.0/gio/gfilterinputstream.h +80 -0
  195. package/include/glib-2.0/gio/gfilteroutputstream.h +80 -0
  196. package/include/glib-2.0/gio/gicon.h +133 -0
  197. package/include/glib-2.0/gio/ginetaddress.h +125 -0
  198. package/include/glib-2.0/gio/ginetaddressmask.h +86 -0
  199. package/include/glib-2.0/gio/ginetsocketaddress.h +80 -0
  200. package/include/glib-2.0/gio/ginitable.h +107 -0
  201. package/include/glib-2.0/gio/ginputstream.h +218 -0
  202. package/include/glib-2.0/gio/gio-autocleanups.h +155 -0
  203. package/include/glib-2.0/gio/gio-visibility.h +952 -0
  204. package/include/glib-2.0/gio/gio.h +186 -0
  205. package/include/glib-2.0/gio/gioenums.h +2149 -0
  206. package/include/glib-2.0/gio/gioenumtypes.h +207 -0
  207. package/include/glib-2.0/gio/gioerror.h +58 -0
  208. package/include/glib-2.0/gio/giomodule.h +199 -0
  209. package/include/glib-2.0/gio/gioscheduler.h +56 -0
  210. package/include/glib-2.0/gio/giostream.h +137 -0
  211. package/include/glib-2.0/gio/giotypes.h +660 -0
  212. package/include/glib-2.0/gio/glistmodel.h +74 -0
  213. package/include/glib-2.0/gio/gliststore.h +97 -0
  214. package/include/glib-2.0/gio/gloadableicon.h +101 -0
  215. package/include/glib-2.0/gio/gmemoryinputstream.h +92 -0
  216. package/include/glib-2.0/gio/gmemorymonitor.h +64 -0
  217. package/include/glib-2.0/gio/gmemoryoutputstream.h +109 -0
  218. package/include/glib-2.0/gio/gmenu.h +184 -0
  219. package/include/glib-2.0/gio/gmenuexporter.h +55 -0
  220. package/include/glib-2.0/gio/gmenumodel.h +307 -0
  221. package/include/glib-2.0/gio/gmount.h +278 -0
  222. package/include/glib-2.0/gio/gmountoperation.h +179 -0
  223. package/include/glib-2.0/gio/gnativesocketaddress.h +67 -0
  224. package/include/glib-2.0/gio/gnativevolumemonitor.h +63 -0
  225. package/include/glib-2.0/gio/gnetworkaddress.h +82 -0
  226. package/include/glib-2.0/gio/gnetworking.h +81 -0
  227. package/include/glib-2.0/gio/gnetworkmonitor.h +101 -0
  228. package/include/glib-2.0/gio/gnetworkservice.h +77 -0
  229. package/include/glib-2.0/gio/gnotification.h +103 -0
  230. package/include/glib-2.0/gio/goutputstream.h +334 -0
  231. package/include/glib-2.0/gio/gpermission.h +129 -0
  232. package/include/glib-2.0/gio/gpollableinputstream.h +106 -0
  233. package/include/glib-2.0/gio/gpollableoutputstream.h +127 -0
  234. package/include/glib-2.0/gio/gpollableutils.h +66 -0
  235. package/include/glib-2.0/gio/gpowerprofilemonitor.h +65 -0
  236. package/include/glib-2.0/gio/gpropertyaction.h +49 -0
  237. package/include/glib-2.0/gio/gproxy.h +130 -0
  238. package/include/glib-2.0/gio/gproxyaddress.h +88 -0
  239. package/include/glib-2.0/gio/gproxyaddressenumerator.h +83 -0
  240. package/include/glib-2.0/gio/gproxyresolver.h +97 -0
  241. package/include/glib-2.0/gio/gremoteactiongroup.h +77 -0
  242. package/include/glib-2.0/gio/gresolver.h +299 -0
  243. package/include/glib-2.0/gio/gresource.h +132 -0
  244. package/include/glib-2.0/gio/gseekable.h +105 -0
  245. package/include/glib-2.0/gio/gsettings.h +347 -0
  246. package/include/glib-2.0/gio/gsettingsbackend.h +176 -0
  247. package/include/glib-2.0/gio/gsettingsschema.h +115 -0
  248. package/include/glib-2.0/gio/gsimpleaction.h +65 -0
  249. package/include/glib-2.0/gio/gsimpleactiongroup.h +99 -0
  250. package/include/glib-2.0/gio/gsimpleasyncresult.h +164 -0
  251. package/include/glib-2.0/gio/gsimpleiostream.h +47 -0
  252. package/include/glib-2.0/gio/gsimplepermission.h +47 -0
  253. package/include/glib-2.0/gio/gsimpleproxyresolver.h +91 -0
  254. package/include/glib-2.0/gio/gsocket.h +330 -0
  255. package/include/glib-2.0/gio/gsocketaddress.h +84 -0
  256. package/include/glib-2.0/gio/gsocketaddressenumerator.h +103 -0
  257. package/include/glib-2.0/gio/gsocketclient.h +199 -0
  258. package/include/glib-2.0/gio/gsocketconnectable.h +83 -0
  259. package/include/glib-2.0/gio/gsocketconnection.h +117 -0
  260. package/include/glib-2.0/gio/gsocketcontrolmessage.h +113 -0
  261. package/include/glib-2.0/gio/gsocketlistener.h +157 -0
  262. package/include/glib-2.0/gio/gsocketservice.h +95 -0
  263. package/include/glib-2.0/gio/gsrvtarget.h +60 -0
  264. package/include/glib-2.0/gio/gsubprocess.h +169 -0
  265. package/include/glib-2.0/gio/gsubprocesslauncher.h +121 -0
  266. package/include/glib-2.0/gio/gtask.h +207 -0
  267. package/include/glib-2.0/gio/gtcpconnection.h +71 -0
  268. package/include/glib-2.0/gio/gtcpwrapperconnection.h +71 -0
  269. package/include/glib-2.0/gio/gtestdbus.h +74 -0
  270. package/include/glib-2.0/gio/gthemedicon.h +70 -0
  271. package/include/glib-2.0/gio/gthreadedsocketservice.h +83 -0
  272. package/include/glib-2.0/gio/gtlsbackend.h +115 -0
  273. package/include/glib-2.0/gio/gtlscertificate.h +125 -0
  274. package/include/glib-2.0/gio/gtlsclientconnection.h +88 -0
  275. package/include/glib-2.0/gio/gtlsconnection.h +214 -0
  276. package/include/glib-2.0/gio/gtlsdatabase.h +249 -0
  277. package/include/glib-2.0/gio/gtlsfiledatabase.h +60 -0
  278. package/include/glib-2.0/gio/gtlsinteraction.h +150 -0
  279. package/include/glib-2.0/gio/gtlspassword.h +121 -0
  280. package/include/glib-2.0/gio/gtlsserverconnection.h +71 -0
  281. package/include/glib-2.0/gio/gunixconnection.h +102 -0
  282. package/include/glib-2.0/gio/gunixcredentialsmessage.h +89 -0
  283. package/include/glib-2.0/gio/gunixfdlist.h +97 -0
  284. package/include/glib-2.0/gio/gunixsocketaddress.h +83 -0
  285. package/include/glib-2.0/gio/gvfs.h +170 -0
  286. package/include/glib-2.0/gio/gvolume.h +255 -0
  287. package/include/glib-2.0/gio/gvolumemonitor.h +156 -0
  288. package/include/glib-2.0/gio/gzlibcompressor.h +64 -0
  289. package/include/glib-2.0/gio/gzlibdecompressor.h +60 -0
  290. package/include/glib-2.0/glib/deprecated/gallocator.h +88 -0
  291. package/include/glib-2.0/glib/deprecated/gcache.h +77 -0
  292. package/include/glib-2.0/glib/deprecated/gcompletion.h +85 -0
  293. package/include/glib-2.0/glib/deprecated/gmain.h +137 -0
  294. package/include/glib-2.0/glib/deprecated/grel.h +107 -0
  295. package/include/glib-2.0/glib/deprecated/gthread.h +295 -0
  296. package/include/glib-2.0/glib/galloca.h +147 -0
  297. package/include/glib-2.0/glib/garray.h +323 -0
  298. package/include/glib-2.0/glib/gasyncqueue.h +126 -0
  299. package/include/glib-2.0/glib/gatomic.h +587 -0
  300. package/include/glib-2.0/glib/gbacktrace.h +74 -0
  301. package/include/glib-2.0/glib/gbase64.h +63 -0
  302. package/include/glib-2.0/glib/gbitlock.h +78 -0
  303. package/include/glib-2.0/glib/gbookmarkfile.h +300 -0
  304. package/include/glib-2.0/glib/gbytes.h +99 -0
  305. package/include/glib-2.0/glib/gcharset.h +49 -0
  306. package/include/glib-2.0/glib/gchecksum.h +106 -0
  307. package/include/glib-2.0/glib/gconvert.h +179 -0
  308. package/include/glib-2.0/glib/gdataset.h +156 -0
  309. package/include/glib-2.0/glib/gdate.h +309 -0
  310. package/include/glib-2.0/glib/gdatetime.h +275 -0
  311. package/include/glib-2.0/glib/gdir.h +54 -0
  312. package/include/glib-2.0/glib/genviron.h +65 -0
  313. package/include/glib-2.0/glib/gerror.h +263 -0
  314. package/include/glib-2.0/glib/gfileutils.h +223 -0
  315. package/include/glib-2.0/glib/ggettext.h +65 -0
  316. package/include/glib-2.0/glib/ghash.h +206 -0
  317. package/include/glib-2.0/glib/ghmac.h +85 -0
  318. package/include/glib-2.0/glib/ghook.h +204 -0
  319. package/include/glib-2.0/glib/ghostutils.h +45 -0
  320. package/include/glib-2.0/glib/gi18n-lib.h +38 -0
  321. package/include/glib-2.0/glib/gi18n.h +34 -0
  322. package/include/glib-2.0/glib/giochannel.h +407 -0
  323. package/include/glib-2.0/glib/gkeyfile.h +332 -0
  324. package/include/glib-2.0/glib/glib-autocleanups.h +105 -0
  325. package/include/glib-2.0/glib/glib-typeof.h +47 -0
  326. package/include/glib-2.0/glib/glib-visibility.h +952 -0
  327. package/include/glib-2.0/glib/glist.h +179 -0
  328. package/include/glib-2.0/glib/gmacros.h +1425 -0
  329. package/include/glib-2.0/glib/gmain.h +862 -0
  330. package/include/glib-2.0/glib/gmappedfile.h +60 -0
  331. package/include/glib-2.0/glib/gmarkup.h +265 -0
  332. package/include/glib-2.0/glib/gmem.h +425 -0
  333. package/include/glib-2.0/glib/gmessages.h +690 -0
  334. package/include/glib-2.0/glib/gnode.h +309 -0
  335. package/include/glib-2.0/glib/goption.h +409 -0
  336. package/include/glib-2.0/glib/gpathbuf.h +90 -0
  337. package/include/glib-2.0/glib/gpattern.h +65 -0
  338. package/include/glib-2.0/glib/gpoll.h +122 -0
  339. package/include/glib-2.0/glib/gprimes.h +52 -0
  340. package/include/glib-2.0/glib/gprintf.h +59 -0
  341. package/include/glib-2.0/glib/gqsort.h +47 -0
  342. package/include/glib-2.0/glib/gquark.h +70 -0
  343. package/include/glib-2.0/glib/gqueue.h +205 -0
  344. package/include/glib-2.0/glib/grand.h +101 -0
  345. package/include/glib-2.0/glib/grcbox.h +91 -0
  346. package/include/glib-2.0/glib/grefcount.h +179 -0
  347. package/include/glib-2.0/glib/grefstring.h +59 -0
  348. package/include/glib-2.0/glib/gscanner.h +301 -0
  349. package/include/glib-2.0/glib/gsequence.h +175 -0
  350. package/include/glib-2.0/glib/gshell.h +59 -0
  351. package/include/glib-2.0/glib/gslice.h +117 -0
  352. package/include/glib-2.0/glib/gslist.h +166 -0
  353. package/include/glib-2.0/glib/gspawn.h +323 -0
  354. package/include/glib-2.0/glib/gstdio.h +231 -0
  355. package/include/glib-2.0/glib/gstrfuncs.h +504 -0
  356. package/include/glib-2.0/glib/gstring.h +296 -0
  357. package/include/glib-2.0/glib/gstringchunk.h +59 -0
  358. package/include/glib-2.0/glib/gstrvbuilder.h +69 -0
  359. package/include/glib-2.0/glib/gtestutils.h +763 -0
  360. package/include/glib-2.0/glib/gthread.h +603 -0
  361. package/include/glib-2.0/glib/gthreadpool.h +105 -0
  362. package/include/glib-2.0/glib/gtimer.h +80 -0
  363. package/include/glib-2.0/glib/gtimezone.h +98 -0
  364. package/include/glib-2.0/glib/gtrashstack.h +60 -0
  365. package/include/glib-2.0/glib/gtree.h +181 -0
  366. package/include/glib-2.0/glib/gtypes.h +591 -0
  367. package/include/glib-2.0/glib/gunicode.h +974 -0
  368. package/include/glib-2.0/glib/guri.h +420 -0
  369. package/include/glib-2.0/glib/gutils.h +479 -0
  370. package/include/glib-2.0/glib/guuid.h +42 -0
  371. package/include/glib-2.0/glib/gvariant.h +541 -0
  372. package/include/glib-2.0/glib/gvarianttype.h +384 -0
  373. package/include/glib-2.0/glib/gversion.h +57 -0
  374. package/include/glib-2.0/glib/gversionmacros.h +490 -0
  375. package/include/glib-2.0/glib/gwin32.h +142 -0
  376. package/include/glib-2.0/glib-object.h +46 -0
  377. package/include/glib-2.0/glib-unix.h +125 -0
  378. package/include/glib-2.0/glib.h +121 -0
  379. package/include/glib-2.0/gmodule/gmodule-visibility.h +952 -0
  380. package/include/glib-2.0/gmodule.h +147 -0
  381. package/include/glib-2.0/gobject/gbinding.h +156 -0
  382. package/include/glib-2.0/gobject/gbindinggroup.h +85 -0
  383. package/include/glib-2.0/gobject/gboxed.h +124 -0
  384. package/include/glib-2.0/gobject/gclosure.h +323 -0
  385. package/include/glib-2.0/gobject/genums.h +381 -0
  386. package/include/glib-2.0/gobject/glib-enumtypes.h +25 -0
  387. package/include/glib-2.0/gobject/glib-types.h +400 -0
  388. package/include/glib-2.0/gobject/gmarshal.h +434 -0
  389. package/include/glib-2.0/gobject/gobject-autocleanups.h +33 -0
  390. package/include/glib-2.0/gobject/gobject-visibility.h +952 -0
  391. package/include/glib-2.0/gobject/gobject.h +953 -0
  392. package/include/glib-2.0/gobject/gobjectnotifyqueue.c +199 -0
  393. package/include/glib-2.0/gobject/gparam.h +476 -0
  394. package/include/glib-2.0/gobject/gparamspecs.h +1151 -0
  395. package/include/glib-2.0/gobject/gsignal.h +647 -0
  396. package/include/glib-2.0/gobject/gsignalgroup.h +98 -0
  397. package/include/glib-2.0/gobject/gsourceclosure.h +40 -0
  398. package/include/glib-2.0/gobject/gtype.h +2703 -0
  399. package/include/glib-2.0/gobject/gtypemodule.h +302 -0
  400. package/include/glib-2.0/gobject/gtypeplugin.h +136 -0
  401. package/include/glib-2.0/gobject/gvalue.h +212 -0
  402. package/include/glib-2.0/gobject/gvaluearray.h +106 -0
  403. package/include/glib-2.0/gobject/gvaluecollector.h +290 -0
  404. package/include/glib-2.0/gobject/gvaluetypes.h +318 -0
  405. package/include/harfbuzz/hb-aat-layout.h +795 -0
  406. package/include/harfbuzz/hb-aat.h +38 -0
  407. package/include/harfbuzz/hb-blob.h +160 -0
  408. package/include/harfbuzz/hb-buffer.h +799 -0
  409. package/include/harfbuzz/hb-common.h +938 -0
  410. package/include/harfbuzz/hb-cplusplus.hh +223 -0
  411. package/include/harfbuzz/hb-deprecated.h +309 -0
  412. package/include/harfbuzz/hb-draw.h +340 -0
  413. package/include/harfbuzz/hb-face.h +187 -0
  414. package/include/harfbuzz/hb-features.h +119 -0
  415. package/include/harfbuzz/hb-font.h +1153 -0
  416. package/include/harfbuzz/hb-ft.h +145 -0
  417. package/include/harfbuzz/hb-glib.h +56 -0
  418. package/include/harfbuzz/hb-map.h +143 -0
  419. package/include/harfbuzz/hb-ot-color.h +155 -0
  420. package/include/harfbuzz/hb-ot-deprecated.h +147 -0
  421. package/include/harfbuzz/hb-ot-font.h +45 -0
  422. package/include/harfbuzz/hb-ot-layout.h +549 -0
  423. package/include/harfbuzz/hb-ot-math.h +333 -0
  424. package/include/harfbuzz/hb-ot-meta.h +72 -0
  425. package/include/harfbuzz/hb-ot-metrics.h +129 -0
  426. package/include/harfbuzz/hb-ot-name.h +164 -0
  427. package/include/harfbuzz/hb-ot-shape.h +53 -0
  428. package/include/harfbuzz/hb-ot-var.h +191 -0
  429. package/include/harfbuzz/hb-ot.h +49 -0
  430. package/include/harfbuzz/hb-paint.h +1029 -0
  431. package/include/harfbuzz/hb-set.h +203 -0
  432. package/include/harfbuzz/hb-shape-plan.h +122 -0
  433. package/include/harfbuzz/hb-shape.h +74 -0
  434. package/include/harfbuzz/hb-style.h +81 -0
  435. package/include/harfbuzz/hb-subset-repacker.h +81 -0
  436. package/include/harfbuzz/hb-subset.h +241 -0
  437. package/include/harfbuzz/hb-unicode.h +643 -0
  438. package/include/harfbuzz/hb-version.h +95 -0
  439. package/include/harfbuzz/hb.h +51 -0
  440. package/include/index.js +1 -0
  441. package/include/jconfig.h +37 -0
  442. package/include/jerror.h +335 -0
  443. package/include/jmorecfg.h +382 -0
  444. package/include/jpeglib.h +1210 -0
  445. package/include/lcms2.h +1958 -0
  446. package/include/lcms2_plugin.h +700 -0
  447. package/include/libexif/_stdint.h +2 -0
  448. package/include/libexif/exif-byte-order.h +48 -0
  449. package/include/libexif/exif-content.h +181 -0
  450. package/include/libexif/exif-data-type.h +46 -0
  451. package/include/libexif/exif-data.h +267 -0
  452. package/include/libexif/exif-entry.h +186 -0
  453. package/include/libexif/exif-format.h +65 -0
  454. package/include/libexif/exif-ifd.h +51 -0
  455. package/include/libexif/exif-loader.h +128 -0
  456. package/include/libexif/exif-log.h +116 -0
  457. package/include/libexif/exif-mem.h +91 -0
  458. package/include/libexif/exif-mnote-data.h +122 -0
  459. package/include/libexif/exif-tag.h +307 -0
  460. package/include/libexif/exif-utils.h +194 -0
  461. package/include/libheif/heif.h +2092 -0
  462. package/include/libheif/heif_cxx.h +1359 -0
  463. package/include/libheif/heif_plugin.h +306 -0
  464. package/include/libheif/heif_version.h +38 -0
  465. package/include/libimagequant.h +111 -0
  466. package/include/libpng16/png.h +3247 -0
  467. package/include/libpng16/pngconf.h +623 -0
  468. package/include/libpng16/pnglibconf.h +219 -0
  469. package/include/librsvg-2.0/librsvg/rsvg-cairo.h +395 -0
  470. package/include/librsvg-2.0/librsvg/rsvg-features.h +184 -0
  471. package/include/librsvg-2.0/librsvg/rsvg-version.h +13 -0
  472. package/include/librsvg-2.0/librsvg/rsvg.h +1456 -0
  473. package/include/libxml2/libxml/HTMLparser.h +320 -0
  474. package/include/libxml2/libxml/HTMLtree.h +147 -0
  475. package/include/libxml2/libxml/SAX.h +204 -0
  476. package/include/libxml2/libxml/SAX2.h +173 -0
  477. package/include/libxml2/libxml/c14n.h +128 -0
  478. package/include/libxml2/libxml/catalog.h +182 -0
  479. package/include/libxml2/libxml/chvalid.h +230 -0
  480. package/include/libxml2/libxml/debugXML.h +217 -0
  481. package/include/libxml2/libxml/dict.h +81 -0
  482. package/include/libxml2/libxml/encoding.h +233 -0
  483. package/include/libxml2/libxml/entities.h +151 -0
  484. package/include/libxml2/libxml/globals.h +529 -0
  485. package/include/libxml2/libxml/hash.h +236 -0
  486. package/include/libxml2/libxml/list.h +137 -0
  487. package/include/libxml2/libxml/nanoftp.h +186 -0
  488. package/include/libxml2/libxml/nanohttp.h +81 -0
  489. package/include/libxml2/libxml/parser.h +1265 -0
  490. package/include/libxml2/libxml/parserInternals.h +662 -0
  491. package/include/libxml2/libxml/pattern.h +100 -0
  492. package/include/libxml2/libxml/relaxng.h +218 -0
  493. package/include/libxml2/libxml/schemasInternals.h +958 -0
  494. package/include/libxml2/libxml/schematron.h +142 -0
  495. package/include/libxml2/libxml/threads.h +94 -0
  496. package/include/libxml2/libxml/tree.h +1314 -0
  497. package/include/libxml2/libxml/uri.h +94 -0
  498. package/include/libxml2/libxml/valid.h +448 -0
  499. package/include/libxml2/libxml/xinclude.h +129 -0
  500. package/include/libxml2/libxml/xlink.h +189 -0
  501. package/include/libxml2/libxml/xmlIO.h +369 -0
  502. package/include/libxml2/libxml/xmlautomata.h +146 -0
  503. package/include/libxml2/libxml/xmlerror.h +919 -0
  504. package/include/libxml2/libxml/xmlexports.h +50 -0
  505. package/include/libxml2/libxml/xmlmemory.h +228 -0
  506. package/include/libxml2/libxml/xmlmodule.h +57 -0
  507. package/include/libxml2/libxml/xmlreader.h +428 -0
  508. package/include/libxml2/libxml/xmlregexp.h +222 -0
  509. package/include/libxml2/libxml/xmlsave.h +88 -0
  510. package/include/libxml2/libxml/xmlschemas.h +246 -0
  511. package/include/libxml2/libxml/xmlschemastypes.h +152 -0
  512. package/include/libxml2/libxml/xmlstring.h +140 -0
  513. package/include/libxml2/libxml/xmlunicode.h +202 -0
  514. package/include/libxml2/libxml/xmlversion.h +526 -0
  515. package/include/libxml2/libxml/xmlwriter.h +488 -0
  516. package/include/libxml2/libxml/xpath.h +575 -0
  517. package/include/libxml2/libxml/xpathInternals.h +632 -0
  518. package/include/libxml2/libxml/xpointer.h +137 -0
  519. package/include/orc-0.4/orc/orc-stdint.h +1 -0
  520. package/include/orc-0.4/orc/orc.h +16 -0
  521. package/include/orc-0.4/orc/orcarm.h +879 -0
  522. package/include/orc-0.4/orc/orcbytecode.h +35 -0
  523. package/include/orc-0.4/orc/orcbytecodes.h +255 -0
  524. package/include/orc-0.4/orc/orccode.h +53 -0
  525. package/include/orc-0.4/orc/orccompiler.h +176 -0
  526. package/include/orc-0.4/orc/orcconstant.h +39 -0
  527. package/include/orc-0.4/orc/orccpu.h +21 -0
  528. package/include/orc-0.4/orc/orccpuinsn.h +40 -0
  529. package/include/orc-0.4/orc/orcdebug.h +158 -0
  530. package/include/orc-0.4/orc/orcemulateopcodes.h +203 -0
  531. package/include/orc-0.4/orc/orcexecutor.h +135 -0
  532. package/include/orc-0.4/orc/orcfunctions.h +93 -0
  533. package/include/orc-0.4/orc/orcinstruction.h +39 -0
  534. package/include/orc-0.4/orc/orcinternal.h +46 -0
  535. package/include/orc-0.4/orc/orclimits.h +94 -0
  536. package/include/orc-0.4/orc/orcmips.h +229 -0
  537. package/include/orc-0.4/orc/orcmmx.h +79 -0
  538. package/include/orc-0.4/orc/orcneon.h +43 -0
  539. package/include/orc-0.4/orc/orconce.h +166 -0
  540. package/include/orc-0.4/orc/orcopcode.h +63 -0
  541. package/include/orc-0.4/orc/orcparse.h +27 -0
  542. package/include/orc-0.4/orc/orcpowerpc.h +209 -0
  543. package/include/orc-0.4/orc/orcprogram.h +192 -0
  544. package/include/orc-0.4/orc/orcrule.h +52 -0
  545. package/include/orc-0.4/orc/orcsse.h +55 -0
  546. package/include/orc-0.4/orc/orctarget.h +115 -0
  547. package/include/orc-0.4/orc/orcutils.h +238 -0
  548. package/include/orc-0.4/orc/orcvariable.h +81 -0
  549. package/include/orc-0.4/orc/orcx86.h +199 -0
  550. package/include/orc-0.4/orc/orcx86insn.h +672 -0
  551. package/include/pango-1.0/pango/pango-attributes.h +748 -0
  552. package/include/pango-1.0/pango/pango-bidi-type.h +117 -0
  553. package/include/pango-1.0/pango/pango-break.h +144 -0
  554. package/include/pango-1.0/pango/pango-color.h +75 -0
  555. package/include/pango-1.0/pango/pango-context.h +116 -0
  556. package/include/pango-1.0/pango/pango-coverage.h +108 -0
  557. package/include/pango-1.0/pango/pango-direction.h +72 -0
  558. package/include/pango-1.0/pango/pango-engine.h +457 -0
  559. package/include/pango-1.0/pango/pango-enum-types.h +120 -0
  560. package/include/pango-1.0/pango/pango-features.h +10 -0
  561. package/include/pango-1.0/pango/pango-font.h +699 -0
  562. package/include/pango-1.0/pango/pango-fontmap.h +132 -0
  563. package/include/pango-1.0/pango/pango-fontset-simple.h +64 -0
  564. package/include/pango-1.0/pango/pango-fontset.h +134 -0
  565. package/include/pango-1.0/pango/pango-glyph-item.h +175 -0
  566. package/include/pango-1.0/pango/pango-glyph.h +270 -0
  567. package/include/pango-1.0/pango/pango-gravity.h +137 -0
  568. package/include/pango-1.0/pango/pango-item.h +165 -0
  569. package/include/pango-1.0/pango/pango-language.h +70 -0
  570. package/include/pango-1.0/pango/pango-layout.h +554 -0
  571. package/include/pango-1.0/pango/pango-markup.h +52 -0
  572. package/include/pango-1.0/pango/pango-matrix.h +130 -0
  573. package/include/pango-1.0/pango/pango-modules.h +84 -0
  574. package/include/pango-1.0/pango/pango-ot.h +427 -0
  575. package/include/pango-1.0/pango/pango-renderer.h +290 -0
  576. package/include/pango-1.0/pango/pango-script.h +335 -0
  577. package/include/pango-1.0/pango/pango-tabs.h +117 -0
  578. package/include/pango-1.0/pango/pango-types.h +244 -0
  579. package/include/pango-1.0/pango/pango-utils.h +187 -0
  580. package/include/pango-1.0/pango/pango-version-macros.h +756 -0
  581. package/include/pango-1.0/pango/pango.h +54 -0
  582. package/include/pango-1.0/pango/pangocairo.h +220 -0
  583. package/include/pango-1.0/pango/pangofc-decoder.h +122 -0
  584. package/include/pango-1.0/pango/pangofc-font.h +120 -0
  585. package/include/pango-1.0/pango/pangofc-fontmap.h +244 -0
  586. package/include/pango-1.0/pango/pangoft2.h +158 -0
  587. package/include/pixman-1/pixman-version.h +54 -0
  588. package/include/pixman-1/pixman.h +1419 -0
  589. package/include/png.h +3247 -0
  590. package/include/pngconf.h +623 -0
  591. package/include/pnglibconf.h +219 -0
  592. package/include/spng.h +537 -0
  593. package/include/tiff.h +899 -0
  594. package/include/tiffconf.h +145 -0
  595. package/include/tiffio.h +653 -0
  596. package/include/tiffvers.h +36 -0
  597. package/include/vips/VConnection8.h +150 -0
  598. package/include/vips/VError8.h +76 -0
  599. package/include/vips/VImage8.h +6065 -0
  600. package/include/vips/VInterpolate8.h +77 -0
  601. package/include/vips/VRegion8.h +155 -0
  602. package/include/vips/arithmetic.h +571 -0
  603. package/include/vips/basic.h +113 -0
  604. package/include/vips/buf.h +118 -0
  605. package/include/vips/colour.h +306 -0
  606. package/include/vips/connection.h +570 -0
  607. package/include/vips/conversion.h +357 -0
  608. package/include/vips/convolution.h +95 -0
  609. package/include/vips/create.h +161 -0
  610. package/include/vips/dbuf.h +103 -0
  611. package/include/vips/debug.h +74 -0
  612. package/include/vips/draw.h +113 -0
  613. package/include/vips/enumtypes.h +181 -0
  614. package/include/vips/error.h +142 -0
  615. package/include/vips/foreign.h +993 -0
  616. package/include/vips/format.h +135 -0
  617. package/include/vips/freqfilt.h +64 -0
  618. package/include/vips/gate.h +82 -0
  619. package/include/vips/generate.h +92 -0
  620. package/include/vips/header.h +312 -0
  621. package/include/vips/histogram.h +85 -0
  622. package/include/vips/image.h +605 -0
  623. package/include/vips/interpolate.h +141 -0
  624. package/include/vips/memory.h +96 -0
  625. package/include/vips/morphology.h +73 -0
  626. package/include/vips/mosaicing.h +80 -0
  627. package/include/vips/object.h +706 -0
  628. package/include/vips/operation.h +182 -0
  629. package/include/vips/private.h +227 -0
  630. package/include/vips/rect.h +80 -0
  631. package/include/vips/region.h +238 -0
  632. package/include/vips/resample.h +123 -0
  633. package/include/vips/sbuf.h +144 -0
  634. package/include/vips/semaphore.h +77 -0
  635. package/include/vips/thread.h +72 -0
  636. package/include/vips/threadpool.h +160 -0
  637. package/include/vips/transform.h +89 -0
  638. package/include/vips/type.h +305 -0
  639. package/include/vips/util.h +406 -0
  640. package/include/vips/vector.h +183 -0
  641. package/include/vips/version.h +26 -0
  642. package/include/vips/vips.h +194 -0
  643. package/include/vips/vips8 +60 -0
  644. package/include/webp/decode.h +504 -0
  645. package/include/webp/demux.h +363 -0
  646. package/include/webp/encode.h +552 -0
  647. package/include/webp/mux.h +530 -0
  648. package/include/webp/mux_types.h +98 -0
  649. package/include/webp/sharpyuv/sharpyuv.h +103 -0
  650. package/include/webp/sharpyuv/sharpyuv_csp.h +60 -0
  651. package/include/webp/types.h +72 -0
  652. package/include/zconf.h +203 -0
  653. package/include/zlib.h +1855 -0
  654. package/include/zlib_name_mangling.h +8 -0
  655. package/package.json +30 -0
  656. package/versions.json +31 -0
@@ -0,0 +1,530 @@
1
+ // Copyright 2011 Google Inc. All Rights Reserved.
2
+ //
3
+ // Use of this source code is governed by a BSD-style license
4
+ // that can be found in the COPYING file in the root of the source
5
+ // tree. An additional intellectual property rights grant can be found
6
+ // in the file PATENTS. All contributing project authors may
7
+ // be found in the AUTHORS file in the root of the source tree.
8
+ // -----------------------------------------------------------------------------
9
+ //
10
+ // RIFF container manipulation and encoding for WebP images.
11
+ //
12
+ // Authors: Urvang (urvang@google.com)
13
+ // Vikas (vikasa@google.com)
14
+
15
+ #ifndef WEBP_WEBP_MUX_H_
16
+ #define WEBP_WEBP_MUX_H_
17
+
18
+ #include "./mux_types.h"
19
+
20
+ #ifdef __cplusplus
21
+ extern "C" {
22
+ #endif
23
+
24
+ #define WEBP_MUX_ABI_VERSION 0x0108 // MAJOR(8b) + MINOR(8b)
25
+
26
+ //------------------------------------------------------------------------------
27
+ // Mux API
28
+ //
29
+ // This API allows manipulation of WebP container images containing features
30
+ // like color profile, metadata, animation.
31
+ //
32
+ // Code Example#1: Create a WebPMux object with image data, color profile and
33
+ // XMP metadata.
34
+ /*
35
+ int copy_data = 0;
36
+ WebPMux* mux = WebPMuxNew();
37
+ // ... (Prepare image data).
38
+ WebPMuxSetImage(mux, &image, copy_data);
39
+ // ... (Prepare ICCP color profile data).
40
+ WebPMuxSetChunk(mux, "ICCP", &icc_profile, copy_data);
41
+ // ... (Prepare XMP metadata).
42
+ WebPMuxSetChunk(mux, "XMP ", &xmp, copy_data);
43
+ // Get data from mux in WebP RIFF format.
44
+ WebPMuxAssemble(mux, &output_data);
45
+ WebPMuxDelete(mux);
46
+ // ... (Consume output_data; e.g. write output_data.bytes to file).
47
+ WebPDataClear(&output_data);
48
+ */
49
+
50
+ // Code Example#2: Get image and color profile data from a WebP file.
51
+ /*
52
+ int copy_data = 0;
53
+ // ... (Read data from file).
54
+ WebPMux* mux = WebPMuxCreate(&data, copy_data);
55
+ WebPMuxGetFrame(mux, 1, &image);
56
+ // ... (Consume image; e.g. call WebPDecode() to decode the data).
57
+ WebPMuxGetChunk(mux, "ICCP", &icc_profile);
58
+ // ... (Consume icc_data).
59
+ WebPMuxDelete(mux);
60
+ WebPFree(data);
61
+ */
62
+
63
+ // Note: forward declaring enumerations is not allowed in (strict) C and C++,
64
+ // the types are left here for reference.
65
+ // typedef enum WebPMuxError WebPMuxError;
66
+ // typedef enum WebPChunkId WebPChunkId;
67
+ typedef struct WebPMux WebPMux; // main opaque object.
68
+ typedef struct WebPMuxFrameInfo WebPMuxFrameInfo;
69
+ typedef struct WebPMuxAnimParams WebPMuxAnimParams;
70
+ typedef struct WebPAnimEncoderOptions WebPAnimEncoderOptions;
71
+
72
+ // Error codes
73
+ typedef enum WebPMuxError {
74
+ WEBP_MUX_OK = 1,
75
+ WEBP_MUX_NOT_FOUND = 0,
76
+ WEBP_MUX_INVALID_ARGUMENT = -1,
77
+ WEBP_MUX_BAD_DATA = -2,
78
+ WEBP_MUX_MEMORY_ERROR = -3,
79
+ WEBP_MUX_NOT_ENOUGH_DATA = -4
80
+ } WebPMuxError;
81
+
82
+ // IDs for different types of chunks.
83
+ typedef enum WebPChunkId {
84
+ WEBP_CHUNK_VP8X, // VP8X
85
+ WEBP_CHUNK_ICCP, // ICCP
86
+ WEBP_CHUNK_ANIM, // ANIM
87
+ WEBP_CHUNK_ANMF, // ANMF
88
+ WEBP_CHUNK_DEPRECATED, // (deprecated from FRGM)
89
+ WEBP_CHUNK_ALPHA, // ALPH
90
+ WEBP_CHUNK_IMAGE, // VP8/VP8L
91
+ WEBP_CHUNK_EXIF, // EXIF
92
+ WEBP_CHUNK_XMP, // XMP
93
+ WEBP_CHUNK_UNKNOWN, // Other chunks.
94
+ WEBP_CHUNK_NIL
95
+ } WebPChunkId;
96
+
97
+ //------------------------------------------------------------------------------
98
+
99
+ // Returns the version number of the mux library, packed in hexadecimal using
100
+ // 8bits for each of major/minor/revision. E.g: v2.5.7 is 0x020507.
101
+ WEBP_EXTERN int WebPGetMuxVersion(void);
102
+
103
+ //------------------------------------------------------------------------------
104
+ // Life of a Mux object
105
+
106
+ // Internal, version-checked, entry point
107
+ WEBP_EXTERN WebPMux* WebPNewInternal(int);
108
+
109
+ // Creates an empty mux object.
110
+ // Returns:
111
+ // A pointer to the newly created empty mux object.
112
+ // Or NULL in case of memory error.
113
+ static WEBP_INLINE WebPMux* WebPMuxNew(void) {
114
+ return WebPNewInternal(WEBP_MUX_ABI_VERSION);
115
+ }
116
+
117
+ // Deletes the mux object.
118
+ // Parameters:
119
+ // mux - (in/out) object to be deleted
120
+ WEBP_EXTERN void WebPMuxDelete(WebPMux* mux);
121
+
122
+ //------------------------------------------------------------------------------
123
+ // Mux creation.
124
+
125
+ // Internal, version-checked, entry point
126
+ WEBP_EXTERN WebPMux* WebPMuxCreateInternal(const WebPData*, int, int);
127
+
128
+ // Creates a mux object from raw data given in WebP RIFF format.
129
+ // Parameters:
130
+ // bitstream - (in) the bitstream data in WebP RIFF format
131
+ // copy_data - (in) value 1 indicates given data WILL be copied to the mux
132
+ // object and value 0 indicates data will NOT be copied.
133
+ // Returns:
134
+ // A pointer to the mux object created from given data - on success.
135
+ // NULL - In case of invalid data or memory error.
136
+ static WEBP_INLINE WebPMux* WebPMuxCreate(const WebPData* bitstream,
137
+ int copy_data) {
138
+ return WebPMuxCreateInternal(bitstream, copy_data, WEBP_MUX_ABI_VERSION);
139
+ }
140
+
141
+ //------------------------------------------------------------------------------
142
+ // Non-image chunks.
143
+
144
+ // Note: Only non-image related chunks should be managed through chunk APIs.
145
+ // (Image related chunks are: "ANMF", "VP8 ", "VP8L" and "ALPH").
146
+ // To add, get and delete images, use WebPMuxSetImage(), WebPMuxPushFrame(),
147
+ // WebPMuxGetFrame() and WebPMuxDeleteFrame().
148
+
149
+ // Adds a chunk with id 'fourcc' and data 'chunk_data' in the mux object.
150
+ // Any existing chunk(s) with the same id will be removed.
151
+ // Parameters:
152
+ // mux - (in/out) object to which the chunk is to be added
153
+ // fourcc - (in) a character array containing the fourcc of the given chunk;
154
+ // e.g., "ICCP", "XMP ", "EXIF" etc.
155
+ // chunk_data - (in) the chunk data to be added
156
+ // copy_data - (in) value 1 indicates given data WILL be copied to the mux
157
+ // object and value 0 indicates data will NOT be copied.
158
+ // Returns:
159
+ // WEBP_MUX_INVALID_ARGUMENT - if mux, fourcc or chunk_data is NULL
160
+ // or if fourcc corresponds to an image chunk.
161
+ // WEBP_MUX_MEMORY_ERROR - on memory allocation error.
162
+ // WEBP_MUX_OK - on success.
163
+ WEBP_EXTERN WebPMuxError WebPMuxSetChunk(
164
+ WebPMux* mux, const char fourcc[4], const WebPData* chunk_data,
165
+ int copy_data);
166
+
167
+ // Gets a reference to the data of the chunk with id 'fourcc' in the mux object.
168
+ // The caller should NOT free the returned data.
169
+ // Parameters:
170
+ // mux - (in) object from which the chunk data is to be fetched
171
+ // fourcc - (in) a character array containing the fourcc of the chunk;
172
+ // e.g., "ICCP", "XMP ", "EXIF" etc.
173
+ // chunk_data - (out) returned chunk data
174
+ // Returns:
175
+ // WEBP_MUX_INVALID_ARGUMENT - if mux, fourcc or chunk_data is NULL
176
+ // or if fourcc corresponds to an image chunk.
177
+ // WEBP_MUX_NOT_FOUND - If mux does not contain a chunk with the given id.
178
+ // WEBP_MUX_OK - on success.
179
+ WEBP_EXTERN WebPMuxError WebPMuxGetChunk(
180
+ const WebPMux* mux, const char fourcc[4], WebPData* chunk_data);
181
+
182
+ // Deletes the chunk with the given 'fourcc' from the mux object.
183
+ // Parameters:
184
+ // mux - (in/out) object from which the chunk is to be deleted
185
+ // fourcc - (in) a character array containing the fourcc of the chunk;
186
+ // e.g., "ICCP", "XMP ", "EXIF" etc.
187
+ // Returns:
188
+ // WEBP_MUX_INVALID_ARGUMENT - if mux or fourcc is NULL
189
+ // or if fourcc corresponds to an image chunk.
190
+ // WEBP_MUX_NOT_FOUND - If mux does not contain a chunk with the given fourcc.
191
+ // WEBP_MUX_OK - on success.
192
+ WEBP_EXTERN WebPMuxError WebPMuxDeleteChunk(
193
+ WebPMux* mux, const char fourcc[4]);
194
+
195
+ //------------------------------------------------------------------------------
196
+ // Images.
197
+
198
+ // Encapsulates data about a single frame.
199
+ struct WebPMuxFrameInfo {
200
+ WebPData bitstream; // image data: can be a raw VP8/VP8L bitstream
201
+ // or a single-image WebP file.
202
+ int x_offset; // x-offset of the frame.
203
+ int y_offset; // y-offset of the frame.
204
+ int duration; // duration of the frame (in milliseconds).
205
+
206
+ WebPChunkId id; // frame type: should be one of WEBP_CHUNK_ANMF
207
+ // or WEBP_CHUNK_IMAGE
208
+ WebPMuxAnimDispose dispose_method; // Disposal method for the frame.
209
+ WebPMuxAnimBlend blend_method; // Blend operation for the frame.
210
+ uint32_t pad[1]; // padding for later use
211
+ };
212
+
213
+ // Sets the (non-animated) image in the mux object.
214
+ // Note: Any existing images (including frames) will be removed.
215
+ // Parameters:
216
+ // mux - (in/out) object in which the image is to be set
217
+ // bitstream - (in) can be a raw VP8/VP8L bitstream or a single-image
218
+ // WebP file (non-animated)
219
+ // copy_data - (in) value 1 indicates given data WILL be copied to the mux
220
+ // object and value 0 indicates data will NOT be copied.
221
+ // Returns:
222
+ // WEBP_MUX_INVALID_ARGUMENT - if mux is NULL or bitstream is NULL.
223
+ // WEBP_MUX_MEMORY_ERROR - on memory allocation error.
224
+ // WEBP_MUX_OK - on success.
225
+ WEBP_EXTERN WebPMuxError WebPMuxSetImage(
226
+ WebPMux* mux, const WebPData* bitstream, int copy_data);
227
+
228
+ // Adds a frame at the end of the mux object.
229
+ // Notes: (1) frame.id should be WEBP_CHUNK_ANMF
230
+ // (2) For setting a non-animated image, use WebPMuxSetImage() instead.
231
+ // (3) Type of frame being pushed must be same as the frames in mux.
232
+ // (4) As WebP only supports even offsets, any odd offset will be snapped
233
+ // to an even location using: offset &= ~1
234
+ // Parameters:
235
+ // mux - (in/out) object to which the frame is to be added
236
+ // frame - (in) frame data.
237
+ // copy_data - (in) value 1 indicates given data WILL be copied to the mux
238
+ // object and value 0 indicates data will NOT be copied.
239
+ // Returns:
240
+ // WEBP_MUX_INVALID_ARGUMENT - if mux or frame is NULL
241
+ // or if content of 'frame' is invalid.
242
+ // WEBP_MUX_MEMORY_ERROR - on memory allocation error.
243
+ // WEBP_MUX_OK - on success.
244
+ WEBP_EXTERN WebPMuxError WebPMuxPushFrame(
245
+ WebPMux* mux, const WebPMuxFrameInfo* frame, int copy_data);
246
+
247
+ // Gets the nth frame from the mux object.
248
+ // The content of 'frame->bitstream' is allocated using WebPMalloc(), and NOT
249
+ // owned by the 'mux' object. It MUST be deallocated by the caller by calling
250
+ // WebPDataClear().
251
+ // nth=0 has a special meaning - last position.
252
+ // Parameters:
253
+ // mux - (in) object from which the info is to be fetched
254
+ // nth - (in) index of the frame in the mux object
255
+ // frame - (out) data of the returned frame
256
+ // Returns:
257
+ // WEBP_MUX_INVALID_ARGUMENT - if mux or frame is NULL.
258
+ // WEBP_MUX_NOT_FOUND - if there are less than nth frames in the mux object.
259
+ // WEBP_MUX_BAD_DATA - if nth frame chunk in mux is invalid.
260
+ // WEBP_MUX_MEMORY_ERROR - on memory allocation error.
261
+ // WEBP_MUX_OK - on success.
262
+ WEBP_EXTERN WebPMuxError WebPMuxGetFrame(
263
+ const WebPMux* mux, uint32_t nth, WebPMuxFrameInfo* frame);
264
+
265
+ // Deletes a frame from the mux object.
266
+ // nth=0 has a special meaning - last position.
267
+ // Parameters:
268
+ // mux - (in/out) object from which a frame is to be deleted
269
+ // nth - (in) The position from which the frame is to be deleted
270
+ // Returns:
271
+ // WEBP_MUX_INVALID_ARGUMENT - if mux is NULL.
272
+ // WEBP_MUX_NOT_FOUND - If there are less than nth frames in the mux object
273
+ // before deletion.
274
+ // WEBP_MUX_OK - on success.
275
+ WEBP_EXTERN WebPMuxError WebPMuxDeleteFrame(WebPMux* mux, uint32_t nth);
276
+
277
+ //------------------------------------------------------------------------------
278
+ // Animation.
279
+
280
+ // Animation parameters.
281
+ struct WebPMuxAnimParams {
282
+ uint32_t bgcolor; // Background color of the canvas stored (in MSB order) as:
283
+ // Bits 00 to 07: Alpha.
284
+ // Bits 08 to 15: Red.
285
+ // Bits 16 to 23: Green.
286
+ // Bits 24 to 31: Blue.
287
+ int loop_count; // Number of times to repeat the animation [0 = infinite].
288
+ };
289
+
290
+ // Sets the animation parameters in the mux object. Any existing ANIM chunks
291
+ // will be removed.
292
+ // Parameters:
293
+ // mux - (in/out) object in which ANIM chunk is to be set/added
294
+ // params - (in) animation parameters.
295
+ // Returns:
296
+ // WEBP_MUX_INVALID_ARGUMENT - if mux or params is NULL.
297
+ // WEBP_MUX_MEMORY_ERROR - on memory allocation error.
298
+ // WEBP_MUX_OK - on success.
299
+ WEBP_EXTERN WebPMuxError WebPMuxSetAnimationParams(
300
+ WebPMux* mux, const WebPMuxAnimParams* params);
301
+
302
+ // Gets the animation parameters from the mux object.
303
+ // Parameters:
304
+ // mux - (in) object from which the animation parameters to be fetched
305
+ // params - (out) animation parameters extracted from the ANIM chunk
306
+ // Returns:
307
+ // WEBP_MUX_INVALID_ARGUMENT - if mux or params is NULL.
308
+ // WEBP_MUX_NOT_FOUND - if ANIM chunk is not present in mux object.
309
+ // WEBP_MUX_OK - on success.
310
+ WEBP_EXTERN WebPMuxError WebPMuxGetAnimationParams(
311
+ const WebPMux* mux, WebPMuxAnimParams* params);
312
+
313
+ //------------------------------------------------------------------------------
314
+ // Misc Utilities.
315
+
316
+ // Sets the canvas size for the mux object. The width and height can be
317
+ // specified explicitly or left as zero (0, 0).
318
+ // * When width and height are specified explicitly, then this frame bound is
319
+ // enforced during subsequent calls to WebPMuxAssemble() and an error is
320
+ // reported if any animated frame does not completely fit within the canvas.
321
+ // * When unspecified (0, 0), the constructed canvas will get the frame bounds
322
+ // from the bounding-box over all frames after calling WebPMuxAssemble().
323
+ // Parameters:
324
+ // mux - (in) object to which the canvas size is to be set
325
+ // width - (in) canvas width
326
+ // height - (in) canvas height
327
+ // Returns:
328
+ // WEBP_MUX_INVALID_ARGUMENT - if mux is NULL; or
329
+ // width or height are invalid or out of bounds
330
+ // WEBP_MUX_OK - on success.
331
+ WEBP_EXTERN WebPMuxError WebPMuxSetCanvasSize(WebPMux* mux,
332
+ int width, int height);
333
+
334
+ // Gets the canvas size from the mux object.
335
+ // Note: This method assumes that the VP8X chunk, if present, is up-to-date.
336
+ // That is, the mux object hasn't been modified since the last call to
337
+ // WebPMuxAssemble() or WebPMuxCreate().
338
+ // Parameters:
339
+ // mux - (in) object from which the canvas size is to be fetched
340
+ // width - (out) canvas width
341
+ // height - (out) canvas height
342
+ // Returns:
343
+ // WEBP_MUX_INVALID_ARGUMENT - if mux, width or height is NULL.
344
+ // WEBP_MUX_BAD_DATA - if VP8X/VP8/VP8L chunk or canvas size is invalid.
345
+ // WEBP_MUX_OK - on success.
346
+ WEBP_EXTERN WebPMuxError WebPMuxGetCanvasSize(const WebPMux* mux,
347
+ int* width, int* height);
348
+
349
+ // Gets the feature flags from the mux object.
350
+ // Note: This method assumes that the VP8X chunk, if present, is up-to-date.
351
+ // That is, the mux object hasn't been modified since the last call to
352
+ // WebPMuxAssemble() or WebPMuxCreate().
353
+ // Parameters:
354
+ // mux - (in) object from which the features are to be fetched
355
+ // flags - (out) the flags specifying which features are present in the
356
+ // mux object. This will be an OR of various flag values.
357
+ // Enum 'WebPFeatureFlags' can be used to test individual flag values.
358
+ // Returns:
359
+ // WEBP_MUX_INVALID_ARGUMENT - if mux or flags is NULL.
360
+ // WEBP_MUX_BAD_DATA - if VP8X/VP8/VP8L chunk or canvas size is invalid.
361
+ // WEBP_MUX_OK - on success.
362
+ WEBP_EXTERN WebPMuxError WebPMuxGetFeatures(const WebPMux* mux,
363
+ uint32_t* flags);
364
+
365
+ // Gets number of chunks with the given 'id' in the mux object.
366
+ // Parameters:
367
+ // mux - (in) object from which the info is to be fetched
368
+ // id - (in) chunk id specifying the type of chunk
369
+ // num_elements - (out) number of chunks with the given chunk id
370
+ // Returns:
371
+ // WEBP_MUX_INVALID_ARGUMENT - if mux, or num_elements is NULL.
372
+ // WEBP_MUX_OK - on success.
373
+ WEBP_EXTERN WebPMuxError WebPMuxNumChunks(const WebPMux* mux,
374
+ WebPChunkId id, int* num_elements);
375
+
376
+ // Assembles all chunks in WebP RIFF format and returns in 'assembled_data'.
377
+ // This function also validates the mux object.
378
+ // Note: The content of 'assembled_data' will be ignored and overwritten.
379
+ // Also, the content of 'assembled_data' is allocated using WebPMalloc(), and
380
+ // NOT owned by the 'mux' object. It MUST be deallocated by the caller by
381
+ // calling WebPDataClear(). It's always safe to call WebPDataClear() upon
382
+ // return, even in case of error.
383
+ // Parameters:
384
+ // mux - (in/out) object whose chunks are to be assembled
385
+ // assembled_data - (out) assembled WebP data
386
+ // Returns:
387
+ // WEBP_MUX_BAD_DATA - if mux object is invalid.
388
+ // WEBP_MUX_INVALID_ARGUMENT - if mux or assembled_data is NULL.
389
+ // WEBP_MUX_MEMORY_ERROR - on memory allocation error.
390
+ // WEBP_MUX_OK - on success.
391
+ WEBP_EXTERN WebPMuxError WebPMuxAssemble(WebPMux* mux,
392
+ WebPData* assembled_data);
393
+
394
+ //------------------------------------------------------------------------------
395
+ // WebPAnimEncoder API
396
+ //
397
+ // This API allows encoding (possibly) animated WebP images.
398
+ //
399
+ // Code Example:
400
+ /*
401
+ WebPAnimEncoderOptions enc_options;
402
+ WebPAnimEncoderOptionsInit(&enc_options);
403
+ // Tune 'enc_options' as needed.
404
+ WebPAnimEncoder* enc = WebPAnimEncoderNew(width, height, &enc_options);
405
+ while(<there are more frames>) {
406
+ WebPConfig config;
407
+ WebPConfigInit(&config);
408
+ // Tune 'config' as needed.
409
+ WebPAnimEncoderAdd(enc, frame, timestamp_ms, &config);
410
+ }
411
+ WebPAnimEncoderAdd(enc, NULL, timestamp_ms, NULL);
412
+ WebPAnimEncoderAssemble(enc, webp_data);
413
+ WebPAnimEncoderDelete(enc);
414
+ // Write the 'webp_data' to a file, or re-mux it further.
415
+ */
416
+
417
+ typedef struct WebPAnimEncoder WebPAnimEncoder; // Main opaque object.
418
+
419
+ // Forward declarations. Defined in encode.h.
420
+ struct WebPPicture;
421
+ struct WebPConfig;
422
+
423
+ // Global options.
424
+ struct WebPAnimEncoderOptions {
425
+ WebPMuxAnimParams anim_params; // Animation parameters.
426
+ int minimize_size; // If true, minimize the output size (slow). Implicitly
427
+ // disables key-frame insertion.
428
+ int kmin;
429
+ int kmax; // Minimum and maximum distance between consecutive key
430
+ // frames in the output. The library may insert some key
431
+ // frames as needed to satisfy this criteria.
432
+ // Note that these conditions should hold: kmax > kmin
433
+ // and kmin >= kmax / 2 + 1. Also, if kmax <= 0, then
434
+ // key-frame insertion is disabled; and if kmax == 1,
435
+ // then all frames will be key-frames (kmin value does
436
+ // not matter for these special cases).
437
+ int allow_mixed; // If true, use mixed compression mode; may choose
438
+ // either lossy and lossless for each frame.
439
+ int verbose; // If true, print info and warning messages to stderr.
440
+
441
+ uint32_t padding[4]; // Padding for later use.
442
+ };
443
+
444
+ // Internal, version-checked, entry point.
445
+ WEBP_EXTERN int WebPAnimEncoderOptionsInitInternal(
446
+ WebPAnimEncoderOptions*, int);
447
+
448
+ // Should always be called, to initialize a fresh WebPAnimEncoderOptions
449
+ // structure before modification. Returns false in case of version mismatch.
450
+ // WebPAnimEncoderOptionsInit() must have succeeded before using the
451
+ // 'enc_options' object.
452
+ static WEBP_INLINE int WebPAnimEncoderOptionsInit(
453
+ WebPAnimEncoderOptions* enc_options) {
454
+ return WebPAnimEncoderOptionsInitInternal(enc_options, WEBP_MUX_ABI_VERSION);
455
+ }
456
+
457
+ // Internal, version-checked, entry point.
458
+ WEBP_EXTERN WebPAnimEncoder* WebPAnimEncoderNewInternal(
459
+ int, int, const WebPAnimEncoderOptions*, int);
460
+
461
+ // Creates and initializes a WebPAnimEncoder object.
462
+ // Parameters:
463
+ // width/height - (in) canvas width and height of the animation.
464
+ // enc_options - (in) encoding options; can be passed NULL to pick
465
+ // reasonable defaults.
466
+ // Returns:
467
+ // A pointer to the newly created WebPAnimEncoder object.
468
+ // Or NULL in case of memory error.
469
+ static WEBP_INLINE WebPAnimEncoder* WebPAnimEncoderNew(
470
+ int width, int height, const WebPAnimEncoderOptions* enc_options) {
471
+ return WebPAnimEncoderNewInternal(width, height, enc_options,
472
+ WEBP_MUX_ABI_VERSION);
473
+ }
474
+
475
+ // Optimize the given frame for WebP, encode it and add it to the
476
+ // WebPAnimEncoder object.
477
+ // The last call to 'WebPAnimEncoderAdd' should be with frame = NULL, which
478
+ // indicates that no more frames are to be added. This call is also used to
479
+ // determine the duration of the last frame.
480
+ // Parameters:
481
+ // enc - (in/out) object to which the frame is to be added.
482
+ // frame - (in/out) frame data in ARGB or YUV(A) format. If it is in YUV(A)
483
+ // format, it will be converted to ARGB, which incurs a small loss.
484
+ // timestamp_ms - (in) timestamp of this frame in milliseconds.
485
+ // Duration of a frame would be calculated as
486
+ // "timestamp of next frame - timestamp of this frame".
487
+ // Hence, timestamps should be in non-decreasing order.
488
+ // config - (in) encoding options; can be passed NULL to pick
489
+ // reasonable defaults.
490
+ // Returns:
491
+ // On error, returns false and frame->error_code is set appropriately.
492
+ // Otherwise, returns true.
493
+ WEBP_EXTERN int WebPAnimEncoderAdd(
494
+ WebPAnimEncoder* enc, struct WebPPicture* frame, int timestamp_ms,
495
+ const struct WebPConfig* config);
496
+
497
+ // Assemble all frames added so far into a WebP bitstream.
498
+ // This call should be preceded by a call to 'WebPAnimEncoderAdd' with
499
+ // frame = NULL; if not, the duration of the last frame will be internally
500
+ // estimated.
501
+ // Parameters:
502
+ // enc - (in/out) object from which the frames are to be assembled.
503
+ // webp_data - (out) generated WebP bitstream.
504
+ // Returns:
505
+ // True on success.
506
+ WEBP_EXTERN int WebPAnimEncoderAssemble(WebPAnimEncoder* enc,
507
+ WebPData* webp_data);
508
+
509
+ // Get error string corresponding to the most recent call using 'enc'. The
510
+ // returned string is owned by 'enc' and is valid only until the next call to
511
+ // WebPAnimEncoderAdd() or WebPAnimEncoderAssemble() or WebPAnimEncoderDelete().
512
+ // Parameters:
513
+ // enc - (in/out) object from which the error string is to be fetched.
514
+ // Returns:
515
+ // NULL if 'enc' is NULL. Otherwise, returns the error string if the last call
516
+ // to 'enc' had an error, or an empty string if the last call was a success.
517
+ WEBP_EXTERN const char* WebPAnimEncoderGetError(WebPAnimEncoder* enc);
518
+
519
+ // Deletes the WebPAnimEncoder object.
520
+ // Parameters:
521
+ // enc - (in/out) object to be deleted
522
+ WEBP_EXTERN void WebPAnimEncoderDelete(WebPAnimEncoder* enc);
523
+
524
+ //------------------------------------------------------------------------------
525
+
526
+ #ifdef __cplusplus
527
+ } // extern "C"
528
+ #endif
529
+
530
+ #endif // WEBP_WEBP_MUX_H_
@@ -0,0 +1,98 @@
1
+ // Copyright 2012 Google Inc. All Rights Reserved.
2
+ //
3
+ // Use of this source code is governed by a BSD-style license
4
+ // that can be found in the COPYING file in the root of the source
5
+ // tree. An additional intellectual property rights grant can be found
6
+ // in the file PATENTS. All contributing project authors may
7
+ // be found in the AUTHORS file in the root of the source tree.
8
+ // -----------------------------------------------------------------------------
9
+ //
10
+ // Data-types common to the mux and demux libraries.
11
+ //
12
+ // Author: Urvang (urvang@google.com)
13
+
14
+ #ifndef WEBP_WEBP_MUX_TYPES_H_
15
+ #define WEBP_WEBP_MUX_TYPES_H_
16
+
17
+ #include <string.h> // memset()
18
+ #include "./types.h"
19
+
20
+ #ifdef __cplusplus
21
+ extern "C" {
22
+ #endif
23
+
24
+ // Note: forward declaring enumerations is not allowed in (strict) C and C++,
25
+ // the types are left here for reference.
26
+ // typedef enum WebPFeatureFlags WebPFeatureFlags;
27
+ // typedef enum WebPMuxAnimDispose WebPMuxAnimDispose;
28
+ // typedef enum WebPMuxAnimBlend WebPMuxAnimBlend;
29
+ typedef struct WebPData WebPData;
30
+
31
+ // VP8X Feature Flags.
32
+ typedef enum WebPFeatureFlags {
33
+ ANIMATION_FLAG = 0x00000002,
34
+ XMP_FLAG = 0x00000004,
35
+ EXIF_FLAG = 0x00000008,
36
+ ALPHA_FLAG = 0x00000010,
37
+ ICCP_FLAG = 0x00000020,
38
+
39
+ ALL_VALID_FLAGS = 0x0000003e
40
+ } WebPFeatureFlags;
41
+
42
+ // Dispose method (animation only). Indicates how the area used by the current
43
+ // frame is to be treated before rendering the next frame on the canvas.
44
+ typedef enum WebPMuxAnimDispose {
45
+ WEBP_MUX_DISPOSE_NONE, // Do not dispose.
46
+ WEBP_MUX_DISPOSE_BACKGROUND // Dispose to background color.
47
+ } WebPMuxAnimDispose;
48
+
49
+ // Blend operation (animation only). Indicates how transparent pixels of the
50
+ // current frame are blended with those of the previous canvas.
51
+ typedef enum WebPMuxAnimBlend {
52
+ WEBP_MUX_BLEND, // Blend.
53
+ WEBP_MUX_NO_BLEND // Do not blend.
54
+ } WebPMuxAnimBlend;
55
+
56
+ // Data type used to describe 'raw' data, e.g., chunk data
57
+ // (ICC profile, metadata) and WebP compressed image data.
58
+ // 'bytes' memory must be allocated using WebPMalloc() and such.
59
+ struct WebPData {
60
+ const uint8_t* bytes;
61
+ size_t size;
62
+ };
63
+
64
+ // Initializes the contents of the 'webp_data' object with default values.
65
+ static WEBP_INLINE void WebPDataInit(WebPData* webp_data) {
66
+ if (webp_data != NULL) {
67
+ memset(webp_data, 0, sizeof(*webp_data));
68
+ }
69
+ }
70
+
71
+ // Clears the contents of the 'webp_data' object by calling WebPFree().
72
+ // Does not deallocate the object itself.
73
+ static WEBP_INLINE void WebPDataClear(WebPData* webp_data) {
74
+ if (webp_data != NULL) {
75
+ WebPFree((void*)webp_data->bytes);
76
+ WebPDataInit(webp_data);
77
+ }
78
+ }
79
+
80
+ // Allocates necessary storage for 'dst' and copies the contents of 'src'.
81
+ // Returns true on success.
82
+ static WEBP_INLINE int WebPDataCopy(const WebPData* src, WebPData* dst) {
83
+ if (src == NULL || dst == NULL) return 0;
84
+ WebPDataInit(dst);
85
+ if (src->bytes != NULL && src->size != 0) {
86
+ dst->bytes = (uint8_t*)WebPMalloc(src->size);
87
+ if (dst->bytes == NULL) return 0;
88
+ memcpy((void*)dst->bytes, src->bytes, src->size);
89
+ dst->size = src->size;
90
+ }
91
+ return 1;
92
+ }
93
+
94
+ #ifdef __cplusplus
95
+ } // extern "C"
96
+ #endif
97
+
98
+ #endif // WEBP_WEBP_MUX_TYPES_H_