1{
2 lib,
3 rustPlatform,
4 fetchFromGitHub,
5 pkg-config,
6 clang,
7 ffmpeg-headless,
8 openssl,
9 alsa-lib,
10 opencv,
11 makeWrapper,
12}:
13rustPlatform.buildRustPackage rec {
14 pname = "tplay";
15 version = "0.6.3";
16
17 src = fetchFromGitHub {
18 owner = "maxcurzi";
19 repo = "tplay";
20 rev = "v${version}";
21 hash = "sha256-JVkezG2bs99IFOTONeZZRljjbi0EhFf+DMxcfiWI4p4=";
22 };
23
24 cargoHash = "sha256-LHRTmjAwDPMOP6YQfL01leEzqRKtteU1cnUqL6UeWKk=";
25 checkFlags = [
26 # requires network access
27 "--skip=pipeline::image_pipeline::tests::test_process"
28 "--skip=pipeline::image_pipeline::tests::test_to_ascii"
29 "--skip=pipeline::image_pipeline::tests::test_to_ascii_ext"
30 "--skip=pipeline::runner::tests::test_time_to_send_next_frame"
31 ];
32
33 nativeBuildInputs = [
34 rustPlatform.bindgenHook
35 pkg-config
36 clang
37 makeWrapper
38 ];
39
40 buildInputs = [
41 openssl.dev
42 alsa-lib.dev
43 ffmpeg-headless.dev
44 opencv
45 ];
46
47 postFixup = ''
48 wrapProgram $out/bin/tplay \
49 --prefix PATH : "${lib.makeBinPath [ ffmpeg-headless ]}"
50 '';
51
52 meta = {
53 description = "Terminal Media Player";
54 homepage = "https://github.com/maxcurzi/tplay";
55 platforms = lib.platforms.linux;
56 license = lib.licenses.mit;
57 maintainers = with lib.maintainers; [
58 demine
59 colemickens
60 ];
61 };
62}