[vlc-devel] Abuses of FIND_ANYWHERE
rdenis at simphalempin.com
Sat May 17 11:52:06 CEST 2008
There are a lot of places (in core and in plugins) using FIND_ANYWHERE.
Unfortunately, when there are multiples instances of VLC in the same process,
this breaks. The object space is currently per-process, not per-instance.
Hence, one may end up getting an object from a separate instance.
There are a bunch of patologically broken cases:
# The input should be found as a children of the playlist instead.
FIND_ANYWHERE not only breaks multiple instances, it also breaks VLM.
# The playlist should be found using the dedicated API.
# vouts and aouts should be found as children of the libvlc object, but I
suppose that might break VLM...
# Interfaces should also be found as children of libvlc object.
There are a few other objects types with similar issues.
As far as I can tell, FIND_ANYWHERE should be used when_and_only_when looking
up the modules list. Modules are currently attached to module bank singleton,
which is attached to the global root object.
Most of the abuses of FIND_ANYWHERE are in the interface code. That's bad, but
not a top priority as interfaces are typically NOT used with multiple VLC
instances. There are however a few other cases that are just seem plain
broken: lua, goom, galaktos, record, cmml and most video outputs.
More information about the vlc-devel