Metadata-Version: 2.4
Name: ffmpeg-core
Version: 4.0.0
Summary: Core runtime for typed-ffmpeg (DAG, compilation, IR layer)
Author-email: lucemia <lucemia@gmail.com>
License-Expression: MIT
Keywords: ffmpeg,core,runtime
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Video
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: syrupy>=5.0; extra == "dev"
Requires-Dist: ruff==0.12.2; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Provides-Extra: graph
Requires-Dist: graphviz; extra == "graph"

# ffmpeg-core

Core runtime for typed-ffmpeg multi-version packages.

## Overview

`ffmpeg-core` contains the hand-written runtime code that is shared across all FFmpeg version bindings (v5, v6, v7, v8). This package is automatically installed as a dependency when you install any `typed-ffmpeg-vX` package.

## What's Inside

- **DAG Layer** (`ffmpeg_core.dag`): Filter graph representation and manipulation
- **Compile Layer** (`ffmpeg_core.compile`): FFmpeg command-line generation
- **IR Layer** (`ffmpeg_core.ir`): Intermediate representation for multi-backend support
- **Common Utilities** (`ffmpeg_core.common`): Serialization, caching, schemas

## Installation

This package is installed automatically:

```bash
# Installing any version package will install ffmpeg-core
pip install typed-ffmpeg-v8

# You can also install it directly (advanced)
pip install ffmpeg-core
```

## Usage

**Note:** Most users don't need to import from `ffmpeg-core` directly. Use the version-specific packages (`typed-ffmpeg`, `typed-ffmpeg-v6`, etc.) instead.

For advanced use cases:

```python
from ffmpeg_core.dag import FilterNode, Stream
from ffmpeg_core.compile import compile_as_list
```

## Development

This package is part of the typed-ffmpeg monorepo.

```bash
# Clone monorepo
git clone https://github.com/livingbio/typed-ffmpeg.git
cd typed-ffmpeg

# Install in development mode
cd packages/core
uv pip install -e ".[dev]"

# Run tests
pytest
```

## License

MIT License - see LICENSE file for details
