我正在尝试为VLC构建一个“out of tree”插件。
电脑规格:英特尔x64 Ubuntu12.04
VLC规范: VLC媒体播放器2.0.8
为了解决这个问题,我
啊,真灵!当我进入工具->preferences->视频->输出时,我可以在VLC中看到我的模块。
我想做同样的事情'Out of Tree‘,在这里构建独立于VLC树的模块,并将生成的共享对象库复制到VLC可以读取它和VLC检测它的地方。
我按照这里的说明:VLC树外编译
这里是该模块的缩短版本:
#define DOMAIN "vlc-nysa"
#define _(str) dgettext(DOMAIN, str)
#define N_(str) (str)
#define MODULE_STRING "nysa-video"
vlc_module_begin()
/* VLC Uses these to identify the module */
set_text_domain (DOMAIN)
set_description (N_("Nysa Video Output" ))
set_shortname (N_("Nysa Video" ))
set_category (CAT_VIDEO )
set_subcategory (SUBCAT_VIDEO_VOUT )
set_capability ("vout display", 1 )
/* Options left out for brevity */
/* Add Callbacks */
set_callbacks (Open, Close )
vlc_module_end()
/* implementation here */输出
因此,人们不必搞清楚scon语法--这里是构建输出:
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o src/nysa_video.os -c -std=gnu99 -Wall -Wextra -O2 -fPIC -fPIC -D__PLUGIN__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -DPIC -I/usr/include/vlc -I/usr/include/vlc/plugins -Iinclude src/nysa_video.c
gcc -o build/libnysa_video_plugin.so -Wl,-no-undefined,-z,defs -shared src/nysa_video.os -L/usr/lib -L/usr/local/lib -lvlc -lvlccore
scons: `install' is up to date.
scons: done building targets.结果
我确实得到了一个名为libnysa_video_plugin.so的文件,并将其复制到/usr/lib/vlc/plugins/video_output目录中。
当我运行VLC时,我得到了一个seg错误:
VLC媒体播放器2.0.8两台(修订版2.0.8a-0-g68cf50b)分割故障(弃核)
dmesg | tail打印出:
141376.468964 vlc27609: 88 ip 007f06ccd6a4db sp 00007fff029a6310段故障libvlccore.so.5.1.17f06ccce4000+db000中的错误6
下面是这个项目的git链接:Nysa视频Git Repo
要构建,您需要scon,并在基本目录中:
scons/usr/lib/vlc/plugins/video_output):sudo scons install发布于 2013-12-31 04:01:22
我发现我的代码里有个bug
vlc_module_begin()
/* VLC Uses these to identify the module */
set_text_domain (DOMAIN) //THIS SHOULDN'T BE HERE
set_description (N_("Nysa Video Output" )) 当这个问题仅仅是一个bug时,我很难过,所以我创建了一个git,希望它能帮助那些想要为VLC构建一个树外插件的人。
自述文件中有说明
https://stackoverflow.com/questions/20734887
复制相似问题