随笔分类 - VLC
摘要:1.Vlc基础数据结构hongxianzhao@hotmail.com1.1基础数据结构structvlc_object_t,相关文件为src\misc\objects.c。定义为:structvlc_object_t{VLC_COMMON_MEMBERS};其中的VLC_COMMON_MEMBER...
阅读全文
摘要:在用SourceInsight分析VLC-Android源码过程中,有几个宏定义在源代码中一直没有找到出处,比如 HAVE_DYNAMIC_PLUGINS和__PLUGIN__,以及MODULE_NAME和MODULE_STRING,在网上找了VLC源码的分 析资料都是老版本的,老版本中MODULE...
阅读全文
摘要:1.每帧播放时长都为26ms? 很多博客和文章都提到,Mp3文件每个帧的播放时长(Frame_PlayingTime)是26ms,这个结论是错误的。公式应该是这样的: 一个帧的播放时长=一个帧的采样个数*一次采样的时间=一个帧的采样个数*(1/采样频率)------------------单位是秒。...
阅读全文
摘要:一、 帧帧头长4字节,是的,是4个字节,共32位。帧头后面可能有两个字节的CRC 校验,这两个字节的是否存在决定于FRAMEHEADER 信息的第16bit, 为0 则帧头后面无校验,为1 则有校验,校验值长度为2 个字节,(后面是可变长度的附加信息,对于标准的MP3文件来说,其长度是32字节,本段...
阅读全文
摘要:Mp3文件由帧组成,帧分成标签帧和数据帧,本文就Mp3文件的帧进行分析。 一、标签帧MP3帧头中除了存储一些象private、copyright、original的简单音乐说明信息以外,没有考虑存放歌名、作者、专辑名、年份 等复杂信息,而这些信息在MP3应用中非常必要。1996年,FricKemp在...
阅读全文
摘要:一、概述 MP3 文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位。MP3 的全称应为 MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是 MPEG1 标准中的...
阅读全文
摘要:根据前两篇文章的分析,帧分为标签帧和数据帧,MP3文件类型是根据数据帧的类型来分的,文件类型如下表:位率相等(Constant BitRate)CBR Mp3文件位率不等(Variable BitRate)Xing Mp3文件VBRI Mp3文件一、如何判断一个Mp3文件的类型,CBR文件,VBR...
阅读全文
摘要:通过ndk-gdb跟踪调试vlc-android来分析从连接到RTSP服务器并接收到音视频数据包后的处理过程。首先,从前面的文章有分析过vlc-android的处理过程通过线程函数Run()(Src/input/input.c)来处理的,代码如下:[cpp]view plaincopystaticv...
阅读全文
摘要:本文在linux环境下编译live555工程,并用cgdb调试工具对live555工程中的testProgs目录下的openRTSP的执行过程进行了跟踪分析,直到将从socket端读取视频数据并保存为对应的视频和音频数据为止。进入testProgs目录,执行./openRTSP rtsp://xxx...
阅读全文
摘要:1. 关于#和##1.1).在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如在早期的VLC版本中,有如下宏定义:[cpp]view plaincopy#defineSTRINGIFY(z...
阅读全文
摘要:VLC采用多线程并行解码架构,线程之间通过单独的一个线程控制所有线程的状态,解码器采用filter模式.组织方式为模块架构模块简述:libvlc 是VLC的核心部分。它是一个提供接口的库,比如给VLC提供功能接口:流的接入,音频视频的输出,插件管理,线程系统。interface 包含...
阅读全文
摘要:在做VLC开发的时候,想使用一个模块访问另外一个模块的数据, 比如在网络模块得到了一些数据,想在其他模块得到这些数据进行处理,这时候就需要两个模块共享一些变量。 查看VLC的源码,发现VLC专门有variables.h和variables.c是用来处理变量的。它提供了一些方法可以创建VLC变量...
阅读全文