Code Monkey home page Code Monkey logo

libheif-rs's People

Contributors

cykooz avatar hfiguiere avatar meowtec avatar paolobarbolini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

libheif-rs's Issues

unable to compile to wasm32-wasi target

When compiling my project that uses this library as a dependency using command cargo wasi build --release, the below error occurs:

libheif-rs-wasi-compile-err

When looking at the source code in src/utils.rs, it can compile only to unix and windows target platform. I'm new to rust and my question is why can't the function just return CString::new(path.as_os_str().as_bytes()).unwrap_or_default(). Can you alter this function to make it work in other target platforms?

statically linking libheif

Hi, and thank you for this great library!

I am trying to statically link libheif to make distribution of my program easier and not have the user install libheif individually. Is there a recommended or even built-in way of doing so?

Missing `heif_compression_format_heif_compression_mask` &c when building

The published crate is broken, it seems.

This is presumably because of symbols from libheif-sys that no longer exist in the current version (I'm building against libheif-dev/mantic,now 1.16.2-2ubuntu1 amd64 with use-bindgen).

cargo new heif-test
cd heif-test
cargo add libheif-rs
cargo build
...
Compiling libheif-rs v1.0.1
error[E0425]: cannot find value `heif_compression_format_heif_compression_mask` in crate `lh`
    --> /home/moritz/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libheif-rs-1.0.1/src/encoder.rs:40:16
     |
40   |     Mask = lh::heif_compression_format_heif_compression_mask as _,
     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `heif_compression_format_heif_compression_AV1`
     |
    ::: /home/moritz/code/crates/heic-test/target/debug/build/libheif-sys-b99fc4390c36f21a/out/bindings.rs:1536:1
     |
1536 | pub const heif_compression_format_heif_compression_AV1: heif_compression_format = 4;
     | ------------------------------------------------------------------------------- similarly named constant `heif_compression_format_heif_compression_AV1` defined here

error[E0425]: cannot find function `heif_image_handle_get_metadata_item_uri_type` in crate `lh`
    --> /home/moritz/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libheif-rs-1.0.1/src/image_handle.rs:225:26
     |
225  |               unsafe { lh::heif_image_handle_get_metadata_item_uri_type(self.inner, metadata_id) };
     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `heif_image_handle_get_metadata_content_type`
     |
    ::: /home/moritz/code/crates/heic-test/target/debug/build/libheif-sys-b99fc4390c36f21a/out/bindings.rs:1014:5
     |
1014 | /     pub fn heif_image_handle_get_metadata_content_type(
1015 | |         handle: *const heif_image_handle,
1016 | |         metadata_id: heif_item_id,
1017 | |     ) -> *const libc::c_char;
     | |____________________________- similarly named function `heif_image_handle_get_metadata_content_type` defined here

error[E0425]: cannot find function `heif_image_handle_get_preferred_decoding_colorspace` in crate `lh`
   --> /home/moritz/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libheif-rs-1.0.1/src/image_handle.rs:293:17
    |
293 |             lh::heif_image_handle_get_preferred_decoding_colorspace(
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `lh`

For more information about this error, try `rustc --explain E0425`.
error: could not compile `libheif-rs` (lib) due to 3 previous errors

License

I understand libheif (the base for the libheif-sys and thus this crate) is under LGPL.

I think a warning should be placed in the README about this. If a user links such a dependencies statically into their binary, they will violate the license.

And that may happen involuntareily as a user currently need to go three levels down the dependency tree, to find out (like I did). ๐Ÿ˜

Add support for color profiles

Hey,

we are planning to use libheif-rs for GNOME's new image view Loupe. However, we need access to the color profiles. That would, especially the get_color_profile_type, color_profile_nclx, raw_color_profile functions. Can you make them available in the bindings or accept PRs?

Plugin support

We have merged HEIF support into Loupe by now and it's working great :)

However, we have to move HEIC support into a libheif plugin for some situations because of licensing. Therefore it would be nice to have a safe binding for

  • heif_load_plugin

And it looks like

  • heif_init
  • heif_deinit

would also be helpful. (However, I'm not sure yet if they should be called before and after every use of the decoder?)

It looks like the following function would allow seeing if the plugin is already loaded. So would also be nice to have them available (not in -sys yet)

  • heif_get_decoder_descriptors (not in -sys as far as I can see)
  • heif_decoder_descriptor_get_name
  • heif_decoder_descriptor_get_id_name

And finally, something like this would be nice for debug summaries

  • heif_get_version

Thanks a lot for your support so far!

Read from image bytes

We have let image_file_bytes: Vec<u8> in our control flow which is HEIC

How can we load it into the context without file?

let lib_heif = LibHeif::new();

Clarify licensing for test data

During the package review for libheif-rs in Fedora, Fabio Valentini noted (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2235088#c2) that it's unclear what license applies to the test pictures in data/ directory. Could you add a note somewhere clarifying this, please? Most important for Fedora is that they are under a license that allows redistributing them; otherwise we'd have to roll a custom crate that excludes the files.

Thanks!

Use after free in HeifContext::read_from_bytes?

I had issues with HeifContext::read_from_bytes and dropping the argument before decoding the image afterward. I think it crashed with segfaulted, but I don't know for sure. It does not happen with every image.

I guess read_from_bytes might need to take ownership of the bytes or a lifetime guarantee.

Maybe the issue is obvious when looking at libheif API. If it's not, I can try to create a reproducer soon. (Currently a bit busy with moving.)

Support for writing meta-data

The underlying libheif library supports writing meta-data such as exif and xmp into the output image. Are there plans to support this or would a PR to present this API be considered?

mismatch detected for 'RuntimeLibrary' on windows

I have no idea why this occured. I'm not sure if the issue is a bug or something I did incorrectly. Can you help me out?

log

imgfind on ๎‚  heif [!?] is ๐Ÿ“ฆ v0.1.0 via ๐Ÿฆ€ v1.71.1 took 12s
โฏ vcpkg list
libde265:x64-windows-static-md                    1.0.11#2            Open h.265 video codec implementation.
libheif:x64-windows-static-md                     1.16.2              Open h.265 video codec implementation.
vcpkg-cmake-config:x64-windows                    2022-02-06#1        
vcpkg-cmake:x64-windows                           2023-05-04
x265:x64-windows-static-md                        3.4#9               x265 is a H.265 / HEVC video encoder application...

imgfind on ๎‚  heif [!?] is ๐Ÿ“ฆ v0.1.0 via ๐Ÿฆ€ v1.71.1 
โฏ cargo b --release
   Compiling imgfind v0.1.0 (E:\proj\imgfind)
error: linking with `link.exe` failed: exit code: 1169
  |
  = note: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.36.32532\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\sora\\AppData\\Local\\Temp\\rustckGYzj0\\symbols.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.0.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.1.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.10.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.11.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.12.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.13.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.14.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.15.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.2.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.3.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.4.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.5.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.6.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.7.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.8.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.imgfind.78872165cd772752-cgu.9.rcgu.o" "E:\\proj\\imgfind\\target\\release\\deps\\imgfind.3faw0a6xb2dmicch.rcgu.o" "/LIBPATH:E:\\proj\\imgfind\\target\\release\\deps" "/LIBPATH:F:\\scoop\\apps\\vcpkg\\current\\installed\\x64-windows-static-md\\lib" "/LIBPATH:F:\\scoop\\persist\\rustup-msvc\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\windows_x86_64_msvc-0.48.5\\lib" "/LIBPATH:C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.36.32532\\atlmfc\\lib\\x64" "/LIBPATH:E:\\proj\\imgfind\\target\\release\\build\\esaxx-rs-4687aa5c3f4b1494\\out" "/LIBPATH:F:\\scoop\\persist\\rustup-msvc\\.cargo\\registry\\src\\index.crates.io-6f17d22bba15001f\\windows_x86_64_msvc-0.42.2\\lib" "/LIBPATH:C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.36.32532\\atlmfc\\lib\\x64" "/LIBPATH:E:\\proj\\imgfind\\target\\release\\build\\onig_sys-56fed9735dff628b\\out" "/LIBPATH:F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "E:\\proj\\imgfind\\target\\release\\deps\\librmp_serde-5377f780ac67bfd1.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\librmp-3258363337bc0662.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libimage-a2363d4aba2c8543.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libqoi-816faab8f44f22e5.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libpng-6530feea18ea7557.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libfdeflate-a884c3099729f3b2.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libexr-ca345e8a21ee98fe.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libflume-31a897d5203cab7b.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libspin-07e2a93d1270a71f.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\liblock_api-9b68e38cd76d408a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libpin_project-75e16c3d229d148c.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libfutures_sink-3516a71fb2b438b9.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libfutures_core-88811a9ab7eff671.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libnanorand-460fd834080da63c.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libzune_inflate-77245a7442cc1707.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libbit_field-32623c2e3d41eb9a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\liblebe-7574c572b6657847.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libnum_rational-6da7371d81e75c1a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libnum_integer-3de46f3c89ba657a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libgif-b0991683942d5e6a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcolor_quant-eed45df2669c66af.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libtiff-15b5fbaf6cd479ee.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libflate2-c372d1b67155d007.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libminiz_oxide-33f455675132cbff.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libsimd_adler32-8871a6257cc424ee.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libweezl-b47d4bfe0c2b16d1.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libjpeg_decoder-99e4005f7c0a8518.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\liblibheif_rs-37e50c9ffcd7e272.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\liblibheif_sys-270c94ce09ff2606.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\liblibc-fd8f18e52da41328.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libfour_cc-84e8ff6519d32151.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libxjbutil-5db764180d67efbe.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libtokenizers-c02f68bb65f2e721.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libesaxx_rs-06ba71ae796fc135.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libaho_corasick-7e521e341a6afe18.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libunicode_normalization_alignments-3df857e77bf59530.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libsmallvec-ea18787697ae1453.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libspm_precompiled-f1c20bcafa732af0.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libbase64-9d0da4a65bba99a7.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libunicode_segmentation-7412c202b7ff4b9b.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libnom-74327dea6e525042.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libunicode_categories-a6f77df18ca71e7b.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libitertools-4329b53c6e245a46.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libmonostate-738f5035b8631d03.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libmacro_rules_attribute-ec63daa3aa6ce052.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libindicatif-28cbd0b4e50e7d50.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libregex-260fe07cc23afa1d.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libregex_automata-60b7fbebe5d22e63.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libaho_corasick-93d84f326f545a19.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libmemchr-78da7168ec7614f8.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libregex_syntax-4f9ecde6fea2b506.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libconsole-f4be0e93e44cb9c2.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libencode_unicode-7fd229486537933b.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libunicode_width-812e5bc905d1e36c.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libwindows_sys-dcfde4e145284de6.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libnumber_prefix-cb0a03898168775e.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\librayon_cond-63580ddc5d679c47.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libitertools-c9acb80cdb04c421.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libonig-e2c8c0b632433649.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libonig_sys-f10053b1b8293558.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libonce_cell-48f0cd988192f4ab.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libderive_builder-a87abd9f0865e5d1.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\liblog-770071835b8c4e23.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcandle_nn-cf04644b235314d3.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcandle_core-62b09fe31a6728de.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libmemmap2-9f964e531ab909dc.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libzip-df99d7ccaded7f6b.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcrc32fast-eff91e50fd258082.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libthiserror-50c0d9ec3eb3a09a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libsafetensors-8f31a4e663bff727.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libserde_json-a381d99b2e56d42f.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libryu-cac0f0810daf71fa.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libitoa-e728fea3d938fa9a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libserde-cded710750a66c2a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcandle_gemm-2857988b3f88b55b.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcandle_gemm_c32-8fd5f211d1ae1512.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcandle_gemm_c64-15b58c512546fb56.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcandle_gemm_f64-3f87303839c11550.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcandle_gemm_f16-5301f2bb1d662456.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcandle_gemm_f32-229d0c3da19787f5.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcandle_gemm_common-c1100a7dd6b8acf7.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libnum_complex-f0689e392d333aae.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libdyn_stack-65df159cf54af404.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libreborrow-84dc06012a45e668.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libbytemuck-5ec3a0dd07bf3bb0.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libraw_cpuid-faf4468d1234ab94.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libbitflags-8745ab83d6535719.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\liblazy_static-3a89f5a586910dbc.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\librayon-9917f068e4bf68b6.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\librayon_core-7f81857b483ac84c.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libnum_cpus-ecb256a330c7b78a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcrossbeam_deque-72772be346b7ed4e.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcrossbeam_epoch-4ab95730b741aadd.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libmemoffset-cc71e66d33f19baa.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libscopeguard-44f52fecfe926348.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcrossbeam_channel-3bb2b084793d3ece.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcrossbeam_utils-fc9e7d7677ce2620.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libeither-5e75debde7d4bd3a.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libbyteorder-4365623ed3470301.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libhalf-652ad03ea04fc6ff.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\librand_distr-5783e17c9b30fb57.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\librand-462f86b32c4bf000.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\librand_chacha-4cfe262003b15990.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libppv_lite86-c1e37e6ff1681911.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\librand_core-4bbc6ae83c19a0cf.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libgetrandom-cca1710458bf9c94.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libcfg_if-79c7408fe27f541c.rlib" "E:\\proj\\imgfind\\target\\release\\deps\\libnum_traits-18edfd75c357673d.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-4e8f46f7d0c95848.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-5db344dab6eb1d2b.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-74e09b816cbd5555.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-0e78b5195f1cb27a.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-bfdbaec42e428240.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-ece31b1fa03921a4.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libminiz_oxide-b1cda3daaedb751f.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libadler-fcb0daf3e92ec962.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-943c8b115715a79a.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-86ba8a5505ea3939.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-5e13ccbf89e39d2e.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-150c9edec7571387.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-cd5722df944967ab.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-f671e54f90f2e08c.rlib" "F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-0157311a6d6a27aa.rlib" "heif.lib" "x265-static.lib" "de265.lib" "legacy_stdio_definitions.lib" "windows.lib" "bcrypt.lib" "advapi32.lib" "kernel32.lib" "advapi32.lib" "bcrypt.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "kernel32.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:E:\\proj\\imgfind\\target\\release\\deps\\imgfind.exe" "/OPT:REF,ICF" "/DEBUG" "/NATVIS:F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:F:\\scoop\\persist\\rustup-msvc\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis"
  = note: heif.lib(heif.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(init.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(error.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(bitstream.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(box.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(pixelimage.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(region.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(file.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(context.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(plugin_registry.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(colorconversion.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(plugins_windows.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(hevc.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(avif.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(decoder_libde265.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(rgb2yuv.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(rgb2yuv_sharp.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(yuv2rgb.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(rgb2rgb.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(monochrome.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(alpha.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(hdr_sdr.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          heif.lib(chroma_sampling.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(de265.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(nal.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(slice.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(image.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(dpb.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(nal-parser.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(decctx.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(contextmodel.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(cabac.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(util.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(refpic.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(threads.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(motion.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(pps.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(intrapred.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(transform.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(vps.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(sps.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(sei.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(sao.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(deblock.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(fallback.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(vui.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(fallback-motion.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          de265.lib(fallback-dct.cc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in libesaxx_rs-06ba71ae796fc135.rlib(esaxx.o)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: __cdecl std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QEAA@H@Z) already defined in libcpmt.lib(xlock.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: __cdecl std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QEAA@XZ) already defined in libcpmt.lib(xlock.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: __cdecl std::locale::id::operator unsigned __int64(void)" (??Bid@locale@std@@QEAA_KXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: bool __cdecl std::codecvt_base::always_noconv(void)const " (?always_noconv@codecvt_base@std@@QEBA_NXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: int __cdecl std::codecvt<char,char,struct _Mbstatet>::in(struct _Mbstatet &,char const *,char const *,char const * &,char *,char *,char * &)const " (?in@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEBD1AEAPEBDPEAD3AEAPEAD@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: int __cdecl std::codecvt<char,char,struct _Mbstatet>::out(struct _Mbstatet &,char const *,char const *,char const * &,char *,char *,char * &)const " (?out@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEBD1AEAPEBDPEAD3AEAPEAD@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: int __cdecl std::codecvt<char,char,struct _Mbstatet>::unshift(struct _Mbstatet &,char *,char *,char * &)const " (?unshift@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEAD1AEAPEAD@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: static unsigned __int64 __cdecl std::codecvt<char,char,struct _Mbstatet>::_Getcat(class std::locale::facet const * *,class std::locale const *)" (?_Getcat@?$codecvt@DDU_Mbstatet@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: int __cdecl std::ios_base::flags(void)const " (?flags@ios_base@std@@QEBAHXZ) already defined in libcpmt.lib(locale.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(void)const " (?width@ios_base@std@@QEBA_JXZ) already defined in libcpmt.lib(locale.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(__int64)" (?width@ios_base@std@@QEAA_J_J@Z) already defined in libcpmt.lib(iomanip.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::basic_streambuf<char,struct std::char_traits<char> >(void)" (??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: virtual __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::~basic_streambuf<char,struct std::char_traits<char> >(void)" (??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: int __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z) already defined in libcpmt.lib(locale.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::eback(void)const " (?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::gptr(void)const " (?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::pptr(void)const " (?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::egptr(void)const " (?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::gbump(int)" (?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::setg(char *,char *,char *)" (?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::epptr(void)const " (?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::_Gndec(void)" (?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ) already 
defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::_Gninc(void)" (?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ) already 
defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: __int64 __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::_Gnavail(void)const " (?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::pbump(int)" (?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::_Pninc(void)" (?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ) already 
defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: __int64 __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::_Pnavail(void)const " (?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::_Init(void)" (?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::_Init(char * *,char * *,int *,char * *,char * *,int *)" (?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: virtual __int64 __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::xsgetn(char *,__int64)" (?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: virtual __int64 __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::xsputn(char const *,__int64)" (?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: virtual __cdecl std::basic_ios<char,struct std::char_traits<char> >::~basic_ios<char,struct std::char_traits<char> >(void)" (??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: void __cdecl std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: __cdecl std::basic_ios<char,struct std::char_traits<char> >::basic_ios<char,struct std::char_traits<char> >(void)" (??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: __cdecl std::basic_ostream<char,struct std::char_traits<char> >::basic_ostream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)" (??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: virtual __cdecl std::basic_ostream<char,struct std::char_traits<char> >::~basic_ostream<char,struct std::char_traits<char> >(void)" (??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::setp(char *,char *)" (?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z) already defined in libcpmt.lib(cout.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: struct _Cvtvec __cdecl std::_Locinfo::_Getcvt(void)const " (?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ) already defined in libcpmt.lib(locale.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: unsigned short const * __cdecl std::_Locinfo::_W_Getdays(void)const " (?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ) already defined in libcpmt.lib(wlocale.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: unsigned short const * __cdecl std::_Locinfo::_W_Getmonths(void)const " (?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ) already defined in libcpmt.lib(wlocale.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: int __cdecl std::ios_base::setf(int,int)" (?setf@ios_base@std@@QEAAHHH@Z) already defined in libcpmt.lib(iomanip.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: int __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::sbumpc(void)" (?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ) already defined in libcpmt.lib(locale.obj)
          msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: int __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::sgetc(void)" (?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ) already defined in 
libcpmt.lib(locale.obj)
             Creating library E:\proj\imgfind\target\release\deps\imgfind.lib and object E:\proj\imgfind\target\release\deps\imgfind.exp
          LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
          E:\proj\imgfind\target\release\deps\imgfind.exe : fatal error LNK1169: one or more multiply defined symbols found

cargo.toml

[package]
name = "imgfind"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
candle-core = "0.2.1"
candle-nn = "0.2.1"
image = "0.24.7"
libheif-rs = "0.22.0"
rmp-serde = "1.1.2"
serde = "1.0.188"
serde_json = "1"
tokenizers = "0.14.0"
xjbutil = { version = "0.9.0-ECHO", default-features = false, features = ["minhttpd"] }

full code

https://github.com/flaribbit/imgfind/tree/heif (heif branch)

0.19 fails to build on Windows

error[E0515]: cannot return reference to temporary value
  --> C:\Users\Chad\.cargo\registry\src\github.com-1ecc6299db9ec823\libheif-rs-0.19.0\src\utils.rs:45:26
   |
45 |                 .map(|b| b.to_ne_bytes().iter())
   |                          ---------------^^^^^^^
   |                          |
   |                          returns a reference to data owned by the current function
   |                          temporary value created here
   |
   = help: use `.collect()` to allocate the iterator

For more information about this error, try `rustc --explain E0515`.
error: could not compile `libheif-rs` due to previous error

Expose heif_context_set_max_decoding_threads config?

First of all, I want to say thanks for this library. I'm writing a Rust program to compute rotation-independent perceptual hashes of the photos on my NAS, and libheif-rs has been very helpful.

When profiling on Windows with Superluminal, I noticed libheif is allocating threads per image. I'm already doing my own thread pools, so I'd prefer to have libheif not allocate threads.

I haven't gotten a chance to do a local fork and patch yet, but if you are interested in exposing heif_context_set_max_decoding_threads, that would be useful!

`cargo build` fails on Windows

Meta

cargo = 1.77.2
cargo-vcpkg = 0.1.7
libheif-rs = "1.0.1"

Issue

On building after install libheif through vcpkg on Windows using cargo vcpkg -v build, I get the following error:

Compiling libheif-sys v2.1.0+1.17.4
The following warnings were emitted during compilation:     

warning: [email protected]+1.17.4: Could not find library in Vcpkg tree package libheif is not installed for vcpkg triplet x64-windows-static-md

error: failed to run custom build command for `libheif-sys v2.1.0+1.17.4`

Caused by:
  process didn't exit successfully: `<path>\src\target\debug\build\libheif-sys-d3d03489525c29ef\build-script-build` (exit code: 1)
  --- stdout
  cargo:warning=Could not find library in Vcpkg tree package libheif is not installed for vcpkg triplet x64-windows-static-md

Output from vcpkg list

libde265:x64-windows                              1.0.15              Open h.265 video codec implementation.
libheif:x64-windows                               1.17.6#1            libheif is an HEIF and AVIF file format decoder ...
libheif[hevc]:x64-windows                                             HEVC encoding via x265
vcpkg-cmake-config:x64-windows                    2022-02-06#1        
vcpkg-cmake:x64-windows                           2024-04-18
x265:x64-windows                                  3.5                 x265 is a H.265 / HEVC video encoder application...

Unable to set encoder parameter values

I'm currently trying to use this library to encode to AVIF, but can't find any way to set the speed parameter. I believe in libheif heif_encoder_set_parameter_integer is used, but I can't find any corresponding Rust method in this library. Is this possible?

get_encoder_for_format test fails when building on Fedora

When running libheif-rs tests on Fedora, I get:

---- get_encoder_for_format stdout ----
thread 'get_encoder_for_format' panicked at 'assertion failed: `(left == right)`
  left: `"AOMedia Project AV1 Encoder v3.6.1"`,
 right: `"SVT-AV1 encoder v1.4.1"`', tests/heif_struct_test.rs:35:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Any ideas what's going wrong here?

Consider using HEIF and AVIF formats for test data

I am packaging libheif-rs for Fedora and when running self tests, I noticed that most of the tests are failing due to either

Error: HeifError { code: UnsupportedFeature, sub_code: UnsupportedCodec, message: "Unsupported feature: Unsupported codec" }

or

Error: HeifError { code: UnsupportedFileType, sub_code: Unspecified, message: "Unknown error" }

This is because libheif that's packaged for Fedora doesn't actually include a HEIC decoder due to patent concerns. /usr/lib64/libheif/libheif-libde265.so and /usr/lib64/libheif/libheif-x265.so plugins that enable HEIC support in libheif are split out and not included, which makes libheif-rs tests that use .heic files fail. There are 3rd party repositories (e.g. rpmfusion) that ship the missing plugins, but they are unavailable in the Fedora build system when libheif-rs is built (but they are available for end users to install from third party repositories if they so choose).

What's supported out of the box are HEIF and AVIF formats: I wonder if it would make sense to update the test files in libheif-rs to mostly use HEIF and AVIF? And maybe skip HEIC tests if the format is unavailable? That way, we could run the test suite during package compilation and make sure nothing regresses.

Due to this, I've disabled all self tests for now, but I've verified that all of them actually pass (with the exception of #14 that I filed earlier) if I locally install the missing plugins.

unresolved externals [Windows]

I've used Vcpkg to install libheif and linked it using vcpkg-rs
but I cannot get it to work. I've tried linking manually but wasn't very successful the only thing that has worked so far is running this in docker and installing Debian package.


cargo.toml

[package]
name = "app"
version = "0.1.0"
edition = "2021"
build = "src/build.rs"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[build-dependencies]
vcpkg = "0.2.15"

[dependencies]
libheif-sys = "1.12.0"
vcpkg = "0.2.15"

build.rs

fn main() {
    vcpkg::find_package("libheif").unwrap();
}

main.rs

use libheif_sys as lh;

fn main() {
    unsafe {
        let ctx = lh::heif_context_alloc();
    }
}

results in

PS D:\Programming\Github Restoration Project\Working-Heic-Decoding\app> cargo run 
    Blocking waiting for file lock on build directory
   Compiling app v0.1.0 (D:\Programming\Github Restoration Project\Working-Heic-Decoding\app)
warning: unused variable: `ctx`
 --> src\main.rs:9:13
  |
9 |         let ctx = lh::heif_context_alloc();
  |             ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
  |
  = note: `#[warn(unused_variables)]` on by default

error: linking with `link.exe` failed: exit code: 1120
  |
  = note: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "D:\\Programming\\Github Restoration 
Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\app.1kx4a8au13ywcbhl.rcgu.o" "D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\app.256xf6ka02050k8k.rcgu.o" "D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\app.3mn42k4e2swv09hh.rcgu.o" "D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\app.4apfu9h52azcxapt.rcgu.o" "D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\app.4xcjw54wh0osko4q.rcgu.o" "D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\app.pb26mdlbxlkh8qf.rcgu.o" "D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\app.ug49cnachrpk6w9.rcgu.o" "D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\app.2mtygy96mi7whm6u.rcgu.o" "/LIBPATH:D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps" "/LIBPATH:D:\\Programming\\c++\\vcpkg\\installed\\x64-windows-static-md\\lib" "/LIBPATH:C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "heif.lib" "x265-static.lib" "libde265.lib" "D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\liblibheif_sys-9c02951885835332.rlib" "D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\liblibc-992ce8d8621cab5d.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-77c29e3b2a96c9a6.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-fac20c79897f2b3d.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-a900fec85d21ec5f.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-2803b5471132ab91.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-bd7c3f8e84ab3746.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-6353ac840b4a82ca.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-8b22f250a6b6c0c3.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-837411c15bbbd755.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-6e0180ba426c6f71.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-8fee164e10a5c1ee.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-433995d9d73cd404.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-d681750c6d1718a3.rlib" "C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-fd343f19f347f62a.rlib" "heif.lib" "kernel32.lib" "ws2_32.lib" "bcrypt.lib" "advapi32.lib" "userenv.lib" "kernel32.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:D:\\Programming\\Github Restoration Project\\Working-Heic-Decoding\\app\\target\\debug\\deps\\app.exe" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\fionn\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis"
  = note:    Creating library D:\Programming\Github Restoration Project\Working-Heic-Decoding\app\target\debug\deps\app.lib and object D:\Programming\Github Restoration Project\Working-Heic-Decoding\app\target\debug\deps\app.exp
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_version referenced in function "char const * __cdecl libde265_plugin_name(void)" (?libde265_plugin_name@@YAPEBDXZ)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_image_width referenced in function "struct heif_error __cdecl convert_libde265_image_to_heif_image(struct libde265_decoder *,struct de265_image const *,struct heif_image * *)" (?convert_libde265_image_to_heif_image@@YA?AUheif_error@@PEAUlibde265_decoder@@PEBUde265_image@@PEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_image_height referenced in function "struct heif_error __cdecl convert_libde265_image_to_heif_image(struct libde265_decoder *,struct de265_image const *,struct heif_image * *)" (?convert_libde265_image_to_heif_image@@YA?AUheif_error@@PEAUlibde265_decoder@@PEBUde265_image@@PEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_chroma_format referenced in function "struct heif_error __cdecl convert_libde265_image_to_heif_image(struct libde265_decoder *,struct de265_image const *,struct heif_image * *)" (?convert_libde265_image_to_heif_image@@YA?AUheif_error@@PEAUlibde265_decoder@@PEBUde265_image@@PEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_bits_per_pixel referenced in function "struct heif_error __cdecl convert_libde265_image_to_heif_image(struct libde265_decoder *,struct de265_image const *,struct heif_image * *)" (?convert_libde265_image_to_heif_image@@YA?AUheif_error@@PEAUlibde265_decoder@@PEBUde265_image@@PEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_image_plane referenced in function "struct heif_error __cdecl convert_libde265_image_to_heif_image(struct libde265_decoder *,struct de265_image const *,struct heif_image * *)" (?convert_libde265_image_to_heif_image@@YA?AUheif_error@@PEAUlibde265_decoder@@PEBUde265_image@@PEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_image_full_range_flag referenced in function "struct heif_error __cdecl libde265_v1_decode_image(void *,struct heif_image * *)" (?libde265_v1_decode_image@@YA?AUheif_error@@PEAXPEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_image_colour_primaries referenced in function "struct heif_error __cdecl libde265_v1_decode_image(void *,struct heif_image * *)" (?libde265_v1_decode_image@@YA?AUheif_error@@PEAXPEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_image_transfer_characteristics referenced in function "struct heif_error __cdecl libde265_v1_decode_image(void *,struct heif_image * *)" (?libde265_v1_decode_image@@YA?AUheif_error@@PEAXPEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_image_matrix_coefficients referenced in function "struct heif_error __cdecl 
libde265_v1_decode_image(void *,struct heif_image * *)" (?libde265_v1_decode_image@@YA?AUheif_error@@PEAXPEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_new_decoder referenced in function "struct heif_error __cdecl libde265_new_decoder(void * *)" (?libde265_new_decoder@@YA?AUheif_error@@PEAPEAX@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_start_worker_threads referenced in function "struct heif_error __cdecl libde265_new_decoder(void * *)" (?libde265_new_decoder@@YA?AUheif_error@@PEAPEAX@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_free_decoder referenced in function "void __cdecl libde265_free_decoder(void *)" (?libde265_free_decoder@@YAXPEAX@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_push_NAL referenced in function "struct heif_error __cdecl libde265_v1_push_data(void *,void const *,unsigned __int64)" (?libde265_v1_push_data@@YA?AUheif_error@@PEAXPEBX_K@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_flush_data referenced in function "struct heif_error __cdecl libde265_v1_decode_image(void *,struct heif_image * *)" (?libde265_v1_decode_image@@YA?AUheif_error@@PEAXPEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_decode referenced in function "struct heif_error __cdecl libde265_v1_decode_image(void *,struct heif_image * *)" (?libde265_v1_decode_image@@YA?AUheif_error@@PEAXPEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_get_next_picture referenced in function "struct heif_error __cdecl libde265_v1_decode_image(void *,struct heif_image * *)" (?libde265_v1_decode_image@@YA?AUheif_error@@PEAXPEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_release_next_picture referenced in function "struct heif_error __cdecl libde265_v1_decode_image(void *,struct heif_image * *)" (?libde265_v1_decode_image@@YA?AUheif_error@@PEAXPEAPEAUheif_image@@@Z)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_init referenced in function "void __cdecl libde265_init_plugin(void)" (?libde265_init_plugin@@YAXXZ)
          heif.lib(heif_decoder_libde265.cc.obj) : error LNK2019: unresolved external symbol __imp_de265_free referenced in function "void __cdecl libde265_deinit_plugin(void)" (?libde265_deinit_plugin@@YAXXZ)
          D:\Programming\Github Restoration Project\Working-Heic-Decoding\app\target\debug\deps\app.exe : fatal error LNK1120: 20 unresolved externals

warning: `app` (bin "app") generated 1 warning
error: could not compile `app` due to previous error; 1 warning emitted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.