摘要:
MultiByteToWideChar和WideCharToMultiByte用法详解函数原型:intWideCharToMultiByte(UINTCodePage,DWORDdwFlags,LPCWSTRlpWideCharStr,intcchWideChar,LPSTRlpMultiByteStr,intcbMultiByte,LPCSTRlpDefaultChar,LPBOOLlpUsedDefaultChar);此函数把宽字符串转换成指定的新的字符串,如ANSI,UTF8等,新字符串不必是多字节字符集。参数:CodePage:指定要转换成的字符集代码页,它可以是任何已经安装的或系统自 阅读全文
摘要:
1.创建一个空的Dll工程,添加5个空文件分别名为:MyOutputPin.h、MySourceFilter.h、MyOutputPin.cpp、MySourceFilter.cpp和MySourceFilter.def。2.声明两个类,一个是Filter的实现类,一个是输出Pin的实现类,由于是最简单的源Filter,因此Filter只有一个输出Pin。实现的功能是从本地磁盘读取三个图片文件,轮流显示这三张图片,效果是模拟一个视频流。这两个类的声明代码:viewplaincopytoclipboardprint?//MySourceFilter.hclassCMySourceFilter// 阅读全文
摘要:
下午用Socket发送RTSP协议总是发送失败,而抓vlc的包几乎一模一样。手动发送协议时,有时行有时不行,比较郁闷。终于跟出来了,分为2点:1、每一条协议的后边都要加上回车+换行符,一次协议发送要发2次回车+换行符(该死的网络调试助手,误导我,字符串发送的时候自动去掉回车+换行符,导致一直不成功,16进制发送才可以。。。);2、初次向服务器发送OPTIONS时一定要加上User-Agent:XXX,否则服务器不会返回任何信息。 阅读全文
摘要:
VLC在0.8.6C版本时,还保持着大部分代码对MSVC编译环境的兼容,到了0.9版本以后,就基本放弃了对MSVC的兼容性了。不过,要在MSVC环境里编译VLC最新版本,也还是有方法可以做到。VC6的编译环境,补丁版本ServicePack5,ProcessorPackSP5。下面仅以一个plugin的移植编译过程来说明。1.首先,将VLC-0.8.6C的msvc目录拷贝到vlc-0.9.9a目录下,这里面有多数plugin的VC6的.dsp工程文件。2.用VC6打开plugin_mp4.dsp,先尝试编译,错误如下:--------------------Configuration:plug 阅读全文
摘要:
在做VLC开发的时候,想使用一个模块访问另外一个模块的数据,比如在网络模块得到了一些数据,想在其他模块得到这些数据进行处理,这时候就需要两个模块共享一些变量。查看VLC的源码,发现VLC专门有variables.h和variables.c是用来处理变量的。它提供了一些方法可以创建VLC变量、设置VLC变量、改变、销毁VLC变量等。当我们要产生一个VLC变量的时候,我们使用var_Create()函数;如在UDP模块创建了一个变量,vlc_value_tvalTemp;var_Create(p_access,"var_test",VLC_VAR_STRING);valTemp 阅读全文
摘要:
Hi,Thereareseveralfreeforcommercialuse,publishedRTSPDirectShowSourceFilters,withfullsourcecodeinC++.imustadmitthatittookaLOTofsearchingtofindthem!IwilltellyouaboutonethatIthinkisthebest.LookatthesourcecodeforVLC(VideoLAN)andpulloutthefiles:access.creal.crtsp.crtsp.hThat'sallyouneed.Lookatthesamp 阅读全文
摘要:
Mpgv.c是对mpegvedio的解码部分,从demux开始,到sample到输出。其中,核心部分是函数ParseMPEGBlock。两种数据格式:video_format是video的meta_data,block是实际的数据CodePath:Open()----->Modules/demux/Mpgv.c1)setfunctionpoint.p_sysismainstructurep_demux->pf_demux=Demux;p_demux->pf_control=Control;p_demux->p_sys=p_sys=malloc(sizeof(demux_ 阅读全文
摘要:
输入模块的CodePath,看来主要的分析还是在demux和access模块的分析。现在的codepath只是大致的模块input_CreateThread2--->Create()---->Run()---->Init()vlm.cinput.cinput.cinput.c---->input_EsOutNew()input.c---->[1]InputSourceInitinput.c1)-->demux2_New--->__demux2_New-->module_Need(p_demux,"access_demux",p 阅读全文
摘要:
概述代码从两大部分入手,一个telnet的deamon。还有就是rtsp的实现部分。结果发现,他们通过了一个桥梁vlm的media进行沟通。当受到newMEDIANAMEvodenabled就建立一个media。如果受到setupMEDIANAMEinputfilename.mpg就读入流准备分析,建立input流当受到rtsp的请求后,就建立这个output流这样,vod就和别的模块一致了。rtsp只是一种output流的module。代码分析1./modules/control/telnet.c/*********************************************** 阅读全文
摘要:
1.vlc.c只是入口程序2.Libvlc.c是各个模块的结合点,这要是对接口编程Vlc_Create():两个重要的数据结构:libvlc_t&vlc_t,所有的参数传递都在这里面Vlc_Init():初始化参数,module_bankVlc_AddInf():添加module3./src/misc/configure.c命令行参数和参数文件分析参数文件是~/.vnc/vlcrc。其中可以设置log文件的位置4./include/所有头文件的集合5./src/interface/Interface.h所有module的集合6./src/misc/Modules.c其中module_t 阅读全文
摘要:
从接收到数据流到播放视频的过程分析从网络接收到流->对数据流进行视频和音频分离->对视频用解码器解码->显示解码后的视频流视频显示部分走势线:分离->解码->新的VOUT缓冲区->VOUT线程Demux(modules\demux\mpeg\ps.c)->DemuxPs(modules\demux\mpeg\system.c)->ParsePS->input_SelectES(src\input\input_programs.c)->input_RunDecoder(src\input\input_dec.c)->CreateD 阅读全文
摘要:
网络数据流接收处理分析1、在input.c(src\input)文件中的主线程循环ThreadinchargeofprocessingthenetworkpacketsanddemultiplexingRunThread(input_thread_t*p_input){InitThread(p_input);…………………………………………………….input_SelectES(p_input,p_input->stream.p_newly_selected_es);……………………………………………………./*Readanddemultiplexsomedata.*/i_count=p 阅读全文
摘要:
第一部分变量及宏定义1.消息映射宏vlc_module_begin();…………………..vlc_module_end();2.结构中包含函数structinput_thread_t{VLC_COMMON_MEMBERS/*Threadproperties*/vlc_bool_tb_eof;vlc_bool_tb_out_pace_control;/*Accessmodule*/module_t*p_access;ssize_t(*pf_read)(input_thread_t*,byte_t*,size_t);int(*pf_set_program)(input_thread_t*,pgrm 阅读全文
摘要:
一.EMACS中调试1、usingtheclipboardM-xmenu-bar-enable-clipboard(makecut,copy,pastymenuitems,usetheclipboard)2、using“wheel”miceM-xmouse-wheel-mode(激活中间的滚动键)3、退出出任何命令状态C-g4、进入编译模式M-xcompile或者从菜单-》TOOLS-》COMPILE5、用COMPILE模式C-x`(搜索出错的源代码行)<RET>(光标定位在compilebuffer的出错提示行上,按〈RET〉键,会跳到出错的源代码行)C-uC-x`在compil 阅读全文
摘要:
一.rm格式的播放器:下载地址:http://www.real.com/linux/?src=020923home_cn_cn安装方式:~#./realplayer.bin打开方式:命令行:~#realplayGUI:redhat->audioandvideo->otherapp->realplayer二.mp3播放器:xmms-1.2.8.tar.gz安装方式:./configure&make&makeinstall三.经验:从源码编译安装Mplayer1.0pre5来自:http://yangchengkai.blogchina.com/blog/refe 阅读全文