07 2022 档案
摘要:ffplay.c源码分析【1】讲了ffplay基本架构和相关的数据结构等内容,本文主要进行数据读取线程、解码线程的源码进行分析,充分理解ffplay整个处理流程,其整体架构如下图所示。 (1)数据读取线程 (a)准备阶段 avformat_alloc_context 创建上下文 ic->interr
阅读全文
摘要:概述 ffplay是ffmpeg自带的播放器,调用ffmpeg和SDL API实现的一个非常具有参考价值的播放器,就连著名的B站开源项目ijkplayer也是在ffplay.c上进行二次开发,ffplay实现了播放器大体上的功能,掌握其原理对于做播放器开发非常有意义,ffplay的架构如下。 (1)
阅读全文
摘要:如今短视频流行当下,想象一下两个人进行视频通话,从音视频采集、编码、推流、拉流、解码、音视频同步、显示对方画面等过程;而在编码和解码最为重要的部分,使用的技术正是ffmpeg,在一些视频转码也常用到ffmpeg,所以学习ffmpeg.c源码对于掌握ffmpeg非常重要。 ffmpeg结构流程:解析命
阅读全文
摘要:工作中经常遇到内存泄漏,而且又很难排查是哪里没有释放导致,如果采用内存池的方式,内存都从内存池里面分配,销毁内存池时才统一释放,就能减少很多的内存泄漏问题。使用内存池的意义,一个是能够有效解决内存碎片化的问题,再一个就是避免内存泄漏的问题;本文主要介绍Nginx的内存池。 (1)Nginx内存池结构
阅读全文
摘要:为了避免频繁的创建、释放连接引起的性能开销,于是引入了连接池来得到资源的服用,能更快的系统响应,以及统一的连接管理,避免了数据库连接泄露。 数据库连接池设计大同小异,主要考虑几个问题:如果通过队列管理连接、如何获取连接、如何归还连接、如何处理扩容问题等。解决以上问题,基本就可以实现一个简单的连接池。
阅读全文