深入理解VLC(一)纵观全局

VLC系列文章
深入理解VLC之代码流程

VLC,著名的开源播放器项目,它虽然很庞大,但是在架构设计上也高度模块化。幸运的是,官方wiki非常详细,无论是大的架构设计,还是每一个模块里面的代码细节,都有详尽的介绍。wiki链接:https://wiki.videolan.org/Hacker_Guide/。

本文主要以vlc-android项目为例,介绍vlc的架构设计,参考了一篇对vlc架构分析得很好的文章:https://jiya.io/archives/vlc_learn_2.html

1. 代码结构

下载vlc-android项目代码并编译之后,得到主要目录结构如下

libvlc jni层以及java api
medialibrary 媒体数据库相关的代码
vlc native代码,后面分析的重点
vlc-android 应用的代码,编出来的apk就在vlc-andoird/debug目录下

在介绍vlc目录下的代码结构之前,先来说一下vlc的架构设计:

vlc的架构设计可以分作两层:

第一层是对整条播放通路(pipeline)的抽象,包含以下几个抽象概念

playlist: playlist表示播放列表,VLC在启动后,即创建一个playlist thread,用户输入后,动态创建input。
input: input表示输入,当用户通过界面输入一个文件或者流地址时,input
深入理解VLC(二)代码流程 vlc是一个很庞大的项目,在架构设计上也高度模块化。幸运的是,官方wiki非常详细,无论是大的架构设计,还是每一个架构里面的代码细节,都有详尽的介绍。链接:https://wiki.videolan.org/Hacker_Guide/ 一、纵观全局 这里参考了一篇对vlc架构分析得很好的文章:https://jiya.io/archives/vlc_learn_2.html 1. 代码结构 下载v... 阅读详情

相关推荐

VLC媒体播放器:RTSP流播放与开发指南

本文还有配套的精品资源,点击获取 简介:VLC是一个支持多种格式和流协议的开源跨平台媒体播放器,特别适用于处理RTSP流。本压缩包包含VLC播放器安装包、RTSP取流协议文档,以及使用VLC播放RTSP流的实例演示。RTSP协议允许对实时视频流进行控制,如播放、暂停等。开发人员可以通过示例和文档深入了解如何在VLC中实现自定义的流媒体播放功能,并将其应用于监控、直播等场景。...

weixin_42581846的博客 8766

VLC播放器:全球开源跨平台多媒体播放器的终极指南

VLC播放器的自定义皮肤功能赋予了用户极大的界面灵活性和个性化体验。要选择和应用皮肤,用户首先需要访问VLC的官方皮肤库,或者搜索互联网上的第三方皮肤资源。步骤1:打开VLC播放器。步骤2:进入菜单栏的“工具”选项,然后选择“首选项”。步骤3:在首选项设置中,切换到“外观”部分。步骤4:在界面主题部分,选择“浏览”按钮来定位并选择你下载的皮肤文件(通常为.vlt格式)。步骤5:选定皮肤文件后,点击“应用”按钮,然后VLC播放器将更新界面,应用新的皮肤。

weixin_31860973的博客 3233

VLC多媒体播放器全面解析

VLC是多媒体领域内公认的瑞士军刀,以其丰富而强大的功能吸引着全球数以百万计的用户。在本章中,我们将对VLC的主要功能进行一个初步的概述,为后续章节中更加详细的分析和技术探讨打下基础。首先,VLC不仅仅是一个简单的多媒体播放器。它的设计理念是为用户提供一个全功能、可定制且无需额外编解码器的播放体验。VLC支持几乎所有已知的视频格式和音频格式,这使得它能够胜任几乎任何类型的媒体播放任务。

weixin_30923011的博客 2440

主动式桥梁防船撞预警系统的方案汇总

本系统以精密光电测高前端(2台,上下游各1台)、固态雷达(2台,上下游各1台)、AIS(1台)、偏航辅助前端(4台,上下游各2台)为核心,通过人工智能,对画面上的船舶目标进行深度学习、精确定位,再用系统集成方法将各设备有机结合在一起,构建成套的桥梁防撞主动预警系统,全天候监控过往船舶。主动式桥梁防船撞预警系统主要船舶监测采集单元、控制单元、船舶超高、偏航信息检测单元、以及视频监控单元组成,,通过声光警示、短信文字、船舶身份识别及海事对讲频道、视频录像取证等多种手段与船舶进行信息互动,主动防止船舶碰撞桥梁!

gdxixun的博客 977

瑞芯微RK3576上手实测:8nm新U配6TOPS NPU,做AIoT项目选它还是RK3588/RK3568?

本文深度评测瑞芯微RK3576芯片在中高端AIoT项目中的表现,对比RK3588和RK3568的性能差异。RK3576采用8nm工艺,配备6TOPS NPU,在解码能力、AI推理效率和功耗控制方面表现均衡,是中端项目的黄金选择。实测数据显示其在多路视频解码和AI加速性能上优势明显,特别适合智能摄像头和工业HMI设备。

weixin_42627853的博客 717

【LabVIEW懒人系列教程-视觉入门】2.6LabVIEW模板匹配之创建模板

上期2.5在Labview软件框架中实现了模板匹配功能的运用,然而我们的模板图像是通过视觉助手创建出来的,在实际项目中这样做 ,难免有些不妥。所以,今天就给大家讲解一下,如何编写创建模板功能,模板图像的创建与加载需要注意一些什么。 模板图片的创建,大家可以理解为将图像中的一个特征区域扣下来,通过Labview函数进行信息学习,然后保存成带有图像信息的模板图。 具体做法,下面为大家演示一下 百度网盘视频链接:https://pan.baidu.com/s/1-zxcJBxPgk4t1Ej..

视觉龙哥 2168

C#实现不占用串口的串口监听与侦听技术:高效监控串口数据的最佳实践

本文详细介绍了如何实现不占用串口的串口监听与侦听技术,解决了传统串口监听可能带来的串口占用问题。通过使用虚拟串口、外部监听工具或第三方库,我们可以高效地实现串口数据的捕获与处理,适用于各种工业控制、物联网和嵌入式开发的应用场景。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1675

从零开始搭建企业级安全扫描平台:基于Docker的Greenbone和ClamAV部署指南

本文提供了一份基于Docker容器技术,从零开始搭建企业级安全扫描平台的实战指南。详细介绍了如何部署和集成漏洞扫描工具Greenbone与病毒扫描工具ClamAV,涵盖架构设计、Docker环境优化、容器化部署步骤以及平台集成与监控方案,帮助企业构建自动化、可扩展的安全防御核心组件。

delta的博客 757

基于STM32、HAL库的IP5356M快充协议芯片简介及驱动程序设计

@param hip: IP5356M句柄指针。* @param hip: IP5356M句柄指针。* @param hip: IP5356M句柄指针。* @param hip: IP5356M句柄指针。* @param hip: IP5356M句柄指针。* @param hip: IP5356M句柄指针。* @param hip: IP5356M句柄指针。* @param hip: IP5356M句柄指针。* @param hip: IP5356M句柄指针。

corlin6688的博客 1220

基于信号完整性的PCB设计原则

基于信号完整性的PCB设计建议,以单网络的信号布线作为评估对象,给出了一些最基础的设计指导,如何灵活运用,取决于设计者根据实际场景如何做取舍和判断。

一只豌豆象的博客 1758

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 岁岁年年人不同——LVS2019多媒体会议见闻(二)
下一篇: 快速理解AAC编码格式
zhanghui_cuc
博客等级 码龄14年 2993粉丝 101原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhanghui_cuc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值