本文基于windows下的vlc,vlc版本为2.2.0。
1、 cpu性能检测:
该功能在加载libvlccore.dll时由系统调用该动态库的DllMain()(/src/win32/thread.c,该函数再调用vlc_CPU_Init())执行的,即发生在WinMain()函数执行之前,加载vlc.exe的依赖库时。通过dumpbin工具查看vlc.exe,可知vlc.exe依赖于libvlc.dll;同样可知,libvlc.dll依赖于libvlccore.dll。
2、获取命令行参数:
获取命令行参数,并在命令行参数中添加如下几个参数:"--media-library","--stats","--no-ignore-config"。
3、调用libvlc_new()创建一个libvlc(libvlc_instance_t)实例:
1. 调用libvlc_threads_init()初始化线程系统;
2. 调用vlc_custom_create(libvlc_InternalCreate())创建一个libvlc_int_t对象;
从vlc_custom_create()可以看出,实际创建的是vlc_object_internal_t和libvlc_priv_t两个连在一起的对象,返回的是libvlc_priv_t中的libvlc_int_t对象的指针:
| vlc_object_internal_t |

本文详细分析了VLC播放器在Windows环境下2.2.0版本的启动流程,包括CPU性能检测、命令行参数处理、libvlc_instance_t实例创建、模块加载与配置解析,以及hotkeys接口插件的创建与启动。在初始化过程中,VLC进行线程系统初始化,加载核心模块和外部插件,创建播放列表,并启动相关线程。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



