preparser: use of an external process for preparsing
Updated 2025/04/16
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-preparseras a standalone process to handle parsing requests. - Uses JSON messages for IPC between VLC core and vlc-preparser process.
- Read request on
STDINand print responce inSTDOUT. - Send big attachments (
picture_torinput_attachment_t) in binary just after the JSON.
- Creates
-
New preparser backend system:
- Implements module-like interface for the preparser.
- Maintains compatibility with existing preparser API.
- Adds a boolean in the
vlc_preparser_cfgstruture to choose between internal preparser or with the external process. - Updates playlist and the medialib thumbnailer to use the external process.
-
Serialization framework:
- Implements JSON serialization/deserialization module for
preparser_msgstructure.
- Implements JSON serialization/deserialization module for
-
Other:
- Change
vlc_pipefor windows. - Add
es_vecininput_item_Copyfunction. - Add a
input_item_Updatefunction that use the data of oneinput_itemto update an other one. (Likeinput_item_Copybut using the sameinput_iteminstead of creating a new one) - Add a
input_item_node_Copyto copy all the input_item_node tree. (The inner items are just held) - Add getter for
metavalue.
- Change
Benchmark:
Edited by Gabriel Lafond-Thenaille

