vlc 代码学习.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vlc 代码学习

【转】vlc 代码学习 第一部分 变量及宏定义 1.消息映射宏 vlc_module_begin(); ………………….. vlc_module_end(); 2.结构中包含函数 struct input_thread_t { VLC_COMMON_MEMBERS /* Thread properties */ vlc_bool_t b_eof; vlc_bool_t b_out_pace_control; /* Access module */ module_t * p_access; ssize_t (* pf_read ) ( input_thread_t *, byte_t *, size_t ); int (* pf_set_program )( input_thread_t *, pgrm_descriptor_t * ); int (* pf_set_area )( input_thread_t *, input_area_t * ); void (* pf_seek ) ( input_thread_t *, off_t ); } 3.宏与换行符妙用 #define VLC_COMMON_MEMBERS /** \name VLC_COMMON_MEMBERS * these members are common for all vlc objects */ /**@{*/ int i_object_id; int i_object_type; char *psz_object_type; char *psz_object_name; /** Just a reminder so that people dont cast garbage */ int be_sure_to_add_VLC_COMMON_MEMBERS_to_struct; /**@}*/ #define VLC_OBJECT( x ) \ ((vlc_object_t *)(x))+ 0*(x)- be_sure_to_add_VLC_COMMON_MEMBERS_to_struct struct vlc_object_t { VLC_COMMON_MEMBERS };//定义一个结构来使用宏定义的公共成员 4.定义导出函数 #ifndef __PLUGIN__ # define VLC_EXPORT( type, name, args ) type name args #else # define VLC_EXPORT( type, name, args ) struct _u_n_u_s_e_d_ extern module_symbols_t* p_symbols; #endif 5.定义回调函数 typedef int ( * vlc_callback_t ) ( vlc_object_t *, /* variables object */ char const *, /* variable name */ vlc_value_t, /* old value */ vlc_value_t, /* new value */ void * ); /* callback data */ 6.函数作为参数的定义方式 Int Fun(int n,int (*pf)(int ,int),char *pstr) { int j =10; pf(n,j); } 7.回调函数的声明 必须声明为global,或者static Int vlc_callback_t (int ,int) {。。。。。。。。。。。} 8.回调函数的使用 Fun(0, vlc_callback_t,”test”); 9.函数表达式 #define input_BuffersInit(a) __input_BuffersInit(VLC_OBJECT(a)) void * __input_BuffersInit( vlc_object_t * ); #define module_Need(a,b,c,d) __module_Need(VLC_OBJECT(a),b,c,d) VLC_EXPORT( module_t *, __module_Need, ( vlc_object_t *, const char *, const char *, vlc_bool_t ) ); 10.定义函数 /* Dynamic array handling: realloc array, move data, increment position */ #define INSERT_ELEM( p_ar, i_oldsize, i_pos, elem ) do { if( i_oldsize

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档