pylibheif 1.21.2__tar.gz

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 (664) hide show
  1. pylibheif-1.21.2/.github/workflows/build.yml +105 -0
  2. pylibheif-1.21.2/.gitignore +41 -0
  3. pylibheif-1.21.2/.gitmodules +3 -0
  4. pylibheif-1.21.2/.python-version +1 -0
  5. pylibheif-1.21.2/CMakeLists.txt +51 -0
  6. pylibheif-1.21.2/PKG-INFO +239 -0
  7. pylibheif-1.21.2/README.md +212 -0
  8. pylibheif-1.21.2/images/test.heic +0 -0
  9. pylibheif-1.21.2/pyproject.toml +54 -0
  10. pylibheif-1.21.2/src/common.hpp +26 -0
  11. pylibheif-1.21.2/src/context.cpp +49 -0
  12. pylibheif-1.21.2/src/context.hpp +33 -0
  13. pylibheif-1.21.2/src/encoder.cpp +29 -0
  14. pylibheif-1.21.2/src/encoder.hpp +27 -0
  15. pylibheif-1.21.2/src/image.cpp +138 -0
  16. pylibheif-1.21.2/src/image.hpp +54 -0
  17. pylibheif-1.21.2/src/main.cpp +136 -0
  18. pylibheif-1.21.2/tests/test_pylibheif.py +531 -0
  19. pylibheif-1.21.2/third_party/libheif/.clang-tidy +13 -0
  20. pylibheif-1.21.2/third_party/libheif/.github/FUNDING.yml +13 -0
  21. pylibheif-1.21.2/third_party/libheif/.github/dependabot.yml +6 -0
  22. pylibheif-1.21.2/third_party/libheif/.github/workflows/build.yml +39 -0
  23. pylibheif-1.21.2/third_party/libheif/.github/workflows/cifuzz.yml +24 -0
  24. pylibheif-1.21.2/third_party/libheif/.github/workflows/clang.yml +67 -0
  25. pylibheif-1.21.2/third_party/libheif/.github/workflows/coverity.yml +58 -0
  26. pylibheif-1.21.2/third_party/libheif/.github/workflows/diagram.yml +16 -0
  27. pylibheif-1.21.2/third_party/libheif/.github/workflows/emscripten.yml +27 -0
  28. pylibheif-1.21.2/third_party/libheif/.github/workflows/fuzzer.yml +31 -0
  29. pylibheif-1.21.2/third_party/libheif/.github/workflows/gcc-versions.yml +39 -0
  30. pylibheif-1.21.2/third_party/libheif/.github/workflows/go.yml +38 -0
  31. pylibheif-1.21.2/third_party/libheif/.github/workflows/lint.yml +46 -0
  32. pylibheif-1.21.2/third_party/libheif/.github/workflows/mingw.yml +31 -0
  33. pylibheif-1.21.2/third_party/libheif/.github/workflows/osx.yml +33 -0
  34. pylibheif-1.21.2/third_party/libheif/.github/workflows/test.yml +30 -0
  35. pylibheif-1.21.2/third_party/libheif/.gitignore +11 -0
  36. pylibheif-1.21.2/third_party/libheif/CMakeLists.txt +677 -0
  37. pylibheif-1.21.2/third_party/libheif/CMakePresets.json +195 -0
  38. pylibheif-1.21.2/third_party/libheif/COPYING +871 -0
  39. pylibheif-1.21.2/third_party/libheif/CPPLINT.cfg +2 -0
  40. pylibheif-1.21.2/third_party/libheif/README.md +432 -0
  41. pylibheif-1.21.2/third_party/libheif/appveyor.yml +40 -0
  42. pylibheif-1.21.2/third_party/libheif/build-emscripten.sh +202 -0
  43. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindAOM.cmake +53 -0
  44. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindBrotli.cmake +26 -0
  45. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindDAV1D.cmake +24 -0
  46. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindFFMPEG.cmake +198 -0
  47. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindLIBDE265.cmake +38 -0
  48. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindOPENJPH.cmake +33 -0
  49. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindOpenH264.cmake +26 -0
  50. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindRAV1E.cmake +24 -0
  51. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindSvtEnc.cmake +24 -0
  52. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindUVG266.cmake +24 -0
  53. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindX264.cmake +38 -0
  54. pylibheif-1.21.2/third_party/libheif/cmake/modules/FindX265.cmake +38 -0
  55. pylibheif-1.21.2/third_party/libheif/cmake/modules/Findkvazaar.cmake +36 -0
  56. pylibheif-1.21.2/third_party/libheif/cmake/modules/Findlibsharpyuv.cmake +25 -0
  57. pylibheif-1.21.2/third_party/libheif/cmake/modules/LibFindMacros.cmake +269 -0
  58. pylibheif-1.21.2/third_party/libheif/examples/CMakeLists.txt +133 -0
  59. pylibheif-1.21.2/third_party/libheif/examples/COPYING +20 -0
  60. pylibheif-1.21.2/third_party/libheif/examples/SAI_datafile.cc +238 -0
  61. pylibheif-1.21.2/third_party/libheif/examples/SAI_datafile.h +54 -0
  62. pylibheif-1.21.2/third_party/libheif/examples/benchmark.cc +99 -0
  63. pylibheif-1.21.2/third_party/libheif/examples/benchmark.h +32 -0
  64. pylibheif-1.21.2/third_party/libheif/examples/common.cc +151 -0
  65. pylibheif-1.21.2/third_party/libheif/examples/common.h +47 -0
  66. pylibheif-1.21.2/third_party/libheif/examples/demo.html +364 -0
  67. pylibheif-1.21.2/third_party/libheif/examples/example.avif +0 -0
  68. pylibheif-1.21.2/third_party/libheif/examples/example.heic +0 -0
  69. pylibheif-1.21.2/third_party/libheif/examples/heif-dec.1 +38 -0
  70. pylibheif-1.21.2/third_party/libheif/examples/heif-enc.1 +82 -0
  71. pylibheif-1.21.2/third_party/libheif/examples/heif-info.1 +39 -0
  72. pylibheif-1.21.2/third_party/libheif/examples/heif-test.go +172 -0
  73. pylibheif-1.21.2/third_party/libheif/examples/heif-thumbnailer.1 +33 -0
  74. pylibheif-1.21.2/third_party/libheif/examples/heif_dec.cc +1090 -0
  75. pylibheif-1.21.2/third_party/libheif/examples/heif_enc.cc +2453 -0
  76. pylibheif-1.21.2/third_party/libheif/examples/heif_info.cc +958 -0
  77. pylibheif-1.21.2/third_party/libheif/examples/heif_test.cc +175 -0
  78. pylibheif-1.21.2/third_party/libheif/examples/heif_thumbnailer.cc +224 -0
  79. pylibheif-1.21.2/third_party/libheif/examples/heif_view.cc +465 -0
  80. pylibheif-1.21.2/third_party/libheif/examples/sdl.cc +302 -0
  81. pylibheif-1.21.2/third_party/libheif/examples/sdl.hh +82 -0
  82. pylibheif-1.21.2/third_party/libheif/examples/test_c_api.c +36 -0
  83. pylibheif-1.21.2/third_party/libheif/examples/utf8.manifest +8 -0
  84. pylibheif-1.21.2/third_party/libheif/examples/utf8.rc +3 -0
  85. pylibheif-1.21.2/third_party/libheif/extra/getopt.c +155 -0
  86. pylibheif-1.21.2/third_party/libheif/extra/getopt.h +65 -0
  87. pylibheif-1.21.2/third_party/libheif/extra/getopt_long.c +224 -0
  88. pylibheif-1.21.2/third_party/libheif/fuzzing/CMakeLists.txt +14 -0
  89. pylibheif-1.21.2/third_party/libheif/fuzzing/box_fuzzer.cc +54 -0
  90. pylibheif-1.21.2/third_party/libheif/fuzzing/color_conversion_fuzzer.cc +281 -0
  91. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clap-overflow-divide-zero.heic +0 -0
  92. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-color-conversion-fuzzer-6275694804467712 +0 -0
  93. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-4616081830051840.heic +0 -0
  94. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5120279175102464.heic +0 -0
  95. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5643900194127872.heic +0 -0
  96. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5651556035198976.heic +0 -0
  97. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5662360964956160.heic +0 -0
  98. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5671864958976000.heic +0 -0
  99. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5686319331672064.heic +0 -0
  100. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5718632116518912.heic +0 -0
  101. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5720856641142784.heic +0 -0
  102. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5724458239655936.heic +0 -0
  103. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5732616832024576.heic +0 -0
  104. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5752063708495872.heic +0 -0
  105. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-5757633845264384.heic +0 -0
  106. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/clusterfuzz-testcase-minimized-file-fuzzer-6045213633282048.heic +0 -0
  107. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/colors-no-alpha-thumbnail.heic +0 -0
  108. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/colors-no-alpha.heic +0 -0
  109. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/colors-with-alpha-thumbnail.heic +0 -0
  110. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/colors-with-alpha.heic +0 -0
  111. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/crash-20ca2625096a205937b809a7841e7f019f0b2dc6.heic +0 -0
  112. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_138.heic +0 -0
  113. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_15.heic +0 -0
  114. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_20.heic +0 -0
  115. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_367_1.heic +0 -0
  116. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_367_2.heic +0 -0
  117. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_44.heic +0 -0
  118. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_45.heic +0 -0
  119. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_46_1.heic +0 -0
  120. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_46_2.heic +0 -0
  121. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_47.heic +0 -0
  122. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_48.heic +0 -0
  123. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_49.heic +0 -0
  124. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/github_50.heic +0 -0
  125. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/hbo_heif_context.h_126_1.heic +0 -0
  126. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/j2k-siz-segment-undersized.heic +0 -0
  127. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/region-mask-missing-refs.heic +0 -0
  128. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/rgb_generic_compressed_brotli.heic +0 -0
  129. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/rgb_generic_compressed_defl.heic +0 -0
  130. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/rgb_generic_compressed_tile_deflate.heic +0 -0
  131. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/rgb_generic_compressed_zlib.heic +0 -0
  132. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/rgb_generic_compressed_zlib_rows.heic +0 -0
  133. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/rgb_generic_compressed_zlib_tiled.heic +0 -0
  134. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uaf_heif_context.h_117_1.heic +0 -0
  135. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_ABGR.heic +0 -0
  136. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_ABGR_tiled.heic +0 -0
  137. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_B16R16G16.heic +0 -0
  138. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_B16R16G16_tiled.heic +0 -0
  139. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_M.heic +0 -0
  140. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_M_tiled.heic +0 -0
  141. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_R5G6B5_tiled.heic +0 -0
  142. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_R7+1G7+1B7+1_tiled.heic +0 -0
  143. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_R7G7+1B7_tiled.heic +0 -0
  144. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_R7G7B7_tiled.heic +0 -0
  145. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_RGB.heic +0 -0
  146. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_RGB_tiled.heic +0 -0
  147. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_RGB_tiled_row_tile_align.heic +0 -0
  148. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_RGxB.heic +0 -0
  149. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_RGxB_tiled.heic +0 -0
  150. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_VUY_420.heic +0 -0
  151. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_VUY_422.heic +0 -0
  152. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_Y16U16V16_420.heic +0 -0
  153. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_Y16U16V16_422.heic +0 -0
  154. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_YUV_420.heic +0 -0
  155. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_YUV_422.heic +0 -0
  156. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_YUV_tiled.heic +0 -0
  157. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_YVU_420.heic +0 -0
  158. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_comp_YVU_422.heic +0 -0
  159. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_mix_VUY_420.heic +0 -0
  160. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_mix_VUY_422.heic +0 -0
  161. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_mix_Y16U16V16_420.heic +0 -0
  162. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_mix_Y16U16V16_422.heic +0 -0
  163. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_mix_YUV_420.heic +0 -0
  164. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_mix_YUV_422.heic +0 -0
  165. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_mix_YVU_420.heic +0 -0
  166. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_mix_YVU_422.heic +0 -0
  167. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_ABGR.heic +0 -0
  168. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_ABGR_tiled.heic +0 -0
  169. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_B16R16G16.heic +0 -0
  170. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_B16R16G16_tiled.heic +0 -0
  171. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_M.heic +0 -0
  172. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_M_tiled.heic +0 -0
  173. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_R5G6B5_tiled.heic +0 -0
  174. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_R7+1G7+1B7+1_tiled.heic +0 -0
  175. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_R7G7+1B7_tiled.heic +0 -0
  176. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_R7G7B7_tiled.heic +0 -0
  177. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_R8G8B8A8_bsz0_psz10_tiled.heic +0 -0
  178. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_R8G8B8A8_bsz0_psz5_tiled.heic +0 -0
  179. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_R8G8B8_bsz0_psz10_tiled.heic +0 -0
  180. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_R8G8B8_bsz0_psz5_tiled.heic +0 -0
  181. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_RGB.heic +0 -0
  182. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_RGB_tiled.heic +0 -0
  183. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_RGB_tiled_row_tile_align.heic +0 -0
  184. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_RGxB.heic +0 -0
  185. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_RGxB_tiled.heic +0 -0
  186. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_pix_YUV_tiled.heic +0 -0
  187. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_ABGR.heic +0 -0
  188. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_ABGR_tiled.heic +0 -0
  189. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_B16R16G16.heic +0 -0
  190. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_B16R16G16_tiled.heic +0 -0
  191. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_M.heic +0 -0
  192. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_M_tiled.heic +0 -0
  193. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_R5G6B5_tiled.heic +0 -0
  194. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_R7+1G7+1B7+1_tiled.heic +0 -0
  195. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_R7G7+1B7_tiled.heic +0 -0
  196. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_R7G7B7_tiled.heic +0 -0
  197. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_RGB.heic +0 -0
  198. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_RGB_tiled.heic +0 -0
  199. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_RGB_tiled_row_tile_align.heic +0 -0
  200. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_RGxB.heic +0 -0
  201. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_RGxB_tiled.heic +0 -0
  202. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_row_YUV_tiled.heic +0 -0
  203. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_ABGR_tiled.heic +0 -0
  204. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_B16R16G16_tiled.heic +0 -0
  205. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_M_tiled.heic +0 -0
  206. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_R5G6B5_tiled.heic +0 -0
  207. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_R7+1G7+1B7+1_tiled.heic +0 -0
  208. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_R7G7+1B7_tiled.heic +0 -0
  209. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_R7G7B7_tiled.heic +0 -0
  210. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_RGB_tiled.heic +0 -0
  211. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_RGB_tiled_row_tile_align.heic +0 -0
  212. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_RGxB_tiled.heic +0 -0
  213. pylibheif-1.21.2/third_party/libheif/fuzzing/data/corpus/uncompressed_tile_YUV_tiled.heic +0 -0
  214. pylibheif-1.21.2/third_party/libheif/fuzzing/data/dictionary.txt +48 -0
  215. pylibheif-1.21.2/third_party/libheif/fuzzing/encoder_fuzzer.cc +199 -0
  216. pylibheif-1.21.2/third_party/libheif/fuzzing/file_fuzzer.cc +173 -0
  217. pylibheif-1.21.2/third_party/libheif/gdk-pixbuf/CMakeLists.txt +21 -0
  218. pylibheif-1.21.2/third_party/libheif/gdk-pixbuf/pixbufloader-heif.c +240 -0
  219. pylibheif-1.21.2/third_party/libheif/gnome/CMakeLists.txt +3 -0
  220. pylibheif-1.21.2/third_party/libheif/gnome/heif.thumbnailer +4 -0
  221. pylibheif-1.21.2/third_party/libheif/go/heif/heif.go +1520 -0
  222. pylibheif-1.21.2/third_party/libheif/go/heif/heif_test.go +184 -0
  223. pylibheif-1.21.2/third_party/libheif/heifio/CMakeLists.txt +97 -0
  224. pylibheif-1.21.2/third_party/libheif/heifio/decoder.h +42 -0
  225. pylibheif-1.21.2/third_party/libheif/heifio/decoder_jpeg.cc +518 -0
  226. pylibheif-1.21.2/third_party/libheif/heifio/decoder_jpeg.h +35 -0
  227. pylibheif-1.21.2/third_party/libheif/heifio/decoder_png.cc +453 -0
  228. pylibheif-1.21.2/third_party/libheif/heifio/decoder_png.h +35 -0
  229. pylibheif-1.21.2/third_party/libheif/heifio/decoder_tiff.cc +492 -0
  230. pylibheif-1.21.2/third_party/libheif/heifio/decoder_tiff.h +36 -0
  231. pylibheif-1.21.2/third_party/libheif/heifio/decoder_y4m.cc +149 -0
  232. pylibheif-1.21.2/third_party/libheif/heifio/decoder_y4m.h +43 -0
  233. pylibheif-1.21.2/third_party/libheif/heifio/encoder.cc +98 -0
  234. pylibheif-1.21.2/third_party/libheif/heifio/encoder.h +65 -0
  235. pylibheif-1.21.2/third_party/libheif/heifio/encoder_jpeg.cc +321 -0
  236. pylibheif-1.21.2/third_party/libheif/heifio/encoder_jpeg.h +67 -0
  237. pylibheif-1.21.2/third_party/libheif/heifio/encoder_png.cc +247 -0
  238. pylibheif-1.21.2/third_party/libheif/heifio/encoder_png.h +76 -0
  239. pylibheif-1.21.2/third_party/libheif/heifio/encoder_tiff.cc +77 -0
  240. pylibheif-1.21.2/third_party/libheif/heifio/encoder_tiff.h +66 -0
  241. pylibheif-1.21.2/third_party/libheif/heifio/encoder_y4m.cc +89 -0
  242. pylibheif-1.21.2/third_party/libheif/heifio/encoder_y4m.h +59 -0
  243. pylibheif-1.21.2/third_party/libheif/heifio/exif.cc +263 -0
  244. pylibheif-1.21.2/third_party/libheif/heifio/exif.h +33 -0
  245. pylibheif-1.21.2/third_party/libheif/heifio/stubs.cc +64 -0
  246. pylibheif-1.21.2/third_party/libheif/libheif/CMakeLists.txt +342 -0
  247. pylibheif-1.21.2/third_party/libheif/libheif/Doxyfile.in +2562 -0
  248. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif.cc +31 -0
  249. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif.h +41 -0
  250. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_aux_images.cc +336 -0
  251. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_aux_images.h +182 -0
  252. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_brands.cc +473 -0
  253. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_brands.h +376 -0
  254. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_color.cc +573 -0
  255. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_color.h +363 -0
  256. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_context.cc +290 -0
  257. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_context.h +329 -0
  258. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_cxx.h +1390 -0
  259. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_decoding.cc +251 -0
  260. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_decoding.h +172 -0
  261. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_emscripten.h +604 -0
  262. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_encoding.cc +802 -0
  263. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_encoding.h +395 -0
  264. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_entity_groups.cc +99 -0
  265. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_entity_groups.h +60 -0
  266. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_error.h +304 -0
  267. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_experimental.cc +472 -0
  268. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_experimental.h +330 -0
  269. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_image.cc +419 -0
  270. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_image.h +355 -0
  271. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_image_handle.cc +177 -0
  272. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_image_handle.h +129 -0
  273. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_items.cc +377 -0
  274. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_items.h +260 -0
  275. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_library.cc +107 -0
  276. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_library.h +219 -0
  277. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_metadata.cc +252 -0
  278. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_metadata.h +136 -0
  279. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_plugin.cc +34 -0
  280. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_plugin.h +378 -0
  281. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_properties.cc +460 -0
  282. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_properties.h +235 -0
  283. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_regions.cc +729 -0
  284. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_regions.h +868 -0
  285. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_security.cc +67 -0
  286. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_security.h +107 -0
  287. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_sequences.cc +837 -0
  288. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_sequences.h +644 -0
  289. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_tai_timestamps.cc +273 -0
  290. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_tai_timestamps.h +202 -0
  291. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_text.cc +158 -0
  292. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_text.h +161 -0
  293. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_tiling.cc +279 -0
  294. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_tiling.h +137 -0
  295. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_uncompressed.cc +118 -0
  296. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_uncompressed.h +109 -0
  297. pylibheif-1.21.2/third_party/libheif/libheif/api/libheif/heif_version.h.in +38 -0
  298. pylibheif-1.21.2/third_party/libheif/libheif/api_structs.h +114 -0
  299. pylibheif-1.21.2/third_party/libheif/libheif/bitstream.cc +987 -0
  300. pylibheif-1.21.2/third_party/libheif/libheif/bitstream.h +523 -0
  301. pylibheif-1.21.2/third_party/libheif/libheif/box.cc +5157 -0
  302. pylibheif-1.21.2/third_party/libheif/libheif/box.h +1927 -0
  303. pylibheif-1.21.2/third_party/libheif/libheif/brands.cc +170 -0
  304. pylibheif-1.21.2/third_party/libheif/libheif/brands.h +32 -0
  305. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avc_boxes.cc +461 -0
  306. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avc_boxes.h +120 -0
  307. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avc_dec.cc +62 -0
  308. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avc_dec.h +53 -0
  309. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avc_enc.cc +297 -0
  310. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avc_enc.h +78 -0
  311. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avif_boxes.cc +563 -0
  312. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avif_boxes.h +171 -0
  313. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avif_dec.cc +74 -0
  314. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avif_dec.h +53 -0
  315. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avif_enc.cc +216 -0
  316. pylibheif-1.21.2/third_party/libheif/libheif/codecs/avif_enc.h +75 -0
  317. pylibheif-1.21.2/third_party/libheif/libheif/codecs/decoder.cc +469 -0
  318. pylibheif-1.21.2/third_party/libheif/libheif/codecs/decoder.h +128 -0
  319. pylibheif-1.21.2/third_party/libheif/libheif/codecs/encoder.cc +168 -0
  320. pylibheif-1.21.2/third_party/libheif/libheif/codecs/encoder.h +93 -0
  321. pylibheif-1.21.2/third_party/libheif/libheif/codecs/hevc_boxes.cc +712 -0
  322. pylibheif-1.21.2/third_party/libheif/libheif/codecs/hevc_boxes.h +169 -0
  323. pylibheif-1.21.2/third_party/libheif/libheif/codecs/hevc_dec.cc +65 -0
  324. pylibheif-1.21.2/third_party/libheif/libheif/codecs/hevc_dec.h +54 -0
  325. pylibheif-1.21.2/third_party/libheif/libheif/codecs/hevc_enc.cc +303 -0
  326. pylibheif-1.21.2/third_party/libheif/libheif/codecs/hevc_enc.h +78 -0
  327. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg2000_boxes.cc +518 -0
  328. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg2000_boxes.h +529 -0
  329. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg2000_dec.cc +84 -0
  330. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg2000_dec.h +56 -0
  331. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg2000_enc.cc +105 -0
  332. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg2000_enc.h +90 -0
  333. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg_boxes.cc +78 -0
  334. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg_boxes.h +66 -0
  335. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg_dec.cc +160 -0
  336. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg_dec.h +68 -0
  337. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg_enc.cc +131 -0
  338. pylibheif-1.21.2/third_party/libheif/libheif/codecs/jpeg_enc.h +87 -0
  339. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_abstract.cc +335 -0
  340. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_abstract.h +222 -0
  341. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_component_interleave.cc +96 -0
  342. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_component_interleave.h +45 -0
  343. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_mixed_interleave.cc +132 -0
  344. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_mixed_interleave.h +46 -0
  345. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_pixel_interleave.cc +132 -0
  346. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_pixel_interleave.h +65 -0
  347. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_row_interleave.cc +116 -0
  348. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_row_interleave.h +49 -0
  349. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_tile_component_interleave.cc +131 -0
  350. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/decoder_tile_component_interleave.h +44 -0
  351. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/unc_boxes.cc +775 -0
  352. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/unc_boxes.h +383 -0
  353. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/unc_codec.cc +1048 -0
  354. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/unc_codec.h +105 -0
  355. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/unc_dec.cc +212 -0
  356. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/unc_dec.h +84 -0
  357. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/unc_enc.cc +74 -0
  358. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/unc_enc.h +86 -0
  359. pylibheif-1.21.2/third_party/libheif/libheif/codecs/uncompressed/unc_types.h +292 -0
  360. pylibheif-1.21.2/third_party/libheif/libheif/codecs/vvc_boxes.cc +539 -0
  361. pylibheif-1.21.2/third_party/libheif/libheif/codecs/vvc_boxes.h +121 -0
  362. pylibheif-1.21.2/third_party/libheif/libheif/codecs/vvc_dec.cc +71 -0
  363. pylibheif-1.21.2/third_party/libheif/libheif/codecs/vvc_dec.h +54 -0
  364. pylibheif-1.21.2/third_party/libheif/libheif/codecs/vvc_enc.cc +288 -0
  365. pylibheif-1.21.2/third_party/libheif/libheif/codecs/vvc_enc.h +79 -0
  366. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/alpha.cc +287 -0
  367. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/alpha.h +67 -0
  368. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/chroma_sampling.cc +950 -0
  369. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/chroma_sampling.h +111 -0
  370. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/colorconversion.cc +648 -0
  371. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/colorconversion.h +153 -0
  372. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/hdr_sdr.cc +243 -0
  373. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/hdr_sdr.h +66 -0
  374. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/monochrome.cc +283 -0
  375. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/monochrome.h +66 -0
  376. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/rgb2rgb.cc +750 -0
  377. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/rgb2rgb.h +143 -0
  378. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/rgb2yuv.cc +912 -0
  379. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/rgb2yuv.h +106 -0
  380. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/rgb2yuv_sharp.cc +281 -0
  381. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/rgb2yuv_sharp.h +48 -0
  382. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/yuv2rgb.cc +724 -0
  383. pylibheif-1.21.2/third_party/libheif/libheif/color-conversion/yuv2rgb.h +106 -0
  384. pylibheif-1.21.2/third_party/libheif/libheif/common_utils.cc +184 -0
  385. pylibheif-1.21.2/third_party/libheif/libheif/common_utils.h +126 -0
  386. pylibheif-1.21.2/third_party/libheif/libheif/compression.h +97 -0
  387. pylibheif-1.21.2/third_party/libheif/libheif/compression_brotli.cc +129 -0
  388. pylibheif-1.21.2/third_party/libheif/libheif/compression_zlib.cc +176 -0
  389. pylibheif-1.21.2/third_party/libheif/libheif/context.cc +2053 -0
  390. pylibheif-1.21.2/third_party/libheif/libheif/context.h +320 -0
  391. pylibheif-1.21.2/third_party/libheif/libheif/error.cc +354 -0
  392. pylibheif-1.21.2/third_party/libheif/libheif/error.h +177 -0
  393. pylibheif-1.21.2/third_party/libheif/libheif/file.cc +1292 -0
  394. pylibheif-1.21.2/third_party/libheif/libheif/file.h +303 -0
  395. pylibheif-1.21.2/third_party/libheif/libheif/file_layout.cc +268 -0
  396. pylibheif-1.21.2/third_party/libheif/libheif/file_layout.h +97 -0
  397. pylibheif-1.21.2/third_party/libheif/libheif/image-items/avc.cc +76 -0
  398. pylibheif-1.21.2/third_party/libheif/libheif/image-items/avc.h +63 -0
  399. pylibheif-1.21.2/third_party/libheif/libheif/image-items/avif.cc +87 -0
  400. pylibheif-1.21.2/third_party/libheif/libheif/image-items/avif.h +68 -0
  401. pylibheif-1.21.2/third_party/libheif/libheif/image-items/grid.cc +892 -0
  402. pylibheif-1.21.2/third_party/libheif/libheif/image-items/grid.h +178 -0
  403. pylibheif-1.21.2/third_party/libheif/libheif/image-items/hevc.cc +214 -0
  404. pylibheif-1.21.2/third_party/libheif/libheif/image-items/hevc.h +70 -0
  405. pylibheif-1.21.2/third_party/libheif/libheif/image-items/iden.cc +155 -0
  406. pylibheif-1.21.2/third_party/libheif/libheif/image-items/iden.h +72 -0
  407. pylibheif-1.21.2/third_party/libheif/libheif/image-items/image_item.cc +1135 -0
  408. pylibheif-1.21.2/third_party/libheif/libheif/image-items/image_item.h +491 -0
  409. pylibheif-1.21.2/third_party/libheif/libheif/image-items/jpeg.cc +86 -0
  410. pylibheif-1.21.2/third_party/libheif/libheif/image-items/jpeg.h +60 -0
  411. pylibheif-1.21.2/third_party/libheif/libheif/image-items/jpeg2000.cc +102 -0
  412. pylibheif-1.21.2/third_party/libheif/libheif/image-items/jpeg2000.h +63 -0
  413. pylibheif-1.21.2/third_party/libheif/libheif/image-items/mask_image.cc +214 -0
  414. pylibheif-1.21.2/third_party/libheif/libheif/image-items/mask_image.h +111 -0
  415. pylibheif-1.21.2/third_party/libheif/libheif/image-items/overlay.cc +482 -0
  416. pylibheif-1.21.2/third_party/libheif/libheif/image-items/overlay.h +140 -0
  417. pylibheif-1.21.2/third_party/libheif/libheif/image-items/tiled.cc +932 -0
  418. pylibheif-1.21.2/third_party/libheif/libheif/image-items/tiled.h +224 -0
  419. pylibheif-1.21.2/third_party/libheif/libheif/image-items/unc_image.cc +637 -0
  420. pylibheif-1.21.2/third_party/libheif/libheif/image-items/unc_image.h +112 -0
  421. pylibheif-1.21.2/third_party/libheif/libheif/image-items/vvc.cc +102 -0
  422. pylibheif-1.21.2/third_party/libheif/libheif/image-items/vvc.h +62 -0
  423. pylibheif-1.21.2/third_party/libheif/libheif/init.cc +449 -0
  424. pylibheif-1.21.2/third_party/libheif/libheif/init.h +54 -0
  425. pylibheif-1.21.2/third_party/libheif/libheif/logging.cc +75 -0
  426. pylibheif-1.21.2/third_party/libheif/libheif/logging.h +66 -0
  427. pylibheif-1.21.2/third_party/libheif/libheif/mdat_data.h +65 -0
  428. pylibheif-1.21.2/third_party/libheif/libheif/mini.cc +1033 -0
  429. pylibheif-1.21.2/third_party/libheif/libheif/mini.h +157 -0
  430. pylibheif-1.21.2/third_party/libheif/libheif/nclx.cc +510 -0
  431. pylibheif-1.21.2/third_party/libheif/libheif/nclx.h +226 -0
  432. pylibheif-1.21.2/third_party/libheif/libheif/pixelimage.cc +1879 -0
  433. pylibheif-1.21.2/third_party/libheif/libheif/pixelimage.h +400 -0
  434. pylibheif-1.21.2/third_party/libheif/libheif/plugin_registry.cc +375 -0
  435. pylibheif-1.21.2/third_party/libheif/libheif/plugin_registry.h +85 -0
  436. pylibheif-1.21.2/third_party/libheif/libheif/plugins/CMakeLists.txt +145 -0
  437. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_aom.cc +444 -0
  438. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_aom.h +34 -0
  439. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_dav1d.cc +451 -0
  440. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_dav1d.h +34 -0
  441. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_ffmpeg.cc +668 -0
  442. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_ffmpeg.h +34 -0
  443. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_jpeg.cc +448 -0
  444. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_jpeg.h +34 -0
  445. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_libde265.cc +514 -0
  446. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_libde265.h +34 -0
  447. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_openh264.cc +472 -0
  448. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_openh264.h +34 -0
  449. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_openjpeg.cc +490 -0
  450. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_openjpeg.h +36 -0
  451. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_uncompressed.cc +73 -0
  452. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_uncompressed.h +28 -0
  453. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_vvdec.cc +434 -0
  454. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_vvdec.h +34 -0
  455. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_webcodecs.cc +812 -0
  456. pylibheif-1.21.2/third_party/libheif/libheif/plugins/decoder_webcodecs.h +34 -0
  457. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_aom.cc +1421 -0
  458. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_aom.h +34 -0
  459. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_jpeg.cc +534 -0
  460. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_jpeg.h +34 -0
  461. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_kvazaar.cc +978 -0
  462. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_kvazaar.h +47 -0
  463. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_mask.cc +304 -0
  464. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_mask.h +36 -0
  465. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_openjpeg.cc +684 -0
  466. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_openjpeg.h +36 -0
  467. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_openjph.cc +939 -0
  468. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_openjph.h +37 -0
  469. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_rav1e.cc +883 -0
  470. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_rav1e.h +34 -0
  471. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_svt.cc +1258 -0
  472. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_svt.h +34 -0
  473. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_uncompressed.cc +370 -0
  474. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_uncompressed.h +55 -0
  475. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_uvg266.cc +939 -0
  476. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_uvg266.h +47 -0
  477. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_vvenc.cc +886 -0
  478. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_vvenc.h +34 -0
  479. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_x264.cc +1238 -0
  480. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_x264.h +34 -0
  481. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_x265.cc +1300 -0
  482. pylibheif-1.21.2/third_party/libheif/libheif/plugins/encoder_x265.h +45 -0
  483. pylibheif-1.21.2/third_party/libheif/libheif/plugins/nalu_utils.cc +97 -0
  484. pylibheif-1.21.2/third_party/libheif/libheif/plugins/nalu_utils.h +74 -0
  485. pylibheif-1.21.2/third_party/libheif/libheif/plugins_unix.cc +119 -0
  486. pylibheif-1.21.2/third_party/libheif/libheif/plugins_unix.h +51 -0
  487. pylibheif-1.21.2/third_party/libheif/libheif/plugins_windows.cc +109 -0
  488. pylibheif-1.21.2/third_party/libheif/libheif/plugins_windows.h +54 -0
  489. pylibheif-1.21.2/third_party/libheif/libheif/region.cc +625 -0
  490. pylibheif-1.21.2/third_party/libheif/libheif/region.h +213 -0
  491. pylibheif-1.21.2/third_party/libheif/libheif/security_limits.cc +254 -0
  492. pylibheif-1.21.2/third_party/libheif/libheif/security_limits.h +84 -0
  493. pylibheif-1.21.2/third_party/libheif/libheif/sequences/chunk.cc +114 -0
  494. pylibheif-1.21.2/third_party/libheif/libheif/sequences/chunk.h +84 -0
  495. pylibheif-1.21.2/third_party/libheif/libheif/sequences/seq_boxes.cc +2491 -0
  496. pylibheif-1.21.2/third_party/libheif/libheif/sequences/seq_boxes.h +1035 -0
  497. pylibheif-1.21.2/third_party/libheif/libheif/sequences/track.cc +1155 -0
  498. pylibheif-1.21.2/third_party/libheif/libheif/sequences/track.h +289 -0
  499. pylibheif-1.21.2/third_party/libheif/libheif/sequences/track_metadata.cc +189 -0
  500. pylibheif-1.21.2/third_party/libheif/libheif/sequences/track_metadata.h +49 -0
  501. pylibheif-1.21.2/third_party/libheif/libheif/sequences/track_visual.cc +719 -0
  502. pylibheif-1.21.2/third_party/libheif/libheif/sequences/track_visual.h +104 -0
  503. pylibheif-1.21.2/third_party/libheif/libheif/text.cc +39 -0
  504. pylibheif-1.21.2/third_party/libheif/libheif/text.h +57 -0
  505. pylibheif-1.21.2/third_party/libheif/libheif.pc.in +15 -0
  506. pylibheif-1.21.2/third_party/libheif/logos/sponsors/shopify.svg +26 -0
  507. pylibheif-1.21.2/third_party/libheif/post.js +183 -0
  508. pylibheif-1.21.2/third_party/libheif/scripts/build-android-libs.sh +78 -0
  509. pylibheif-1.21.2/third_party/libheif/scripts/check-emscripten-enums.sh +76 -0
  510. pylibheif-1.21.2/third_party/libheif/scripts/check-go-enums.sh +76 -0
  511. pylibheif-1.21.2/third_party/libheif/scripts/check-gofmt.sh +49 -0
  512. pylibheif-1.21.2/third_party/libheif/scripts/check-licenses.sh +47 -0
  513. pylibheif-1.21.2/third_party/libheif/scripts/configure-fuzzer.sh +34 -0
  514. pylibheif-1.21.2/third_party/libheif/scripts/cpplint.py +6097 -0
  515. pylibheif-1.21.2/third_party/libheif/scripts/encode-all-sequences.sh +81 -0
  516. pylibheif-1.21.2/third_party/libheif/scripts/install-ci-linux.sh +219 -0
  517. pylibheif-1.21.2/third_party/libheif/scripts/install-ci-osx.sh +80 -0
  518. pylibheif-1.21.2/third_party/libheif/scripts/install-clang.sh +56 -0
  519. pylibheif-1.21.2/third_party/libheif/scripts/install-emscripten.sh +44 -0
  520. pylibheif-1.21.2/third_party/libheif/scripts/pre-commit.hook +105 -0
  521. pylibheif-1.21.2/third_party/libheif/scripts/prepare-ci.sh +50 -0
  522. pylibheif-1.21.2/third_party/libheif/scripts/run-ci.sh +295 -0
  523. pylibheif-1.21.2/third_party/libheif/scripts/test-javascript.js +44 -0
  524. pylibheif-1.21.2/third_party/libheif/tests/CMakeLists.txt +110 -0
  525. pylibheif-1.21.2/third_party/libheif/tests/avc_box.cc +84 -0
  526. pylibheif-1.21.2/third_party/libheif/tests/bitstream_tests.cc +86 -0
  527. pylibheif-1.21.2/third_party/libheif/tests/box_equals.cc +65 -0
  528. pylibheif-1.21.2/third_party/libheif/tests/catch_amalgamated.cpp +11811 -0
  529. pylibheif-1.21.2/third_party/libheif/tests/catch_amalgamated.hpp +14106 -0
  530. pylibheif-1.21.2/third_party/libheif/tests/conversion.cc +758 -0
  531. pylibheif-1.21.2/third_party/libheif/tests/cxx_wrapper.cc +46 -0
  532. pylibheif-1.21.2/third_party/libheif/tests/data/heifio/mono.tif +0 -0
  533. pylibheif-1.21.2/third_party/libheif/tests/data/heifio/mono_planar.tif +0 -0
  534. pylibheif-1.21.2/third_party/libheif/tests/data/heifio/rgb.tif +0 -0
  535. pylibheif-1.21.2/third_party/libheif/tests/data/heifio/rgb_planar.tif +0 -0
  536. pylibheif-1.21.2/third_party/libheif/tests/data/heifio/rgba.tif +0 -0
  537. pylibheif-1.21.2/third_party/libheif/tests/data/heifio/rgba_planar.tif +0 -0
  538. pylibheif-1.21.2/third_party/libheif/tests/data/lightning_mini.heif +0 -0
  539. pylibheif-1.21.2/third_party/libheif/tests/data/rgb_generic_compressed_brotli.heif +0 -0
  540. pylibheif-1.21.2/third_party/libheif/tests/data/rgb_generic_compressed_defl.heif +0 -0
  541. pylibheif-1.21.2/third_party/libheif/tests/data/rgb_generic_compressed_tile_deflate.heif +0 -0
  542. pylibheif-1.21.2/third_party/libheif/tests/data/rgb_generic_compressed_zlib.heif +0 -0
  543. pylibheif-1.21.2/third_party/libheif/tests/data/rgb_generic_compressed_zlib_rows.heif +0 -0
  544. pylibheif-1.21.2/third_party/libheif/tests/data/rgb_generic_compressed_zlib_tiled.heif +0 -0
  545. pylibheif-1.21.2/third_party/libheif/tests/data/simple_osm_tile_alpha.avif +0 -0
  546. pylibheif-1.21.2/third_party/libheif/tests/data/simple_osm_tile_meta.avif +0 -0
  547. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_ABGR.heif +0 -0
  548. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_ABGR_tiled.heif +0 -0
  549. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_B16R16G16.heif +0 -0
  550. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_B16R16G16_tiled.heif +0 -0
  551. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_M.heif +0 -0
  552. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_M_tiled.heif +0 -0
  553. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_R5G6B5_tiled.heif +0 -0
  554. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_R7+1G7+1B7+1_tiled.heif +0 -0
  555. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_R7G7+1B7_tiled.heif +0 -0
  556. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_R7G7B7_tiled.heif +0 -0
  557. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_RGB.heif +0 -0
  558. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_RGB_tiled.heif +0 -0
  559. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_RGB_tiled_row_tile_align.heif +0 -0
  560. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_RGxB.heif +0 -0
  561. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_RGxB_tiled.heif +0 -0
  562. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_VUY_420.heif +0 -0
  563. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_VUY_422.heif +0 -0
  564. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_Y16U16V16_420.heif +0 -0
  565. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_Y16U16V16_422.heif +0 -0
  566. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_YUV_420.heif +0 -0
  567. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_YUV_422.heif +0 -0
  568. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_YUV_tiled.heif +0 -0
  569. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_YVU_420.heif +0 -0
  570. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_comp_YVU_422.heif +0 -0
  571. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_mix_VUY_420.heif +0 -0
  572. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_mix_VUY_422.heif +0 -0
  573. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_mix_Y16U16V16_420.heif +0 -0
  574. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_mix_Y16U16V16_422.heif +0 -0
  575. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_mix_YUV_420.heif +0 -0
  576. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_mix_YUV_422.heif +0 -0
  577. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_mix_YVU_420.heif +0 -0
  578. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_mix_YVU_422.heif +0 -0
  579. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_ABGR.heif +0 -0
  580. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_ABGR_tiled.heif +0 -0
  581. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_B16R16G16.heif +0 -0
  582. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_B16R16G16_tiled.heif +0 -0
  583. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_M.heif +0 -0
  584. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_M_tiled.heif +0 -0
  585. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_R5G6B5_tiled.heif +0 -0
  586. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_R7+1G7+1B7+1_tiled.heif +0 -0
  587. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_R7G7+1B7_tiled.heif +0 -0
  588. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_R7G7B7_tiled.heif +0 -0
  589. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_R8G8B8A8_bsz0_psz10_tiled.heif +0 -0
  590. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_R8G8B8A8_bsz0_psz5_tiled.heif +0 -0
  591. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_R8G8B8_bsz0_psz10_tiled.heif +0 -0
  592. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_R8G8B8_bsz0_psz5_tiled.heif +0 -0
  593. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_RGB.heif +0 -0
  594. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_RGB_tiled.heif +0 -0
  595. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_RGB_tiled_row_tile_align.heif +0 -0
  596. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_RGxB.heif +0 -0
  597. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_RGxB_tiled.heif +0 -0
  598. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_pix_YUV_tiled.heif +0 -0
  599. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_ABGR.heif +0 -0
  600. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_ABGR_tiled.heif +0 -0
  601. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_B16R16G16.heif +0 -0
  602. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_B16R16G16_tiled.heif +0 -0
  603. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_M.heif +0 -0
  604. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_M_tiled.heif +0 -0
  605. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_R5G6B5_tiled.heif +0 -0
  606. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_R7+1G7+1B7+1_tiled.heif +0 -0
  607. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_R7G7+1B7_tiled.heif +0 -0
  608. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_R7G7B7_tiled.heif +0 -0
  609. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_RGB.heif +0 -0
  610. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_RGB_tiled.heif +0 -0
  611. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_RGB_tiled_row_tile_align.heif +0 -0
  612. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_RGxB.heif +0 -0
  613. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_RGxB_tiled.heif +0 -0
  614. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_row_YUV_tiled.heif +0 -0
  615. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_ABGR_tiled.heif +0 -0
  616. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_B16R16G16_tiled.heif +0 -0
  617. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_M_tiled.heif +0 -0
  618. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_R5G6B5_tiled.heif +0 -0
  619. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_R7+1G7+1B7+1_tiled.heif +0 -0
  620. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_R7G7+1B7_tiled.heif +0 -0
  621. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_R7G7B7_tiled.heif +0 -0
  622. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_RGB_tiled.heif +0 -0
  623. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_RGB_tiled_row_tile_align.heif +0 -0
  624. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_RGxB_tiled.heif +0 -0
  625. pylibheif-1.21.2/third_party/libheif/tests/data/uncompressed_tile_YUV_tiled.heif +0 -0
  626. pylibheif-1.21.2/third_party/libheif/tests/encode.cc +158 -0
  627. pylibheif-1.21.2/third_party/libheif/tests/encode_htj2k.cc +85 -0
  628. pylibheif-1.21.2/third_party/libheif/tests/encode_jpeg2000.cc +86 -0
  629. pylibheif-1.21.2/third_party/libheif/tests/extended_type.cc +93 -0
  630. pylibheif-1.21.2/third_party/libheif/tests/file_layout.cc +49 -0
  631. pylibheif-1.21.2/third_party/libheif/tests/idat.cc +51 -0
  632. pylibheif-1.21.2/third_party/libheif/tests/jpeg2000.cc +729 -0
  633. pylibheif-1.21.2/third_party/libheif/tests/main.cc +28 -0
  634. pylibheif-1.21.2/third_party/libheif/tests/mini_box.cc +274 -0
  635. pylibheif-1.21.2/third_party/libheif/tests/mini_decode.cc +109 -0
  636. pylibheif-1.21.2/third_party/libheif/tests/pixel_data_types.cc +178 -0
  637. pylibheif-1.21.2/third_party/libheif/tests/region.cc +588 -0
  638. pylibheif-1.21.2/third_party/libheif/tests/tai.cc +140 -0
  639. pylibheif-1.21.2/third_party/libheif/tests/test-config.cc.in +30 -0
  640. pylibheif-1.21.2/third_party/libheif/tests/test-config.h +36 -0
  641. pylibheif-1.21.2/third_party/libheif/tests/test-race.go +110 -0
  642. pylibheif-1.21.2/third_party/libheif/tests/test_utils.cc +221 -0
  643. pylibheif-1.21.2/third_party/libheif/tests/test_utils.h +53 -0
  644. pylibheif-1.21.2/third_party/libheif/tests/text.cc +166 -0
  645. pylibheif-1.21.2/third_party/libheif/tests/tiffdecode.cc +146 -0
  646. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_box.cc +646 -0
  647. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode.cc +169 -0
  648. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode.h +123 -0
  649. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode_generic_compression.cc +216 -0
  650. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode_mono.cc +199 -0
  651. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode_rgb.cc +407 -0
  652. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode_rgb16.cc +453 -0
  653. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode_rgb565.cc +407 -0
  654. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode_rgb7.cc +407 -0
  655. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode_ycbcr.cc +401 -0
  656. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode_ycbcr420.cc +690 -0
  657. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_decode_ycbcr422.cc +687 -0
  658. pylibheif-1.21.2/third_party/libheif/tests/uncompressed_encode.cc +778 -0
  659. pylibheif-1.21.2/third_party/libheif/third-party/aom.cmd +25 -0
  660. pylibheif-1.21.2/third_party/libheif/third-party/dav1d.cmd +29 -0
  661. pylibheif-1.21.2/third_party/libheif/third-party/libsharpyuv.cmd +20 -0
  662. pylibheif-1.21.2/third_party/libheif/third-party/rav1e.cmd +21 -0
  663. pylibheif-1.21.2/third_party/libheif/third-party/svt.cmd +19 -0
  664. pylibheif-1.21.2/uv.lock +93 -0
@@ -0,0 +1,105 @@
1
+ name: Build and Publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+ pull_request:
8
+ branches: [ main ]
9
+ workflow_dispatch:
10
+
11
+ jobs:
12
+ build_wheels:
13
+ name: Build wheels on ${{ matrix.os }}
14
+ runs-on: ${{ matrix.os }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ os: [ubuntu-latest, windows-latest, macos-14]
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ with:
23
+ submodules: recursive
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v5
27
+ with:
28
+ python-version: '3.12'
29
+
30
+ # Linux dependencies
31
+ - name: Install Linux dependencies
32
+ if: runner.os == 'Linux'
33
+ run: |
34
+ sudo apt-get update
35
+ sudo apt-get install -y libopenjp2-7-dev nasm
36
+
37
+ # macOS dependencies
38
+ - name: Install macOS dependencies
39
+ if: runner.os == 'macOS'
40
+ run: |
41
+ brew install openjpeg nasm
42
+
43
+ # Windows dependencies
44
+ - name: Install Windows dependencies
45
+ if: runner.os == 'Windows'
46
+ run: |
47
+ choco install nasm
48
+
49
+ - name: Build wheels
50
+ uses: pypa/cibuildwheel@v2.21.0
51
+ env:
52
+ # Build for Python 3.11-3.14
53
+ CIBW_BUILD: cp311-* cp312-* cp313-* cp314-*
54
+ # Skip 32-bit builds and musllinux
55
+ CIBW_SKIP: "*-win32 *-manylinux_i686 *musllinux*"
56
+ # Install build dependencies
57
+ CIBW_BEFORE_BUILD_LINUX: |
58
+ yum install -y openjpeg2-devel nasm || apt-get install -y libopenjp2-7-dev nasm
59
+ CIBW_BEFORE_BUILD_MACOS: |
60
+ brew install openjpeg nasm
61
+ # Test the wheel
62
+ CIBW_TEST_REQUIRES: pytest numpy
63
+ CIBW_TEST_COMMAND: pytest {project}/tests -v
64
+
65
+ - uses: actions/upload-artifact@v4
66
+ with:
67
+ name: wheels-${{ matrix.os }}
68
+ path: ./wheelhouse/*.whl
69
+
70
+ build_sdist:
71
+ name: Build source distribution
72
+ runs-on: ubuntu-latest
73
+ steps:
74
+ - uses: actions/checkout@v4
75
+ with:
76
+ submodules: recursive
77
+
78
+ - name: Build sdist
79
+ run: pipx run build --sdist
80
+
81
+ - uses: actions/upload-artifact@v4
82
+ with:
83
+ name: sdist
84
+ path: dist/*.tar.gz
85
+
86
+ publish:
87
+ name: Publish to PyPI
88
+ needs: [build_wheels, build_sdist]
89
+ runs-on: ubuntu-latest
90
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
91
+ environment:
92
+ name: pypi
93
+ url: https://pypi.org/p/pylibheif
94
+ permissions:
95
+ id-token: write
96
+
97
+ steps:
98
+ - name: Download all artifacts
99
+ uses: actions/download-artifact@v4
100
+ with:
101
+ path: dist
102
+ merge-multiple: true
103
+
104
+ - name: Publish to PyPI
105
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,41 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+
12
+ # CMake build files
13
+ build_*/
14
+ CMakeFiles/
15
+ CMakeCache.txt
16
+ cmake_install.cmake
17
+ Makefile
18
+
19
+ # IDE files
20
+ .idea/
21
+ .vscode/
22
+ *.swp
23
+ *.swo
24
+ *~
25
+
26
+ # Compiled extensions
27
+ *.so
28
+ *.dylib
29
+ *.pyd
30
+
31
+ # OS files
32
+ .DS_Store
33
+ Thumbs.db
34
+
35
+ # Test output files
36
+ images/output_*
37
+
38
+ # Lock files (optional, comment out if you want to track)
39
+ # uv.lock
40
+
41
+ .cache
@@ -0,0 +1,3 @@
1
+ [submodule "third_party/libheif"]
2
+ path = third_party/libheif
3
+ url = https://github.com/strukturag/libheif
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,51 @@
1
+ cmake_minimum_required(VERSION 3.15)
2
+ project(pylibheif LANGUAGES C CXX)
3
+
4
+ # Find pybind11
5
+ find_package(pybind11 REQUIRED)
6
+
7
+ # libheif options
8
+ set(WITH_EXAMPLES OFF CACHE BOOL "Build examples" FORCE)
9
+ set(WITH_RAV1E OFF CACHE BOOL "Build rav1e" FORCE)
10
+ set(WITH_DAV1D ON CACHE BOOL "Build dav1d" FORCE)
11
+ set(WITH_AOM ON CACHE BOOL "Build aom" FORCE)
12
+ set(WITH_X265 ON CACHE BOOL "Build x265" FORCE)
13
+ set(WITH_LIBDE265 ON CACHE BOOL "Build libde265" FORCE)
14
+ set(WITH_OpenJPEG_ENCODER ON CACHE BOOL "Build OpenJPEG encoder" FORCE)
15
+ set(WITH_OpenJPEG_DECODER ON CACHE BOOL "Build OpenJPEG decoder" FORCE)
16
+
17
+ # Disable plugin mode - build codecs as built-in
18
+ set(WITH_DAV1D_PLUGIN OFF CACHE BOOL "Build dav1d as plugin" FORCE)
19
+ set(WITH_AOM_DECODER_PLUGIN OFF CACHE BOOL "Build AOM decoder as plugin" FORCE)
20
+ set(WITH_AOM_ENCODER_PLUGIN OFF CACHE BOOL "Build AOM encoder as plugin" FORCE)
21
+ set(WITH_OpenJPEG_ENCODER_PLUGIN OFF CACHE BOOL "Build OpenJPEG encoder as plugin" FORCE)
22
+ set(WITH_OpenJPEG_DECODER_PLUGIN OFF CACHE BOOL "Build OpenJPEG decoder as plugin" FORCE)
23
+ set(ENABLE_PLUGIN_LOADING OFF CACHE BOOL "Disable plugin loading" FORCE)
24
+
25
+ # Add libheif submodule
26
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries" FORCE)
27
+ add_subdirectory(third_party/libheif)
28
+
29
+ # Define the extension module
30
+ pybind11_add_module(pylibheif
31
+ src/main.cpp
32
+ src/context.cpp
33
+ src/image.cpp
34
+ src/encoder.cpp
35
+ )
36
+
37
+ # Link with libheif
38
+ target_link_libraries(pylibheif PRIVATE heif)
39
+
40
+ # Include directories
41
+ target_include_directories(pylibheif PRIVATE
42
+ src
43
+ third_party/libheif/libheif/api
44
+ ${CMAKE_CURRENT_BINARY_DIR}/third_party/libheif
45
+ )
46
+
47
+ # C++ standard
48
+ target_compile_features(pylibheif PRIVATE cxx_std_17)
49
+
50
+ # Install the module
51
+ install(TARGETS pylibheif DESTINATION .)
@@ -0,0 +1,239 @@
1
+ Metadata-Version: 2.2
2
+ Name: pylibheif
3
+ Version: 1.21.2
4
+ Summary: Python bindings for libheif - HEIC/AVIF/JPEG2000 image codec
5
+ Keywords: heif,heic,avif,jpeg2000,image,codec,libheif
6
+ Author-Email: Curry Tang <twn39@163.com>
7
+ License: LGPL-3.0-or-later
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Programming Language :: C++
18
+ Classifier: Topic :: Multimedia :: Graphics
19
+ Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
20
+ Project-URL: Homepage, https://github.com/twn39/pylibheif
21
+ Project-URL: Repository, https://github.com/twn39/pylibheif
22
+ Project-URL: Documentation, https://github.com/twn39/pylibheif#readme
23
+ Project-URL: Issues, https://github.com/twn39/pylibheif/issues
24
+ Requires-Python: >=3.11
25
+ Requires-Dist: numpy>=1.26.0
26
+ Description-Content-Type: text/markdown
27
+
28
+ # pylibheif
29
+
30
+ Python bindings for [libheif](https://github.com/strukturag/libheif) using pybind11.
31
+
32
+ ## Features
33
+
34
+ - **HEIC/HEIF Support**: Read and write HEIC images (HEVC/H.265 encoded)
35
+ - **AVIF Support**: Read and write AVIF images (AV1 encoded)
36
+ - **JPEG2000 Support**: Read and write JPEG2000 images in HEIF container
37
+ - **NumPy Integration**: Zero-copy access to image data via Python Buffer Protocol
38
+ - **Metadata Support**: Read EXIF and XMP metadata from images
39
+ - **RAII Resource Management**: Automatic resource cleanup with context managers
40
+
41
+ ## Supported Formats
42
+
43
+ | Format | Decoding | Encoding | Codec |
44
+ |--------|----------|----------|-------|
45
+ | HEIC (HEVC/H.265) | ✅ | ✅ | libde265 / x265 |
46
+ | AVIF (AV1) | ✅ | ✅ | DAV1D + AOM |
47
+ | JPEG2000 | ✅ | ✅ | OpenJPEG |
48
+
49
+ ## Requirements
50
+
51
+ - Python >= 3.12
52
+ - NumPy >= 1.26.0
53
+ - CMake >= 3.15
54
+ - C++17 compatible compiler
55
+
56
+ ### System Dependencies
57
+
58
+ ```bash
59
+ # macOS
60
+ brew install openjpeg
61
+
62
+ # Ubuntu/Debian
63
+ sudo apt install libopenjp2-7-dev
64
+ ```
65
+
66
+ ## Installation
67
+
68
+ ```bash
69
+ # Clone with submodules
70
+ git clone --recursive https://github.com/your-username/pylibheif.git
71
+ cd pylibheif
72
+
73
+ # Install with uv (recommended)
74
+ uv pip install -e .
75
+
76
+ # Or with pip
77
+ pip install -e .
78
+ ```
79
+
80
+ ## Usage
81
+
82
+ ### Reading HEIC/AVIF Images
83
+
84
+ **Using context manager (recommended):**
85
+
86
+ ```python
87
+ import pylibheif
88
+ import numpy as np
89
+
90
+ # Open HEIC file with context manager
91
+ with pylibheif.HeifContext() as ctx:
92
+ ctx.read_from_file('image.heic')
93
+
94
+ # Get primary image handle
95
+ handle = ctx.get_primary_image_handle()
96
+ print(f'Image size: {handle.width}x{handle.height}')
97
+ print(f'Has alpha: {handle.has_alpha}')
98
+
99
+ # Decode to RGB
100
+ img = handle.decode(pylibheif.HeifColorspace.RGB,
101
+ pylibheif.HeifChroma.InterleavedRGB)
102
+
103
+ # Get as NumPy array (zero-copy)
104
+ plane = img.get_plane(pylibheif.HeifChannel.Interleaved, False)
105
+ arr = np.asarray(plane) # shape: (height, width, 3)
106
+ ```
107
+
108
+ **Explicit creation (for more control):**
109
+
110
+ ```python
111
+ import pylibheif
112
+ import numpy as np
113
+
114
+ # Create context explicitly
115
+ ctx = pylibheif.HeifContext()
116
+ ctx.read_from_file('image.heic')
117
+
118
+ handle = ctx.get_primary_image_handle()
119
+ img = handle.decode(pylibheif.HeifColorspace.RGB,
120
+ pylibheif.HeifChroma.InterleavedRGB)
121
+ plane = img.get_plane(pylibheif.HeifChannel.Interleaved, False)
122
+ arr = np.asarray(plane)
123
+
124
+ # Resources are automatically freed when objects go out of scope
125
+ ```
126
+
127
+ ### Writing HEIC/AVIF Images
128
+
129
+ ```python
130
+ import pylibheif
131
+ import numpy as np
132
+
133
+ # Create image from NumPy array
134
+ width, height = 1920, 1080
135
+ img = pylibheif.HeifImage(width, height,
136
+ pylibheif.HeifColorspace.RGB,
137
+ pylibheif.HeifChroma.InterleavedRGB)
138
+ img.add_plane(pylibheif.HeifChannel.Interleaved, width, height, 8)
139
+
140
+ # Fill with data
141
+ plane = img.get_plane(pylibheif.HeifChannel.Interleaved, True)
142
+ arr = np.asarray(plane)
143
+ arr[:] = your_image_data # your RGB data
144
+
145
+ # Encode and save
146
+ ctx = pylibheif.HeifContext()
147
+
148
+ # For HEIC (HEVC)
149
+ encoder = pylibheif.HeifEncoder(pylibheif.HeifCompressionFormat.HEVC)
150
+ # For AVIF (AV1)
151
+ # encoder = pylibheif.HeifEncoder(pylibheif.HeifCompressionFormat.AV1)
152
+ # For JPEG2000
153
+ # encoder = pylibheif.HeifEncoder(pylibheif.HeifCompressionFormat.JPEG2000)
154
+
155
+ encoder.set_lossy_quality(85)
156
+ encoder.encode_image(ctx, img)
157
+ ctx.write_to_file('output.heic')
158
+ ```
159
+
160
+ ### Converting HEIC to JPEG
161
+
162
+ ```python
163
+ import pylibheif
164
+ import numpy as np
165
+ from PIL import Image
166
+
167
+ # Decode HEIC
168
+ ctx = pylibheif.HeifContext()
169
+ ctx.read_from_file('input.heic')
170
+ handle = ctx.get_primary_image_handle()
171
+ img = handle.decode(pylibheif.HeifColorspace.RGB,
172
+ pylibheif.HeifChroma.InterleavedRGB)
173
+
174
+ # Get NumPy array
175
+ plane = img.get_plane(pylibheif.HeifChannel.Interleaved, False)
176
+ arr = np.asarray(plane)
177
+
178
+ # Save as JPEG using PIL
179
+ pil_img = Image.fromarray(arr)
180
+ pil_img.save('output.jpg', 'JPEG', quality=85)
181
+ ```
182
+
183
+ ### Reading Metadata
184
+
185
+ ```python
186
+ import pylibheif
187
+
188
+ ctx = pylibheif.HeifContext()
189
+ ctx.read_from_file('image.heic')
190
+ handle = ctx.get_primary_image_handle()
191
+
192
+ # Get metadata block IDs
193
+ exif_ids = handle.get_metadata_block_ids('Exif')
194
+ for id in exif_ids:
195
+ metadata_type = handle.get_metadata_block_type(id)
196
+ metadata_bytes = handle.get_metadata_block(id)
197
+ print(f'Metadata type: {metadata_type}, size: {len(metadata_bytes)}')
198
+ ```
199
+
200
+ ## API Reference
201
+
202
+ ### Classes
203
+
204
+ - `HeifContext`: Main context for reading/writing HEIF files
205
+ - `HeifImageHandle`: Handle to a decoded image with metadata
206
+ - `HeifImage`: Raw image data with buffer protocol support
207
+ - `HeifEncoder`: Encoder for creating HEIF files
208
+ - `HeifPlane`: Image plane with NumPy buffer protocol
209
+
210
+ ### Enums
211
+
212
+ - `HeifColorspace`: RGB, YCbCr, Monochrome
213
+ - `HeifChroma`: C420, C422, C444, InterleavedRGB, InterleavedRGBA
214
+ - `HeifChannel`: Y, Cb, Cr, R, G, B, Alpha, Interleaved
215
+ - `HeifCompressionFormat`: HEVC, AV1, JPEG, JPEG2000
216
+
217
+ ### Exceptions
218
+
219
+ - `HeifError`: Base exception for all libheif errors
220
+
221
+ ## Building from Source
222
+
223
+ ```bash
224
+ # Clone with submodules
225
+ git clone --recursive https://github.com/your-username/pylibheif.git
226
+ cd pylibheif
227
+
228
+ # Build
229
+ uv pip install -e .
230
+ ```
231
+
232
+ ## License
233
+
234
+ This project is licensed under the LGPL-3.0 License - see the [LICENSE](LICENSE) file for details.
235
+
236
+ ## Acknowledgments
237
+
238
+ - [libheif](https://github.com/strukturag/libheif) - HEIF/AVIF codec library
239
+ - [pybind11](https://github.com/pybind/pybind11) - C++/Python bindings
@@ -0,0 +1,212 @@
1
+ # pylibheif
2
+
3
+ Python bindings for [libheif](https://github.com/strukturag/libheif) using pybind11.
4
+
5
+ ## Features
6
+
7
+ - **HEIC/HEIF Support**: Read and write HEIC images (HEVC/H.265 encoded)
8
+ - **AVIF Support**: Read and write AVIF images (AV1 encoded)
9
+ - **JPEG2000 Support**: Read and write JPEG2000 images in HEIF container
10
+ - **NumPy Integration**: Zero-copy access to image data via Python Buffer Protocol
11
+ - **Metadata Support**: Read EXIF and XMP metadata from images
12
+ - **RAII Resource Management**: Automatic resource cleanup with context managers
13
+
14
+ ## Supported Formats
15
+
16
+ | Format | Decoding | Encoding | Codec |
17
+ |--------|----------|----------|-------|
18
+ | HEIC (HEVC/H.265) | ✅ | ✅ | libde265 / x265 |
19
+ | AVIF (AV1) | ✅ | ✅ | DAV1D + AOM |
20
+ | JPEG2000 | ✅ | ✅ | OpenJPEG |
21
+
22
+ ## Requirements
23
+
24
+ - Python >= 3.12
25
+ - NumPy >= 1.26.0
26
+ - CMake >= 3.15
27
+ - C++17 compatible compiler
28
+
29
+ ### System Dependencies
30
+
31
+ ```bash
32
+ # macOS
33
+ brew install openjpeg
34
+
35
+ # Ubuntu/Debian
36
+ sudo apt install libopenjp2-7-dev
37
+ ```
38
+
39
+ ## Installation
40
+
41
+ ```bash
42
+ # Clone with submodules
43
+ git clone --recursive https://github.com/your-username/pylibheif.git
44
+ cd pylibheif
45
+
46
+ # Install with uv (recommended)
47
+ uv pip install -e .
48
+
49
+ # Or with pip
50
+ pip install -e .
51
+ ```
52
+
53
+ ## Usage
54
+
55
+ ### Reading HEIC/AVIF Images
56
+
57
+ **Using context manager (recommended):**
58
+
59
+ ```python
60
+ import pylibheif
61
+ import numpy as np
62
+
63
+ # Open HEIC file with context manager
64
+ with pylibheif.HeifContext() as ctx:
65
+ ctx.read_from_file('image.heic')
66
+
67
+ # Get primary image handle
68
+ handle = ctx.get_primary_image_handle()
69
+ print(f'Image size: {handle.width}x{handle.height}')
70
+ print(f'Has alpha: {handle.has_alpha}')
71
+
72
+ # Decode to RGB
73
+ img = handle.decode(pylibheif.HeifColorspace.RGB,
74
+ pylibheif.HeifChroma.InterleavedRGB)
75
+
76
+ # Get as NumPy array (zero-copy)
77
+ plane = img.get_plane(pylibheif.HeifChannel.Interleaved, False)
78
+ arr = np.asarray(plane) # shape: (height, width, 3)
79
+ ```
80
+
81
+ **Explicit creation (for more control):**
82
+
83
+ ```python
84
+ import pylibheif
85
+ import numpy as np
86
+
87
+ # Create context explicitly
88
+ ctx = pylibheif.HeifContext()
89
+ ctx.read_from_file('image.heic')
90
+
91
+ handle = ctx.get_primary_image_handle()
92
+ img = handle.decode(pylibheif.HeifColorspace.RGB,
93
+ pylibheif.HeifChroma.InterleavedRGB)
94
+ plane = img.get_plane(pylibheif.HeifChannel.Interleaved, False)
95
+ arr = np.asarray(plane)
96
+
97
+ # Resources are automatically freed when objects go out of scope
98
+ ```
99
+
100
+ ### Writing HEIC/AVIF Images
101
+
102
+ ```python
103
+ import pylibheif
104
+ import numpy as np
105
+
106
+ # Create image from NumPy array
107
+ width, height = 1920, 1080
108
+ img = pylibheif.HeifImage(width, height,
109
+ pylibheif.HeifColorspace.RGB,
110
+ pylibheif.HeifChroma.InterleavedRGB)
111
+ img.add_plane(pylibheif.HeifChannel.Interleaved, width, height, 8)
112
+
113
+ # Fill with data
114
+ plane = img.get_plane(pylibheif.HeifChannel.Interleaved, True)
115
+ arr = np.asarray(plane)
116
+ arr[:] = your_image_data # your RGB data
117
+
118
+ # Encode and save
119
+ ctx = pylibheif.HeifContext()
120
+
121
+ # For HEIC (HEVC)
122
+ encoder = pylibheif.HeifEncoder(pylibheif.HeifCompressionFormat.HEVC)
123
+ # For AVIF (AV1)
124
+ # encoder = pylibheif.HeifEncoder(pylibheif.HeifCompressionFormat.AV1)
125
+ # For JPEG2000
126
+ # encoder = pylibheif.HeifEncoder(pylibheif.HeifCompressionFormat.JPEG2000)
127
+
128
+ encoder.set_lossy_quality(85)
129
+ encoder.encode_image(ctx, img)
130
+ ctx.write_to_file('output.heic')
131
+ ```
132
+
133
+ ### Converting HEIC to JPEG
134
+
135
+ ```python
136
+ import pylibheif
137
+ import numpy as np
138
+ from PIL import Image
139
+
140
+ # Decode HEIC
141
+ ctx = pylibheif.HeifContext()
142
+ ctx.read_from_file('input.heic')
143
+ handle = ctx.get_primary_image_handle()
144
+ img = handle.decode(pylibheif.HeifColorspace.RGB,
145
+ pylibheif.HeifChroma.InterleavedRGB)
146
+
147
+ # Get NumPy array
148
+ plane = img.get_plane(pylibheif.HeifChannel.Interleaved, False)
149
+ arr = np.asarray(plane)
150
+
151
+ # Save as JPEG using PIL
152
+ pil_img = Image.fromarray(arr)
153
+ pil_img.save('output.jpg', 'JPEG', quality=85)
154
+ ```
155
+
156
+ ### Reading Metadata
157
+
158
+ ```python
159
+ import pylibheif
160
+
161
+ ctx = pylibheif.HeifContext()
162
+ ctx.read_from_file('image.heic')
163
+ handle = ctx.get_primary_image_handle()
164
+
165
+ # Get metadata block IDs
166
+ exif_ids = handle.get_metadata_block_ids('Exif')
167
+ for id in exif_ids:
168
+ metadata_type = handle.get_metadata_block_type(id)
169
+ metadata_bytes = handle.get_metadata_block(id)
170
+ print(f'Metadata type: {metadata_type}, size: {len(metadata_bytes)}')
171
+ ```
172
+
173
+ ## API Reference
174
+
175
+ ### Classes
176
+
177
+ - `HeifContext`: Main context for reading/writing HEIF files
178
+ - `HeifImageHandle`: Handle to a decoded image with metadata
179
+ - `HeifImage`: Raw image data with buffer protocol support
180
+ - `HeifEncoder`: Encoder for creating HEIF files
181
+ - `HeifPlane`: Image plane with NumPy buffer protocol
182
+
183
+ ### Enums
184
+
185
+ - `HeifColorspace`: RGB, YCbCr, Monochrome
186
+ - `HeifChroma`: C420, C422, C444, InterleavedRGB, InterleavedRGBA
187
+ - `HeifChannel`: Y, Cb, Cr, R, G, B, Alpha, Interleaved
188
+ - `HeifCompressionFormat`: HEVC, AV1, JPEG, JPEG2000
189
+
190
+ ### Exceptions
191
+
192
+ - `HeifError`: Base exception for all libheif errors
193
+
194
+ ## Building from Source
195
+
196
+ ```bash
197
+ # Clone with submodules
198
+ git clone --recursive https://github.com/your-username/pylibheif.git
199
+ cd pylibheif
200
+
201
+ # Build
202
+ uv pip install -e .
203
+ ```
204
+
205
+ ## License
206
+
207
+ This project is licensed under the LGPL-3.0 License - see the [LICENSE](LICENSE) file for details.
208
+
209
+ ## Acknowledgments
210
+
211
+ - [libheif](https://github.com/strukturag/libheif) - HEIF/AVIF codec library
212
+ - [pybind11](https://github.com/pybind/pybind11) - C++/Python bindings
Binary file
@@ -0,0 +1,54 @@
1
+ [build-system]
2
+ requires = ["scikit-build-core>=0.10.0", "pybind11>=2.13.0"]
3
+ build-backend = "scikit_build_core.build"
4
+
5
+ [project]
6
+ name = "pylibheif"
7
+ version = "1.21.2"
8
+ description = "Python bindings for libheif - HEIC/AVIF/JPEG2000 image codec"
9
+ readme = "README.md"
10
+ license = {text = "LGPL-3.0-or-later"}
11
+ requires-python = ">=3.11"
12
+ authors = [
13
+ {name = "Curry Tang", email = "twn39@163.com"}
14
+ ]
15
+ keywords = ["heif", "heic", "avif", "jpeg2000", "image", "codec", "libheif"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
20
+ "Operating System :: OS Independent",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Programming Language :: Python :: 3.14",
26
+ "Programming Language :: C++",
27
+ "Topic :: Multimedia :: Graphics",
28
+ "Topic :: Multimedia :: Graphics :: Graphics Conversion",
29
+ ]
30
+ dependencies = [
31
+ "numpy>=1.26.0",
32
+ ]
33
+
34
+ [project.urls]
35
+ Homepage = "https://github.com/twn39/pylibheif"
36
+ Repository = "https://github.com/twn39/pylibheif"
37
+ Documentation = "https://github.com/twn39/pylibheif#readme"
38
+ Issues = "https://github.com/twn39/pylibheif/issues"
39
+
40
+
41
+ [tool.scikit-build]
42
+ cmake.version = ">=3.15"
43
+ ninja.version = ">=1.10"
44
+ wheel.expand-macos-universal-tags = true
45
+
46
+ [tool.scikit-build.cmake.define]
47
+ WITH_EXAMPLES = "OFF"
48
+ WITH_RAV1E = "OFF"
49
+ WITH_DAV1D = "ON"
50
+ WITH_AOM = "ON"
51
+ WITH_X265 = "ON"
52
+ WITH_LIBDE265 = "ON"
53
+ WITH_OpenJPEG_ENCODER = "ON"
54
+ WITH_OpenJPEG_DECODER = "ON"