Metadata-Version: 2.4
Name: vapoursynth-sneedif
Version: 4.3
Summary: Intra-field only deinterlacer based on NNEDI3
Project-URL: Source Code, https://github.com/Jaded-Encoding-Thaumaturgy/vapoursynth-SNEEDIF
Project-URL: Bug Tracker, https://github.com/Jaded-Encoding-Thaumaturgy/vapoursynth-SNEEDIF/issues
Project-URL: Contact, https://discord.gg/XTpc6Fa9eB
Author-email: Setsugen no ao <setsugen@setsugen.dev>
Maintainer-email: Jaded Encoding Thaumaturgy <jaded.encoding.thaumaturgy@gmail.com>
License-Expression: WTFPL AND GPL-3.0-or-later AND BSD-3-Clause
License-File: LICENSE
License-File: SNEEDIF/half_float/LICENSE
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Video
Requires-Python: >=3.12
Requires-Dist: vapoursynth>=74
Description-Content-Type: text/markdown

# Setsugen No Ensemble of Edge Directed Interpolation Functions

Like [NNEDI3CL](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-NNEDI3CL) but made by Setsugennoao.
<img src="https://i.slow.pics/MnF0rcri.webp" height="25"/>

## NNEDI3

```python
sneedif.NNEDI3(clip, int field[, bint dh=False, bint dw=False, int[] planes=[0, 1, 2], int nsize=6, int nns=1, int qual=1, int etype=0, int pscrn=2, bint transpose_first=False, int device=-1])
```

- `transpose_first`: Transpose the clip before processing.

## Device Information

These functions return information about the available OpenCL environment and devices.

### ListDevices

```python
sneedif.ListDevices()
```

Returns a dictionary:

- `numDevices`: `int` — Total number of devices found.
- `deviceNames`: `str[]` — List of device names.
- `platformNames`: `str[]` — List of platform names.

### PlatformInfo

```python
sneedif.PlatformInfo([int device=-1])
```

Returns a dictionary for the specified `device`:

- `name`: `str`
- `vendor`: `str`
- `version`: `str`
- `profile`: `str`

### DeviceInfo

```python
sneedif.DeviceInfo([int device=-1])
```

Returns a dictionary containing detailed specifications for the specified `device`:

- `name`, `vendor`, `profile`, `version`, `opencl_c_version`: `str`
- `max_compute_units`, `max_work_group_size`, `image2D_max_width`, `image2D_max_height`: `int`
- `max_work_item_sizes`: `int[]`
- `image_support`, `available`, `compiler_available`, `linker_available`: `int` (boolean)
- `global_memory_cache_type`, `local_memory_type`: `str`
- `global_memory_cache`, `global_memory_size`, `max_constant_buffer_size`, `max_constant_arguments`, `local_memory_size`, `image_max_buffer_size`: `int`

## Installation

```bash
pip install vapoursynth-sneedif
```

## Compilation

### Windows

Requirements:

- [MSYS2](https://www.msys2.org/)

1. Open **MSYS2 CLANG64** terminal.
2. Install dependencies:

   ```bash
   pacman -S mingw-w64-clang-x86_64-{cmake,meson,ninja,pkgconf,toolchain,boost,opencl-headers,opencl-icd,uv}
   ```

3. Build the wheel:

   ```bash
   uv build --wheel
   ```

### Linux

Requirements:

- [uv](https://github.com/astral-sh/uv).

1. Install dependencies:

   ```bash
   # Fedora / RHEL
   dnf install cmake gcc-c++ boost-devel opencl-headers ocl-icd-devel

   # Ubuntu / Debian
   apt install cmake g++ libboost-all-dev opencl-headers ocl-icd-opencl-dev

   # Alpine
   apk add cmake g++ boost-dev opencl-headers opencl-dev opencl git
   ```

2. Build the wheel:

   ```bash
   uv build --wheel
   ```
