Hello, while working on !3503, I just realized that parser and thumbnailer could share the same context, but it's not done in the core.
Do you think it's worth it to share the same input_thread_t for thumbnailing and preparsing ? Are there some known limitations by using one single instance for both ?
If so, we could easily merge both Core API into one.
As an alternative, we can use one single API for libVLC and take care of the Core later.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
They aren't sharing the same enum input_type and it's different during the input_Create then input_Start uses different thread mainloops Run vs Preparse in the thumbnailer you actually need to run a decoder so I'm not sure unifying them would be a good idea or at least worth the effort to enumerate and fix all the corner cases that it would require.
If some large code can be extracted elsewhere while still provide unification and new reasonable interception point, fine with me, or else if it provides a measurable gain, but I guess it probably needs some kind of middleware implementation so that we can start input_thread[preparse] or input_thread[preparse,thumbnail] or input_thread[thumbnail]?
Not sure that it would provide measurable gains at least for people who only want preparsing. Preparsing is a toned down version of playback that skips initializing a lot of stuff in order to be faster and lighter. Unless of course you keep the simple preparsing when you just want preparsing but then I'm not sure what the core merge would entail.
The user is free to implement any callbacks. Obviously, queuing a thumbnail request without listening to the specific event is useless (we could assert).
Parsing and picture callbacks are asynchronous, so you would receive the parsing callback first. But yes, the next item in line will wait for the thumbnailing indeed.