vlc相关学习资料汇总及零散技术总结

简介: 一、参考资料       官网的编译教程:http://wiki.videolan.org/Win32CompileMSYS    编译的各种问题:http://wiki.

一、参考资料  

    官网的编译教程:http://wiki.videolan.org/Win32CompileMSYS


    编译的各种问题:http://wiki.videolan.org/Win32CompileMSYSTroubleShooting

    已经编译好的各种版本:http://nightlies.videolan.org/build/

    VS下编译项目:https://github.com/sunqueen?tab=repositories

    VLC文档:http://www.videolan.org/developers/vlc/doc/doxygen/html/index.html


     VLC开发者中心:https://wiki.videolan.org/Developers_Corner


    汇编指令拷贝

    vlc-2.2.1.32-2013\modules\video_chroma


二、零散知识点备忘

/* Maximum delay between 2 displayed pictures.
 * XXX it is needed for now but should be removed in the long term.
 */
#define VOUT_REDISPLAY_DELAY (INT64_C(80000))  //两帧延时超过80ms就扔掉;

/**
 * Late pictures having a delay higher than this value are thrashed.
 */
#define VOUT_DISPLAY_LATE_THRESHOLD (INT64_C(20000)) //当前系统时间-图像时间>20ms,说明改图像已经延时过多,即抛弃

// 1、解码模块在解码前先判断是否有帧延时了,如果有,判断延时是否超过5s,如果超过直接释放;判断是否标记为要加速,且延时帧已超过4帧,大于4小于12立即解码,否则抛弃;
// 2、费解:不知为什么vlc需要调用两次avcodec_decode_video2,注释说重新解析,防止丢弃I帧?
// 3、貌似:解码出的帧送渲染前判断缓存的帧的数量是否已经超过1s,如果超过就标记为满。
#define DECODER_MAX_BUFFERING_VIDEO_DURATION (1*CLOCK_FREQ)


/* Pictures which are DECODER_BOGUS_VIDEO_DELAY or more in advance probably have
 * a bogus PTS and won't be displayed */
#define DECODER_BOGUS_VIDEO_DELAY                ((mtime_t)(DEFAULT_PTS_DELAY * 30))

vlc_object_t *debug = NULL;
msg_Output(debug,"--------bank.c-----module_InitBank()---------------");


// avcodec_decode_video2函数第一参数可以设置出帧策略,丢B帧,丢I帧,丢P帧等; vlc为什么要调用两次这个函数,Reparse it to not drop the I frame

// PCR Abbreviation for Program Clock Reference. 程序参考时钟; MPEG-2标准音视频均为27 MHz
// PTS(Presentation Time Stamp)显示时间标签
// DTS解码时间标签(Decoding Time Stamp)

//live555.cpp中初始化i_pts的值;并非使用码流的timestamp值;
int64_t i_pts = (int64_t)pts.tv_sec * INT64_C(1000000) + (int64_t)pts.tv_usec;

/*FIXME: for h264 you should check that packetization-mode=1 in sdp-file */
p_block->i_dts = ( tk->fmt.i_codec == VLC_CODEC_MPGV ) ? VLC_TS_INVALID : (VLC_TS_0 + i_pts);

目录
相关文章
|
2月前
|
人工智能 运维 专有云
持续领先!阿里云入选2025年Gartner®分布式混合基础设施魔力象限
近日,Gartner发布2025年《分布式混合基础设施魔力象限》报告,在混合云场景下,阿里云凭借飞天企业版(Apsara Stack)、边缘云ENS和云盒CloudBox产品组合能力,在“执行能力”和“愿景完整性”两大维度分别处于亚太厂商中最高最远的位置。
231 6
|
8月前
|
人工智能 Linux iOS开发
音乐人必看!OpenUtau:开源AI歌声合成神器,快速打造专业级虚拟歌手,中文日文无缝切换
OpenUtau是一款开源的歌声合成工具,兼容UTAU音源库和重采样器,支持多语言界面及预渲染功能,让音乐创作更加高效便捷。
2140 15
音乐人必看!OpenUtau:开源AI歌声合成神器,快速打造专业级虚拟歌手,中文日文无缝切换
|
机器学习/深度学习 数据采集 自然语言处理
Python基于逻辑回归模型进行电影评论情感分析项目实战
Python基于逻辑回归模型进行电影评论情感分析项目实战
|
SQL 存储 druid
浅析SaaS多租户系统数据隔离实现方案
多租户问题,其是一种架构设计方式,就是在一台或者一组服务器上运行的SaaS系统,可以为多个租户(客户)提供服务,目的是为了让多个租户在互联网环境下使用同一套程序,且保证租户间的数据隔离。从这种架构设计的模式上,不难看出来,多租户架构的重点就是同一套程序下多个租户数据的隔离。由于租户数据是集中存储的,所以要实现数据的安全性,就是看能否实现对租户数据的隔离,防止租户数据不经意或被他人恶意地获取和篡改
2516 0
|
数据采集 Web App开发 数据处理
一步步教你用Python Selenium抓取动态网页任意行数据
使用Python Selenium爬取动态网页,结合代理IP提升抓取效率。安装Selenium,配置代理(如亿牛云),设置User-Agent和Cookies以模拟用户行为。示例代码展示如何使用XPath提取表格数据,处理异常,并通过隐式等待确保页面加载完成。代理、模拟浏览器行为和正确配置增强爬虫性能和成功率。
2021 3
一步步教你用Python Selenium抓取动态网页任意行数据
|
Java 开发工具 数据库
从mybatis-plus-generator看如何编写代码生成器
velocity模板引擎分三步,1.初始化 配置模板加载地址;2.放置上下文变量velocityContext;3.渲染模板。
894 0
从mybatis-plus-generator看如何编写代码生成器
|
开发框架 安全 JavaScript
基于SpringBoot校园失物招领系统的设计与实现(程序+数据库+文档)
基于SpringBoot校园失物招领系统的设计与实现(程序+数据库+文档)
Vue3+Vite+Pinia+Naive后台管理系统搭建之四:Naive UI 组件库的安装和使用
Vue3+Vite+Pinia+Naive后台管理系统搭建之四:Naive UI 组件库的安装和使用
1012 1
|
自然语言处理 JavaScript 前端开发
MFTCoder 重磅升级 v0.3.0 发布,支持 Mixtral 等更多模型,支持收敛均衡,支持 FSDP
今天,我们对MFTCoder进行重磅升级,比如对Mixtral这个开源MoE的SOTA的多任务微调的支持;再比如我们提供了之前论文中提到的收敛均衡技术:Self-Paced Loss。 MFTCoder已适配支持了更多的主流开源LLMs,如Mixtral、Mistral、Deepseek、 Llama、CodeLlama、Qwen、CodeGeeX2、StarCoder、Baichuan2、ChatGLM2/3、GPT-Neox等。以Deepseek-coder-33b-base为底座,使用MFTCoder微调得到的CodeFuse-Deepseek-33B在HumaneEval测试中pass
333 0
|
编解码 前端开发 人机交互
【Unity 3D】UI系统中UGUI各个组件的详细讲解(附源码 超详细)
【Unity 3D】UI系统中UGUI各个组件的详细讲解(附源码 超详细)
933 0