{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, clang
, ffmpeg
, openssl
, alsa-lib
, libclang
, opencv
}:
rustPlatform.buildRustPackage rec {
  pname = "tplay";
  version = "0.5.0";

  src = fetchFromGitHub {
    owner = "maxcurzi";
    repo = "tplay";
    rev =  "v${version}";
    hash = "sha256-/3ui0VOxf+kYfb0JQXPVbjAyXPph2LOg2xB0DGmAbwc=";
  };

  cargoHash = "sha256-zRkIEH37pvxHUbnfg25GW1Z7od9XMkRmP2Qvs64uUjg=";
  checkFlags = [
        # requires network access
    "--skip=pipeline::image_pipeline::tests::test_process"
    "--skip=pipeline::image_pipeline::tests::test_to_ascii"
    "--skip=pipeline::image_pipeline::tests::test_to_ascii_ext"
    "--skip=pipeline::runner::tests::test_time_to_send_next_frame"
  ];

  nativeBuildInputs = [
    rustPlatform.bindgenHook
    pkg-config
    clang
    ffmpeg
  ];

  buildInputs = [
    openssl.dev
    alsa-lib.dev
    libclang.lib
    ffmpeg.dev
    opencv
  ];

  meta = {
    description = "Terminal Media Player";
    homepage = "https://github.com/maxcurzi/tplay";
    platforms = lib.platforms.linux;
    license = lib.licenses.mit;
    maintainers = with lib.maintainers; [ demine colemickens ];
  };
}
