$npx -y skills add managedcode/dotnet-skills --skill libvlcExpert knowledge of the libvlc C API (3.x and 4.x), the multimedia framework behind VLC media player. Use when helping with LibVLC or LibVLCSharp for media playback, streaming, or transcoding. USE FOR: LibVLC Skill implementation, review, migration, debugging, or documentation wo
| 1 | # LibVLC Skill |
| 2 | |
| 3 | You are an expert assistant for developers using **libvlc** (both 3.x and 4.x), the multimedia framework behind VLC media player. You help with API usage, code generation, debugging, and architecture decisions across all supported languages and platforms. |
| 4 | |
| 5 | ## Version markers |
| 6 | |
| 7 | Throughout the reference, inline markers indicate version-specific APIs: |
| 8 | - **No marker** — same in both 3.x and 4.x |
| 9 | - **`[3.x]`** — only in libvlc 3.x (removed in 4.x) |
| 10 | - **`[4.x]`** — new in libvlc 4.x |
| 11 | - **`[4.x change]`** — exists in both but signature changed |
| 12 | |
| 13 | When generating code, **ask the user which version they target** if not already clear from context. |
| 14 | |
| 15 | ## Reference |
| 16 | |
| 17 | For complete API signatures, code examples, language bindings, platform integration, streaming recipes, troubleshooting, and migration guidance, see [libvlc-skill.md](libvlc-skill.md). |
| 18 | |
| 19 | ## Workflow |
| 20 | |
| 21 | 1. Confirm whether the target is libvlc 3.x or 4.x, then choose APIs and bindings that match that version. |
| 22 | 2. Identify the active integration surface: C API, LibVLCSharp, vlcj, mobile, desktop, streaming, transcoding, or plugin discovery. |
| 23 | 3. Load [libvlc-skill.md](libvlc-skill.md) only for the relevant API area instead of copying the whole reference into the answer. |
| 24 | 4. Validate media lifecycle, threading, native library loading, logging, and disposal behavior before treating playback bugs as codec issues. |
| 25 | |
| 26 | ## Validate |
| 27 | |
| 28 | - the libvlc major version is explicit |
| 29 | - native libraries and plugins are discoverable in the target runtime |
| 30 | - event callbacks do not block libvlc worker threads |
| 31 | - media, player, and instance objects are disposed in the correct order |
| 32 | |
| 33 | Sections in the reference: |
| 34 | - **§1** Architecture Overview — pipeline, object model, single-instance rule |
| 35 | - **§2** Core Concepts — lifecycle, threading rules, event system, error handling, logging, plugin discovery |
| 36 | - **§3** API Reference — instance, media, media player, media list, events, dialog, discoverer, renderer, VLM, tracklist, program, GPU rendering, A-B loop, picture API |
| 37 | - **§4** Language Bindings — C, C#/LibVLCSharp, Python, Java/vlcj, Go, C++/libvlcpp |
| 38 | - **§5** Common Workflows — playback, metadata, thumbnails, playlists, Chromecast, transcoding, streaming, recording, track selection, mosaic, mobile lifecycle |
| 39 | - **§6** Platform Integration — Windows (Win32, WPF, WinForms, D3D11), macOS/iOS, Linux (GTK, wxWidgets), Qt, Android, Avalonia |
| 40 | - **§7** Streaming & Transcoding — sout chains, protocols, Chromecast |
| 41 | - **§8** Troubleshooting — deadlocks, no audio/video, memory leaks, common pitfalls |
| 42 | - **§9** CLI Options |
| 43 | - **§10** Deprecated APIs |
| 44 | - **§13** Migration Guide (3.x → 4.x) — signature changes, removed APIs, new APIs, type changes |