- 博客(91)
- 资源 (1)
- 收藏
- 关注
转载 ffmpeg框架阅读笔记二 : 寻找AVIOContext初始化过程,自定义初始化。
在avformat_open_input中,有一个 init_input函数,它的作用是打开输入媒体,初始化所有与媒体读写有关的结构们,例如/AVIOContext,AVInputFormat等等。分析init_input函数,找出AVIOContext的初始化过程。以下对于init_input函数的分析代码摘自 http://blog.csdn.NET/nkmnkm/article/detail
2017-06-19 15:35:23
875
转载 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结构体
2017-06-19 15:30:27
1472
转载 accpet 返回的描述符理解
socket accept()返回的socket描述符的端口和listen描述符端口是一样的吗?as you know,一个socket是由一个五元组来唯一标示的,即(协议,server_ip, server_port, client_ip, client_port)。只要该五元组中任何一个值不同,则其代表的socket就不同。这里忽略协议的区别,在同一协议的基础上,服务器端的listen sock
2017-05-04 10:42:57
800
转载 python 装饰器
python装饰器通俗易懂的解释!1、python装饰器刚刚接触python的装饰器,简直懵逼了,直接不懂什么意思啊有木有,自己都忘了走了多少遍Debug,查了多少遍资料,猜有点点开始明白了。总结了一下解释得比较好的,通俗易懂的来说明一下:小P闲来无事,随便翻看自己以前写的一些函数,忽然对一个最最最基础的函数起了兴趣:1 def sum1(): 2 sum = 1 + 2 3
2016-12-06 15:30:28
386
转载 AnnexB与avcc的区别
本文需要读者对H.264流有一定的了解才可以理解2种格式差异。首先要理解的是没有标准的H.264基本流格式。文档中的确包含了一个Annex,特别是描述了一种可能的格式Annex B格式,但是这个并不是一个必须要求的格式。标准文档中指定了视频怎样编码成独立的包,但是这些包是怎样存储和传输的却是开放的。一. Annex B A.Network Abstraction Layer Units
2016-12-02 10:36:44
19831
转载 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
2016-11-24 17:40:30
572
转载 App架构经验总结(转)
App架构经验总结(转) 原文链接: http://keeganlee.me/post/architecture/20160303架构因人而异,不同的架构师大多会有不同的看法;架构也因项目而异,不同的项目需求不同,相应的架构也会不同。然而,有些东西还是通用的,是所有架构师都需要考虑的,也是所有项目都会有的需求,比如API如何设计?架构如何分层?开发环境和生产环境如何分离?这几年,我负责研发过的Ap
2016-11-22 11:35:52
509
转载 汇编语言中寄存器的完整解释
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的
2016-11-18 18:28:33
7025
转载 利用 Python yield 创建协程将异步编程同步化
利用 Python yield 创建协程将异步编程同步化 Python 2015-09-07 08:40:34 发布 您的评价: 0.0 收藏 0收藏 在 Lua 和 Python 等脚本语言中,经常提到一个概念: 协程。也经常会有同学对协程的概念及其作用比较疑惑,本文今天就来探讨下协程的前世今生。0、首先回答两个大家最关心的问题: 0.1 什么是协程? 本质上协程就是
2016-11-14 17:57:08
1859
转载 Python动态类型和引用
Python学习笔记(五)Python动态类型和引用 时间 2014-09-15 17:16:05 Adan 原文 http://blog.csdn.net/suipingsp/article/details/39295295 主题 Python 动态类型以及由他提供的多态性是Python语言简洁性、灵活性的基础。Python中,类型是在运行过程中自动决定的,没有必要事先声明变量。记住,
2016-11-07 14:00:31
350
转载 HTTP长连接和短连接以及推送技术原理
【Web基础】HTTP长连接和短连接以及推送技术原理 标签: http协议网络 2015-11-27 11:09 4086人阅读 评论(0) 收藏 举报 分类: Web notes(7) 作者同类文章X 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] HTTP长连接和短连接以及推送服务原理HTTP长连接和短连接1HTTP协议与TCP/IP协议的关系HTT
2016-11-01 16:57:08
4560
转载 Android内核开发:图解Android系统的启动过程
本文是《Android内核开发》系列的第六篇文章,前面的几篇文章介绍了Android内核开发相关的基础知识,包括:Android源码的下载、版本和分支介绍、编译和烧写等等,从本文起就要开始真正地进行Android内核的学习及实战了。学习任何软硬件系统,研究系统启动过程都是一种非常有效地起步手段,搞Android内核开发也不例外。网上有很多文章对Android启动相关代码进行分析和走读,大家可以先搜索
2016-10-25 16:33:50
452
转载 解码器进帧出帧顺序
出处:http://www.cnblogs.com/yinxiangpei/articles/2828118.html,原作者不详仅仅使用前一个显示的基准帧来编码的帧被称为P帧,同时使用前一个显示帧和未来帧作为基准帧进行编码的帧称为B帧. 在通常的场景中,编解码器编码一个I帧,然后向前跳过几个帧,用编码I帧作为基准帧对一个未来P帧进行编码,然后跳回到I帧之后的下一个帧。 编码的I帧和P帧之间的帧
2016-09-07 14:48:44
2264
转载 H264—帧,片,参数集,NALU等概念
h264是一个编码压缩的格式,可以使用x264库进行编码,源码开放,可下载编译使用。H.264 Codech264概念上区分视频编码层(VCL)和网络抽象层(NAL).VCL包含Codec的信令处理功能;以及如转换,量化,运动补偿预测机制;以及循环过滤器。他遵从今天大多数视频codec的一般概念,基于宏快的编码器,使用基于运动补偿的图像间预测和残余信号的转换编码。(NAL)编码器封装VCL编码器输出
2016-08-30 17:10:22
1300
转载 AAC音频格式分析
AAC音频格式分析AAC音频格式有ADIF和ADTS:ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有
2016-08-29 15:59:33
1198
转载 Android视图绘制流程完全解析,带你一步步深入了解View(二)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/16330267在上一篇文章中,我带着大家一起剖析了一下LayoutInflater的工作原理,可以算是对View进行深入了解的第一步吧。那么本篇文章中,我们将继续对View进行深入探究,看一看它的绘制流程到底是什么样的。如果你还没有看过我的上一篇文章,可以先去阅读 Android La
2016-08-29 15:08:15
419
转载 Android LayoutInflater原理分析,带你一步步深入了解View(一)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12921889有段时间没写博客了,感觉都有些生疏了呢。最近繁忙的工作终于告一段落,又有时间写文章了,接下来还会继续坚持每一周篇的节奏。有不少朋友跟我反应,都希望我可以写一篇关于View的文章,讲一讲View的工作原理以及自定义View的方法。没错,承诺过的文章我是一定要兑现的,而且在V
2016-08-29 15:06:41
441
转载 注册表里的秘密
注册表里的秘密 对于一般用户来说,系统注册表是深奥莫测的,隐藏着巨大的秘密。同时注册表本身却十分脆弱,稍不小心就会引起Windows操作系统的出错甚至瘫痪。但如果你有一定的注册表常识,则可以通过修改注册表让Windows更好地为你服务。注册表事实上就是一个集中管理系统硬件设施、软件配置等信息的数据库,其中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程
2016-08-24 18:09:31
3339
1
转载 windows 注册表解析
电脑中注册表被称为Windows操作系统的核心,它的工作原理实质是一个庞大的数据库,存放了关于计算机硬件的配置信息、系统和应用软件的初始化信息、应用软件和文档文件的关联关系、硬件设备的说明以及各种状态信息和数据,包括Windows操作时不断引用的信息。例如:系统中的硬件资源、硬件信息、分配正在使用的端口、每个用户的配置文件、计算机上安装的应用程序以及每个应用程序可以创建的文件类型等。 主要作用:
2016-08-24 17:19:46
1216
转载 Java变量以及内存分配(非常重要)
不知道是第几次看thinking in java了。不是的翻翻总有新的收获。堆栈静态存储区域一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表
2016-08-23 19:26:56
9315
1
转载 C++ 模板 特化 与 偏特化
c++ 模板作为一个泛化手段,与之相对,对于某种特殊场合,可能要对模板进行相应的特化,偏特化处理。模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。
2016-08-23 11:46:38
301
转载 C++new delete 实现原理
new和delete最终调用malloc和free,关于malloc和free实现原理参见这篇文章:http://blog.csdn.net/passion_wu128/article/details/38964045 new new操作针对数据类型的处理,分为两种情况: 1,简单数据类型(包括基本数据类型和不需要构造函数的类型) 代码实例: [cpp] view plain copy 在
2016-08-22 11:25:39
1333
转载 视频封装格式简介
比较常用的有以下封装格式1 AVIAVI容器-成熟的老技术 AVI是微软1992年推出用于对抗苹果Quicktime的技术,尽管国际学术界公认AVI已经属于被淘汰的技术,但是由于windows的通用性,和简单易懂的开发API,还在被广泛使用。 AVI的文件结构、分为头部, 主体和索引三部分. 主体中图像数据和声音数据是交互存放的。从尾部的索引可以索引跳到自己想放的位置。 AVI本身只
2016-08-01 14:46:53
616
转载 ffmpeg AVFilter
一. ffmpeg AVFilter介绍利用ffmpeg做图像的pixel format转换你还在用libswscale吗?嘿嘿,过时啦!ffmpeg中有了新东西:libavfilter.使用它,可以完全代替libswscale,并且可以自动完成一些复杂的转换操作呢.libavfilter啊,用了都说好!但就是太复杂… 如果你仅仅是做图像的pixel format处理,用libswscale是相
2016-07-29 10:27:50
951
转载 ffmpeg详解
FFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器。因此,对于从事多媒体技术开发的工程师来说,深入研究FFMPEG成为一门必不可少的工作,可以这样说,FFMPEG之于多媒体开发工程师的重要性正如kernel之于嵌入式系统工程师一般。几个小知识:FFMPEG项目是由法国人Fabrice Bellard发起的,此人也是著名的CPU
2016-07-29 10:20:32
3447
转载 WAV格式中常见的压缩编码
WAV格式中常见的压缩编码(compression code)WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道
2016-07-29 10:07:20
2494
转载 YUV格式分析详解
YUV格式分析详解一,YUV含义 YUV格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将YUV分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel);而后者使用三个数组分开存放YUV三个分量,就像是一个三维平面一样。在摄像头之类编程经常是会碰到YUV格式,而非大家比较熟悉的RGB格式. 我们可以把YUV看成是一个RGB的变种来理解. 如果只
2016-07-29 10:01:09
644
转载 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清
码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清(自己整理的 !!! 内容大多来自其他网友 ! ) 1, 码流 /码率 / 比特率 / 帧速率 / 分辨率码流 / 码率 码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,视频文
2016-07-29 09:59:38
4119
转载 音频中常见的技术指标
音频中常见的技术指标我们就针对数字音频常见的技术指标进行介绍。1、声道数:声道数是音频传输的重要指标,现在主要有单声道和双声道之分。双声道又称为立体声,在硬件中要占两条线路,音质、音色好,但立体声数字化后所占空间比单声道多一倍。2、量化位数:量化位是对模拟音频信号的幅度轴进行数字化,它决定了模拟信号数字化以后的动态范围。由于计算机按字节运算,一般的量化位数为8位和16位。量化位越高,信号的动态范围越
2016-07-29 09:57:19
9712
转载 音视频封装格式、编码格式知识
音视频封装格式、编码格式知识(自己整理了一下, 内容来源网络 !!)常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其实只能算是一种封装标准。一个完整的视频文件是由音频和视频2部分组成的。H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。例如:将一个Xvid视频编码文件和一个MP3音频编码文件按AVI封装标准封装以后,就得到一个AVI后缀的视频文件,
2016-07-29 09:54:57
351
转载 JS立即执行
javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解。( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后
2016-04-29 18:52:58
293
转载 对端口的理解
在Internet上,各主机间通过TCP/TP协议发送和接收数据报,各个数据报根据其目的主机的ip地址来进行互联网络中的路由选择。可见,把数据报顺利的传送到目的主机是没有问题的。问题出在哪里呢?我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据报传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。 本地操作系统会给那些有需求的进程
2016-04-15 16:02:18
634
转载 最简单的视音频播放示例6:OpenGL播放YUV420P(通过Texture,使用Shader)
=====================================================本文记录OpenGL播放视频的技术。上一篇文章中,介绍了一种简单的使用OpenGL显示视频的方式。但是那还不是OpenGL显示视频技术的精髓。和Direct3D一样,OpenGL更好的显示视频的方式也是通过纹理(Texture)。本文介绍OpenGL通过纹理的方式显示视频的技术。OpenGL中坐
2016-04-13 11:32:36
492
转载 Spring读书笔记-----Spring的Bean之Bean的基本概念
【架构设计】—–SSH框架(61)版权声明:本文为博主原创文章,未经博主允许不得转载。 从前面我们知道Spring其实就是一个大型的工厂,而Spring容器中的Bean就是该工厂的产品.对于Spring容器能够生产那些产品,则取决于配置文件中配置。 对于我们而言,我们使用Spring框架所做的就是两件事:开发Bean、配置Bean。对于Spring矿建来说,它要做的就是根据配置文件来创建
2016-04-07 10:54:12
361
转载 java项目中的几种bean对象
PO(persistant object) 持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。VO(value object) 值对象 通常用于业务层之间的
2016-02-25 15:39:52
3092
转载 Struts,Spring,Hibernate的作用
Struts,Spring,Hibernate的作用Spring的作用:在SSH框假中spring充当了管理容器的角色。我们都知道Hibernate用来做持久层,因 为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语 句。Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致 是:Jsp页面—-Struts——Servi
2016-02-24 15:29:15
515
转载 控制反转(IoC)与依赖注入(DI)
控制反转(IoC)与依赖注入(DI)原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhangjunhd.blog.51cto.com/113473/126530 1.控制反转(Inversion of Control)与依赖注入(Dependency Injection) 控制反转即IoC (Inversion of Con
2016-02-23 15:44:19
412
转载 Action层, Service层 和 Dao层的功能区分
Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的。 Service是管理具体的功能的。 Action只负责管理,而Service负责实施。 DAO只完成增删改查,虽然可以1-n,n-n,1-1关联,模糊、动态、子查询都可以。但是无论多么复杂的查询,dao只是封装增删改查。至于增删查改如何去实现一个功能,dao是不管的。
2016-02-01 11:06:08
10248
2
转载 jdk与jre的区别及关系
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心
2016-01-30 16:11:03
472
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人