diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8740bcd..11d8e40 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,6 +2,8 @@ name: Release on: push: + branches: + - main env: CARGO_TERM_COLOR: always @@ -31,7 +33,7 @@ jobs: - name: Install dependencies run: | sudo apt-get update -y - sudo apt-get install -y libssl-dev pkg-config libavcodec-dev libavformat-dev libavutil-dev libavdevice-dev clang llvm python3 python3-pip + sudo apt-get install -y libssl-dev pkg-config clang llvm python3 python3-pip - name: Build binaries uses: actions-rs/cargo@v1 diff --git a/Cargo.lock b/Cargo.lock index 21115f2..0ea3a49 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -167,7 +167,7 @@ dependencies = [ "actix-web-codegen", "ahash", "bytes", - "cfg-if 1.0.0", + "cfg-if", "cookie", "derive_more", "either", @@ -261,9 +261,9 @@ checksum = "8b26702f315f53b6071259e15dd9d64528213b44d61de1ec926eca7715d62203" [[package]] name = "async-trait" -version = "0.1.51" +version = "0.1.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e" +checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" dependencies = [ "proc-macro2", "quote", @@ -299,7 +299,7 @@ checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" dependencies = [ "addr2line", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "miniz_oxide 0.4.4", "object", @@ -318,26 +318,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" -[[package]] -name = "bindgen" -version = "0.54.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36" -dependencies = [ - "bitflags", - "cexpr", - "cfg-if 0.1.10", - "clang-sys", - "lazy_static", - "lazycell", - "peeking_take_while", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -455,21 +435,6 @@ dependencies = [ "jobserver", ] -[[package]] -name = "cexpr" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" -dependencies = [ - "nom 5.1.2", -] - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -490,17 +455,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "clang-sys" -version = "0.29.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" -dependencies = [ - "glob", - "libc", - "libloading", -] - [[package]] name = "color_quant" version = "1.1.0" @@ -576,7 +530,7 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -585,7 +539,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", ] @@ -595,7 +549,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] @@ -606,7 +560,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", "lazy_static", "memoffset", @@ -619,7 +573,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b10ddc024425c88c2ad148c1b0fd53f4c6d38db9697c9f1588381212fa657c9" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", ] @@ -629,7 +583,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "lazy_static", ] @@ -790,7 +744,7 @@ version = "0.8.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -842,31 +796,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" -[[package]] -name = "ffmpeg-next" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4676cda947a87a1e8a42e154059c567e75de64860252cce52c684acd8c074fa0" -dependencies = [ - "bitflags", - "ffmpeg-sys-next", - "libc", -] - -[[package]] -name = "ffmpeg-sys-next" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de57234f2c49c6e093fe67bbbaa9142c228f6e2d5533ef27980993d5b6adef2a" -dependencies = [ - "bindgen", - "cc", - "libc", - "num_cpus", - "pkg-config", - "vcpkg", -] - [[package]] name = "firestorm" version = "0.4.6" @@ -879,7 +808,7 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crc32fast", "libc", "miniz_oxide 0.4.4", @@ -1060,7 +989,6 @@ dependencies = [ "bkapi-client", "bytes", "chrono", - "ffmpeg-next", "futures", "fuzzysearch-common", "hamming", @@ -1093,7 +1021,6 @@ dependencies = [ "anyhow", "base64", "faktory", - "ffmpeg-next", "futures", "hex", "hyper", @@ -1265,7 +1192,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] @@ -1276,7 +1203,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.10.2+wasi-snapshot-preview1", ] @@ -1297,17 +1224,11 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - [[package]] name = "h2" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d09bbc040ce3758a0d32a8a910562104a853aea429dbe1a998beb065c2eacb2" +checksum = "8f072413d126e57991455e0a922b31e4c8ba7c2ffbebf6b78b4f8521397d65cd" dependencies = [ "bytes", "fnv", @@ -1466,9 +1387,9 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "hyper" -version = "0.14.15" +version = "0.14.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436ec0091e4f20e655156a30a0df3770fe2900aa301e548e08446ec794b6953c" +checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55" dependencies = [ "bytes", "futures-channel", @@ -1560,7 +1481,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1629,28 +1550,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" version = "0.2.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f98a04dce437184842841303488f70d0188c5f51437d2a834dc097eafa909a01" -[[package]] -name = "libloading" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" -dependencies = [ - "cc", - "winapi", -] - [[package]] name = "local-channel" version = "0.1.2" @@ -1684,7 +1589,7 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1878,16 +1783,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" -[[package]] -name = "nom" -version = "5.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" -dependencies = [ - "memchr", - "version_check", -] - [[package]] name = "nom" version = "7.1.0" @@ -1997,7 +1892,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" dependencies = [ "bitflags", - "cfg-if 1.0.0", + "cfg-if", "foreign-types", "libc", "once_cell", @@ -2105,7 +2000,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "instant", "libc", "redox_syscall", @@ -2119,12 +2014,6 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - [[package]] name = "percent-encoding" version = "2.1.0" @@ -2344,7 +2233,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f64969ffd5dd8f39bd57a68ac53c163a095ed9d0fb707146da1b27025a3504" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "fnv", "lazy_static", "libc", @@ -2609,12 +2498,6 @@ version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - [[package]] name = "rustc_version" version = "0.2.3" @@ -2845,7 +2728,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.9.0", "opaque-debug", @@ -2864,7 +2747,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.9.0", "opaque-debug", @@ -2876,7 +2759,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "900d964dd36bb15bcf2f2b35694c072feab74969a54f2bbeec7a2d725d2bdcb6" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.0", ] @@ -2890,12 +2773,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shlex" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" - [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -2940,7 +2817,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" dependencies = [ "itertools", - "nom 7.1.0", + "nom", "unicode_categories", ] @@ -3179,7 +3056,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "rand 0.8.4", "redox_syscall", @@ -3453,7 +3330,7 @@ version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "log", "pin-project-lite", "tracing-attributes", @@ -3787,7 +3664,7 @@ version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "wasm-bindgen-macro", ] @@ -3812,7 +3689,7 @@ version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", diff --git a/fuzzysearch-common/Cargo.toml b/fuzzysearch-common/Cargo.toml index caf8eb4..d615ddd 100644 --- a/fuzzysearch-common/Cargo.toml +++ b/fuzzysearch-common/Cargo.toml @@ -7,7 +7,6 @@ edition = "2018" [features] default = ["trace", "download"] -video = ["ffmpeg-next", "tempfile"] queue = ["faktory", "tokio", "serde_json"] trace = ["opentelemetry", "opentelemetry-jaeger", "tracing-opentelemetry", "opentelemetry-http", "hyper", "prometheus", "tokio", "reqwest"] download = ["tokio"] @@ -29,7 +28,6 @@ image = "0.23" img_hash = "3" hex = "0.4" -ffmpeg-next = { version = "4", optional = true } tempfile = { version = "3", optional = true } faktory = { version = "0.11", optional = true } diff --git a/fuzzysearch-common/src/video.rs b/fuzzysearch-common/src/video.rs deleted file mode 100644 index 9696bbc..0000000 --- a/fuzzysearch-common/src/video.rs +++ /dev/null @@ -1,205 +0,0 @@ -use std::convert::TryInto; -use std::io::Read; - -use ffmpeg_next::{ - format::{input, Pixel}, - media::Type as MediaType, - software::scaling::{context::Context, Flags as ScalingFlags}, - util::frame::Video, -}; -use image::{gif::GifDecoder, AnimationDecoder}; -use tempfile::NamedTempFile; - -use crate::get_hasher; - -/// Extract frames of a GIF into individual images and calculate a hash for each -/// frame. Results are kept in the same order as seen in the GIF. -/// -/// This is a blocking function. -#[tracing::instrument(skip(r))] -pub fn extract_gif_hashes(r: R) -> Result, image::ImageError> { - let hasher = crate::get_hasher(); - - // Begin by creating a new GifDecoder from our reader. Collect all frames - // from the GIF. - // - // FUTURE: profile memory usage of collecting all frames instead of iterating - let decoder = GifDecoder::new(r)?; - let frames = decoder.into_frames().collect_frames()?; - - tracing::trace!(frames = frames.len(), "Collected GIF frames"); - - // Allocate a Vec to hold all our hashes. - let mut hashes = Vec::with_capacity(frames.len()); - - // For each frame, get an ImageBuffer, hash the image, and append bytes into - // the results. - // - // FUTURE: should this be parallelized? - for frame in frames { - let buf = frame.buffer(); - - let hash = hasher.hash_image(buf); - let bytes = hash.as_bytes().try_into().unwrap(); - - hashes.push(bytes); - } - - Ok(hashes) -} - -/// Write the contents of `r` into a temporary file and return the handle to -/// that file. This file should automatically be deleted when the handle is -/// dropped. -/// -/// This is a blocking function. -fn write_temp_file(mut r: R) -> std::io::Result { - let mut f = NamedTempFile::new()?; - std::io::copy(&mut r, &mut f)?; - - Ok(f) -} - -/// Extract frames of a video into individual images and calculate a hash for -/// each frame. Results are kept in the same order as seen in the input. -/// -/// This is a blocking function. -#[tracing::instrument(skip(r))] -pub fn extract_video_hashes(r: R) -> anyhow::Result> { - let f = write_temp_file(r)?; - - // Create an input context from the given path. - // - // TODO: figure out if there's a way to provide data without creating a file - let mut ictx = input(&f.path())?; - - // Select the best video stream and find it's index. - let input = ictx - .streams() - .best(MediaType::Video) - .ok_or(ffmpeg_next::Error::StreamNotFound)?; - let stream_index = input.index(); - - // Create a new decoder that outputs 8-bit RGB colors with the same - // dimensions as the source. - let mut decoder = input.codec().decoder().video()?; - let mut scaler = Context::get( - decoder.format(), - decoder.width(), - decoder.height(), - Pixel::RGB24, - decoder.width(), - decoder.height(), - ScalingFlags::BILINEAR, - )?; - - tracing::trace!("Initialized ffmpeg with video input"); - - let mut hashes: Vec<[u8; 8]> = Vec::new(); - let hasher = get_hasher(); - - // Callback function run for each packet loaded by ffmpeg. It's responsible - // for processing each frame into a hash and storing it. - let mut receive_and_process_decoded_frames = - |decoder: &mut ffmpeg_next::decoder::Video| -> Result<(), ffmpeg_next::Error> { - let mut decoded = Video::empty(); - - while decoder.receive_frame(&mut decoded).is_ok() { - // Create a frame buffer and decode data into it. - let mut rgb_frame = Video::empty(); - scaler.run(&decoded, &mut rgb_frame)?; - - // Convert raw data into an RgbImage for use with image hashing. - let data = rgb_frame.data(0).to_vec(); - let im: image::RgbImage = - image::ImageBuffer::from_raw(decoder.width(), decoder.height(), data) - .expect("Image frame data was invalid"); - - // Hash frame, convert to [u8; 8]. - let hash = hasher.hash_image(&im); - let hash = hash.as_bytes(); - hashes.push( - hash.try_into() - .expect("img_hash provided incorrect number of bytes"), - ); - } - - Ok(()) - }; - - // Now that we've set up our callback, iterate through file packets, decode - // them, and send to our callback for processing. - for (stream, packet) in ictx.packets() { - if stream.index() != stream_index { - continue; - } - - decoder.send_packet(&packet)?; - receive_and_process_decoded_frames(&mut decoder)?; - } - - // Make sure all data has been processed with EOF. - decoder.send_eof()?; - receive_and_process_decoded_frames(&mut decoder)?; - - Ok(hashes) -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_extract_gif_hashes() -> anyhow::Result<()> { - use std::fs::File; - - let gif = File::open("../tests/fox.gif")?; - let hashes = extract_gif_hashes(&gif)?; - - assert_eq!( - hashes.len(), - 47, - "GIF did not have expected number of hashes" - ); - - assert_eq!( - hashes[0], - [154, 64, 160, 169, 170, 53, 53, 221], - "First frame had different hash" - ); - assert_eq!( - hashes[1], - [154, 64, 160, 169, 170, 53, 53, 221], - "Second frame had different hash" - ); - - Ok(()) - } - - #[test] - fn test_extract_video_hashes() -> anyhow::Result<()> { - use std::fs::File; - - let video = File::open("../tests/video.webm")?; - let hashes = extract_video_hashes(&video)?; - - assert_eq!( - hashes.len(), - 126, - "Video did not have expected number of hashes" - ); - - assert_eq!( - hashes[0], - [60, 166, 75, 61, 48, 166, 75, 205], - "First frame had different hash" - ); - assert_eq!( - hashes[1], - [60, 166, 75, 61, 48, 166, 75, 205], - "Second frame had different hash" - ); - - Ok(()) - } -} diff --git a/fuzzysearch/Cargo.toml b/fuzzysearch/Cargo.toml index 9934f23..50256ad 100644 --- a/fuzzysearch/Cargo.toml +++ b/fuzzysearch/Cargo.toml @@ -35,7 +35,6 @@ hyper = "0.14" sqlx = { version = "0.5", features = ["runtime-tokio-native-tls", "postgres", "macros", "json", "offline"] } -ffmpeg-next = "4" image = "0.23" img_hash = "3" hamming = "0.1" diff --git a/fuzzysearch/Dockerfile b/fuzzysearch/Dockerfile index dde9120..ffe31d7 100644 --- a/fuzzysearch/Dockerfile +++ b/fuzzysearch/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:20.04 EXPOSE 8080 8081 ENV METRICS_HOST=0.0.0.0:8081 -RUN apt-get update -y && apt-get install -y --no-install-recommends openssl ca-certificates ffmpeg && rm -rf /var/lib/apt/lists/* +RUN apt-get update -y && apt-get install -y --no-install-recommends openssl ca-certificates && rm -rf /var/lib/apt/lists/* COPY ./fuzzysearch/fuzzysearch /bin/fuzzysearch CMD ["/bin/fuzzysearch"] diff --git a/fuzzysearch/src/main.rs b/fuzzysearch/src/main.rs index e177b16..1a4970c 100644 --- a/fuzzysearch/src/main.rs +++ b/fuzzysearch/src/main.rs @@ -21,8 +21,6 @@ async fn main() { fuzzysearch_common::trace::configure_tracing("fuzzysearch"); fuzzysearch_common::trace::serve_metrics().await; - ffmpeg_next::init().expect("Unable to initialize ffmpeg"); - let s = std::env::var("DATABASE_URL").expect("Missing DATABASE_URL"); let db_pool = sqlx::PgPool::connect(&s)