解决编译splayer以及目录分析

来源:互联网 发布:unity3d android so 编辑:程序博客网 时间:2024/05/20 01:11
环境  
  1.需要安装win7的SDK  并把最新的SDK路径添加到vs2008工程VS++目录中Include和Lib
  2.需要最新的Direct Show
  3.下载了源代码后 运行Build 进行更新代码
  4. 编译代码  mplayerc工程


项目 mplayerc  主程序
  Libraries
  -->libpng  png类库
-->zlib 压缩解压类库 以来


  -->libssf  ssf类库(字幕相关)
        -->strmbaseRU.lib DirectShow类库 依赖


  -->subtitles  字幕相关类库
     -->  


  -->decss    视频解码类库


  -->dsutil  directshow 工具类库


  -->subpic     视频解码类库


  -->svplib    


  -->lyriclib  歌词匹配类库
      --> id3lib mp3信息类库  依赖


  -->sqlitepp  sqlite++类库  sqlitepp是一个操作数据库的类库


  -->foundation   运行程序  初步估计是修复程序


  -->pcid     动态链接库


  UI      界面
  -->CmdUI    MFC的更新命令UI机制提供了一个端口
     -->error 1


  -->ResizableLib   窗体库


  -->sizecbar   编写MFC应用程序的窗口界面、控制条


  -->TreePropSheet   树与多标签




 Filters  过滤器
  Muxer  混合器
  -->wavdest  
     -->filters(Filter\Libraries\filters) 类库依赖
     -->strmbaseRU.lib DirectShow类库 依赖  


  -->MatroskaMuxer
     -->filters(Filter\Libraries\filters) 类库依赖
     -->strmbaseRU.lib DirectShow类库 依赖


  -->BaseMuxer
     -->strmbaseRU.lib DirectShow类库 依赖


  -->DSMMuxer
     -->BaseMuxer类库 依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  Parser  解析器
  -->streamdrivethru
     -->filters(Filter\Libraries\filters) 类库依赖
     -->strmbaseRU.lib DirectShow类库 依赖


  -->MatroskaSplitter
     -->baseviderflitter 类库 依赖
     -->basevideofilter 类库 依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  -->RealMediaSplitter


  -->basesplitter


  -->AviSplitter


  -->RoQSplitter   
     -->basesplitter 类库依赖


  -->OggSplitter


  -->NutSplitter
     -->basesplitter 类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  -->MpegSplitter
     -->basesplitter 类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  -->DiracSplitter
     -->basesplitter 类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖
     -->libdirac  类库依赖


  -->MpaSplitter
     -->basesplitter 类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  -->DSMSplitter
     -->filters(Filter\Libraries\filters) 类库依赖


  -->MP4Splitter
     -->basesplitter 类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖
     -->zlib 类库依赖


  -->FLVSplitter
     -->basesplitter 类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  -->SSFSplitter
     -->basesplitter 类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  -->EASplitter


  -->WMVSplitter




  Libraries   类库
  -->libmad  基于mad解码库


  -->zlib  zlib是提供数据压缩用的函式库


  -->liba52  一个 ATSC A/52 流媒体编码库


  -->libdts  提供一个低级别的接口,使用DTS相干声学编码解码音频帧。常见的DVD,DTS音频CD和一些电台broadcastings的DTS相干声学流。libdts还提供各种输出配置的缩混和动态范围压缩。


  -->libfaad  解码本地文件成PCM原始音频格式


  -->libdirac  狄拉克是一个通用的视频编解码器针对从QCIF(180x144)的决议HDTV(1920×1080)逐行或隔行扫描。它采用小波变换,运动补偿和算术编码,目的是与其他国家的先进的编解码器上的竞争力。


  -->filters(Filters\Libraries\filters)  过滤器


  -->BaseClasses  基于DirectShow里面的开发包


  -->libflac  无损音频编解码器


  -->libvorbisidec  一个Ogg Vorbis音频解码器(也称为“震颤”),没有浮点运算的实现


  Reader  读取
  -->asyncreader  异步读取  可以读取网络上的编码后的视频数据
  
  -->cddareader
     -->asyncreader  类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  -->cdxareader
     -->asyncreader  类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  -->vtsreader
     -->asyncreader  类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  -->udpreader
     -->asyncreader  类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖


  Transform  改造
  -->avi2ac3filter
     -->filters(Filter\Libraries\filters) 类库依赖


  -->bufferfilter 缓冲区过滤器


  -->decssfilter


  -->Mpeg2DecFilter
     -->basevideofilter 类库依赖
     -->filters(Filter\Libraries\filters) 类库依赖
     -->libmpeg2  类库依赖


  -->MPaDecFilter   主音频解码器
     -->filters(Filter\Libraries\filters) 类库依赖
     -->liba52 类库依赖
     -->libdts 类库依赖
     -->libfaad 类库依赖
     -->libflac 类库依赖
     -->libmad  类库依赖
     -->libvorbisidc 类库依赖


  -->basevideofilter  基本视频滤波器


  -->MPCViderDec     主视频解码器
     -->libflac 类库依赖


  -->svpfilter
     -->basevidefilter 类库依赖


  Source   源
  -->d2vsource
     -->filters(Filter\Libraries\filters) 类库依赖


  -->flicsource
     -->filters(Filter\Libraries\filters) 类库依赖
     -->libflac 类库依赖


  -->basesource


  -->dtsac3source
     -->filters(Filter\Libraries\filters) 类库依赖


  -->shoutcastsource
     -->filters(Filter\Libraries\filters) 类库依赖


  -->subtitlesource
     -->filters(Filter\Libraries\filters) 类库依赖


  -->flacsource


  Switcher
  -->audioswitcher  音频切换器
     -->filters(Filter\Libraries\filters) 类库依赖


  Misc
  -->SyncClock 同步时钟


  Render
  -->MpcAudioRendererFilter MPC音频渲染器












主程序不依赖的库 其它程序的库 
Libraries
  -->yamlcpp


Transform
  -->baseviderfilter
     -->filters(Filter\Libraries\filters) 类库依赖
  -->MPCVideoDec


Libaries
  -->libavcodec
     -->error
  -->libmpeg2








1
出现Error “ICommDlgBrowser2”: 未定义基类
error C2504: “ICommDlgBrowser2”: 未定义基类
error C2504: “IFileDialogEvents”: 未定义基类
error C2061: 语法错误 : 标识符“FDE_SHAREVIOLATION_RESPONSE”
error C2061: 语法错误 : 标识符“FDE_OVERWRITE_RESPONSE”  
error C2504: “IFileDialogControlEvents”: 未定义基类
error C2504: “ICommDlgBrowser2”: 未定义基类
error C2504: “IFileDialogEvents”: 未定义基类
error C2061: 语法错误 : 标识符“FDE_SHAREVIOLATION_RESPONSE”
error C2061: 语法错误 : 标识符“FDE_OVERWRITE_RESPONSE”
error C2504: “IFileDialogControlEvents”: 未定义基类 
          
解决方法:(1). 在StdAfx.h中加入如下两行(针对windows xp系统,不同系统不一样)  xp-> #define _WIN32_WINNT 0x0501 win7-> #define WINVER 0x0501
(2). shobjidl.h 文件在vc6和vc9中都有,两个文件是有一些区别,使用vc9中就不会有问题,查找到VC9 中shobjidl.h所在位置,加入到包含路径中,如将 C:/Program Files/Microsoft Visual Studio 9.0/VC/include 路径加入到包含路径中。(3). 引起这个问题的原因可能是如下http://www.rupeng.com/forum/thread-3214-1-1.html或  http://www.easewe.com/Article/document/879.htm


2
出现error MEDIASUBTYPE_DVB_SUBTITLES 未声明  
解决方法 只需安装win7的SDK  注意包含顺序


3 libavcodec.lib error





























































原创粉丝点击