-
Martin Storsjö authored
The point of the omx core management is to try to load and init the OMX core once, even if there's multiple e.g. decoder instances. The reason for this is that there are OMX cores where the deinit function will deinitialize the whole core on the first deinit call, even if init has been called twice. If this file is to be built as part of multiple separate shared plugins, each of the plugins will initialize the OMX core separately, which could cause issues with such OMX cores. Since the second plugin that uses the OMX core, an OMX vout plugin, isn't used automatically, and the only OMX implementation it currently is tested to actually work with (the Broadcom OMX core on Raspberry Pi) doesn't have issues with being uninitialized multiple times, there's no need to jump through hoops to fix this theoretical issue right now though. For reference, if we really want to make sure the omx core is loaded and initialized only once, the plugins need to be loaded with RTLD_GLOBAL and all the variables in omxil_core.c need to be marked with __attribute__ ((visibility ("default"))). But that's generally not an option, and shouldn't be necessary right now at least. Signed-off-by: Martin Storsjö <martin@martin.st>
369a7322