Skip to content
Snippets Groups Projects

Draft: preparser: use of an external process for preparsing

Open Gabriel Lafond-Thenaille requested to merge gabriel_lt/vlc:preparser-process-5 into master

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-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 binary just after the JSON.
  • New preparser backend system:

    • Implements module-like interface for the preparser.
    • Maintains compatibility with existing preparser API.
    • Adds a boolean in the vlc_preparser_cfg struture 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_msg structure.
  • Other:

    • Change vlc_pipe for windows.
    • Add es_vec in input_item_Copy function.
    • Add a input_item_Update function that use the data of one input_item to update an other one. (Like input_item_Copy but using the same input_item instead of creating a new one)
    • Add a input_item_node_Copy to copy all the input_item_node tree. (The inner items are just held)
    • Add getter for meta value.

Benchmark:

image_1_

image

Edited by Gabriel Lafond-Thenaille

Merge request reports

Members who can merge are allowed to add commits.

Merge request pipeline #594187 passed

Merge request pipeline passed for 65ebbddc

Test coverage 18.93% from 1 job
The target branch master does not exist. Please restore it or use a different target branch.
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading