Skip to content

Draft: preparser: use of an external process for preparsing

This MR improves media parsing stability by isolating the preparser in a dedicated external process (vlc-preparser), using a JSON-based IPC protocol.

  • External preparser process:

    • Creates vlc-preparser as a standalone process to handle parsing requests.
    • Uses JSON messages for IPC between VLC core and vlc-preparser process.
    • Read request on STDIN and print responce in STDOUT.
    • Send big attachments (picture_t or input_attachment_t) in base64 outside of the JSON.
  • New preparser backend system:

    • Implements module-like interface for the preparser.
    • Maintains compatibility with existing preparser API.
    • Adds VLC_PREPARSER_BACKEND_PROCESS for external process execution and VLC_PREPARSER_BACKEND_THREADS for original implementation.
    • Updates playlist and the medialib thumbnailer to use the process backend.
  • Serialization framework:

    • Implements JSON serialization/deserialization module for preparser_msg structure.

Benchmark:

test on linux: Screenshot_From_2025-01-31_12-27-21

/!\ Missing test on windows and macos

Merge request reports

Loading