ffmpeg框架阅读笔记二 : 寻找AVIOContext初始化过程,自定义初始化。 在avformat_open_input中,有一个 init_input函数,它的作用是打开输入媒体,初始化所有与媒体读写有关的结构们,例如/AVIOContext,AVInputFormat等等。分析init_input函数,找出AVIOContext的初始化过程。以下对于init_input函数的分析代码摘自 http://blog.csdn.NET/nkmnkm/article/detail
ffmpeg框架阅读笔记一:读取数据帧函数 int av_read_frame(AVFormatContext *s, AVPacket *pkt) 做音频播放,数据源从完整音频文件变成了网络拉取音频流到缓冲区,实现片段流的播放。分析av_read_frame过程,自定义获取数据源的功能。重点查找如何读入数据源。首先分析函数av_read_frame。[cpp] view plain copy int av_read_frame(AVFormatContext *s, AVPacket *pkt) { //包含AVPacket结构体
accpet 返回的描述符理解 socket accept()返回的socket描述符的端口和listen描述符端口是一样的吗?as you know,一个socket是由一个五元组来唯一标示的,即(协议,server_ip, server_port, client_ip, client_port)。只要该五元组中任何一个值不同,则其代表的socket就不同。这里忽略协议的区别,在同一协议的基础上,服务器端的listen sock
python 装饰器 python装饰器通俗易懂的解释!1、python装饰器刚刚接触python的装饰器,简直懵逼了,直接不懂什么意思啊有木有,自己都忘了走了多少遍Debug,查了多少遍资料,猜有点点开始明白了。总结了一下解释得比较好的,通俗易懂的来说明一下:小P闲来无事,随便翻看自己以前写的一些函数,忽然对一个最最最基础的函数起了兴趣:1 def sum1(): 2 sum = 1 + 2 3
AnnexB与avcc的区别 本文需要读者对H.264流有一定的了解才可以理解2种格式差异。首先要理解的是没有标准的H.264基本流格式。文档中的确包含了一个Annex,特别是描述了一种可能的格式Annex B格式,但是这个并不是一个必须要求的格式。标准文档中指定了视频怎样编码成独立的包,但是这些包是怎样存储和传输的却是开放的。一. Annex B A.Network Abstraction Layer Units
h264 nalu结构 NALU:Coded H.264 data is stored or transmitted as a series of packets known as NetworkAbstraction LayerUnits. (NALU单元) RBSP :A NALU contains a Raw Byte Sequence Payload, a sequence of bytes containing
App架构经验总结(转) App架构经验总结(转) 原文链接: http://keeganlee.me/post/architecture/20160303架构因人而异,不同的架构师大多会有不同的看法;架构也因项目而异,不同的项目需求不同,相应的架构也会不同。然而,有些东西还是通用的,是所有架构师都需要考虑的,也是所有项目都会有的需求,比如API如何设计?架构如何分层?开发环境和生产环境如何分离?这几年,我负责研发过的Ap
汇编语言中寄存器的完整解释 1、 16位寄存器组 数据寄存器、变址寄存器统称为通用寄存器。 在AX中,”x”表示的意思是mix,“混合”的意思。对AX指的是AH和AL两个混合的总称。 在EAX中,”E”表示的意思是Extended,“扩展”的意思。 4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取 8086的
利用 Python yield 创建协程将异步编程同步化 利用 Python yield 创建协程将异步编程同步化 Python 2015-09-07 08:40:34 发布 您的评价: 0.0 收藏 0收藏 在 Lua 和 Python 等脚本语言中,经常提到一个概念: 协程。也经常会有同学对协程的概念及其作用比较疑惑,本文今天就来探讨下协程的前世今生。0、首先回答两个大家最关心的问题: 0.1 什么是协程? 本质上协程就是
Python动态类型和引用 Python学习笔记(五)Python动态类型和引用 时间 2014-09-15 17:16:05 Adan 原文 http://blog.csdn.net/suipingsp/article/details/39295295 主题 Python 动态类型以及由他提供的多态性是Python语言简洁性、灵活性的基础。Python中,类型是在运行过程中自动决定的,没有必要事先声明变量。记住,
HTTP长连接和短连接以及推送技术原理 【Web基础】HTTP长连接和短连接以及推送技术原理 标签: http协议网络 2015-11-27 11:09 4086人阅读 评论(0) 收藏 举报 分类: Web notes(7) 作者同类文章X 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] HTTP长连接和短连接以及推送服务原理HTTP长连接和短连接1HTTP协议与TCP/IP协议的关系HTT
Android内核开发:图解Android系统的启动过程 本文是《Android内核开发》系列的第六篇文章,前面的几篇文章介绍了Android内核开发相关的基础知识,包括:Android源码的下载、版本和分支介绍、编译和烧写等等,从本文起就要开始真正地进行Android内核的学习及实战了。学习任何软硬件系统,研究系统启动过程都是一种非常有效地起步手段,搞Android内核开发也不例外。网上有很多文章对Android启动相关代码进行分析和走读,大家可以先搜索
解码器进帧出帧顺序 出处:http://www.cnblogs.com/yinxiangpei/articles/2828118.html,原作者不详仅仅使用前一个显示的基准帧来编码的帧被称为P帧,同时使用前一个显示帧和未来帧作为基准帧进行编码的帧称为B帧. 在通常的场景中,编解码器编码一个I帧,然后向前跳过几个帧,用编码I帧作为基准帧对一个未来P帧进行编码,然后跳回到I帧之后的下一个帧。 编码的I帧和P帧之间的帧
H264—帧,片,参数集,NALU等概念 h264是一个编码压缩的格式,可以使用x264库进行编码,源码开放,可下载编译使用。H.264 Codech264概念上区分视频编码层(VCL)和网络抽象层(NAL).VCL包含Codec的信令处理功能;以及如转换,量化,运动补偿预测机制;以及循环过滤器。他遵从今天大多数视频codec的一般概念,基于宏快的编码器,使用基于运动补偿的图像间预测和残余信号的转换编码。(NAL)编码器封装VCL编码器输出
AAC音频格式分析 AAC音频格式分析AAC音频格式有ADIF和ADTS:ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有
Android视图绘制流程完全解析,带你一步步深入了解View(二) 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/16330267在上一篇文章中,我带着大家一起剖析了一下LayoutInflater的工作原理,可以算是对View进行深入了解的第一步吧。那么本篇文章中,我们将继续对View进行深入探究,看一看它的绘制流程到底是什么样的。如果你还没有看过我的上一篇文章,可以先去阅读 Android La
Android LayoutInflater原理分析,带你一步步深入了解View(一) 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12921889有段时间没写博客了,感觉都有些生疏了呢。最近繁忙的工作终于告一段落,又有时间写文章了,接下来还会继续坚持每一周篇的节奏。有不少朋友跟我反应,都希望我可以写一篇关于View的文章,讲一讲View的工作原理以及自定义View的方法。没错,承诺过的文章我是一定要兑现的,而且在V
注册表里的秘密 注册表里的秘密 对于一般用户来说,系统注册表是深奥莫测的,隐藏着巨大的秘密。同时注册表本身却十分脆弱,稍不小心就会引起Windows操作系统的出错甚至瘫痪。但如果你有一定的注册表常识,则可以通过修改注册表让Windows更好地为你服务。注册表事实上就是一个集中管理系统硬件设施、软件配置等信息的数据库,其中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程
windows 注册表解析 电脑中注册表被称为Windows操作系统的核心,它的工作原理实质是一个庞大的数据库,存放了关于计算机硬件的配置信息、系统和应用软件的初始化信息、应用软件和文档文件的关联关系、硬件设备的说明以及各种状态信息和数据,包括Windows操作时不断引用的信息。例如:系统中的硬件资源、硬件信息、分配正在使用的端口、每个用户的配置文件、计算机上安装的应用程序以及每个应用程序可以创建的文件类型等。 主要作用:
Java变量以及内存分配(非常重要) 不知道是第几次看thinking in java了。不是的翻翻总有新的收获。堆栈静态存储区域一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表