自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

转载 ffmpeg音视频同步原理

AVStream该结构体描述一个媒体流主要域的释义如下,其中大部分域的值可以由av_open_input_file根据文件头的信息确定,缺少的信息需要通过调用av_find_stream_info读帧及软解码进一步获取:index/id:index对应流的索引,这个数字是自动生成的,根据index可以从AVFormatContext::streams表中索引到该流;而id则是流的标

2015-04-29 10:37:46 558

转载 iOS汇编教程:ARM(1)和ARM(2)

注:本文由破船译自:raywenderlich。感谢唐巧抽出时间对本文进行double-check。 我们写的Objective-C代码,最终会被转换为机器代码 —— 由ARM处理器能识别的1和0组成。实际上,在机器代码之间,还有一门人类可以阅读的语言 —— 汇编语言。 了解汇编,可以深入到你的代码里面进行调试和优化的探索,并有助于你对Objective-C运行时(runtime)

2015-04-22 09:07:52 503

转载 iOS中编译FFMpeg和使用FFMpeg的播放器

iOS下完美编译ffmpeg+x264,支持armv7, armv7s, 模拟器(支持iOS7&XCode5)   一行指令构件基于ffmpeg的播放程序(iOS7)

2015-04-21 16:45:54 347

原创 C语言缓冲区&内存分配的理解

C语言FILE结构体以及缓冲区深入探讨缓冲区的个人理解!(终结版)C语言文件读写操作中缓冲区问题和setbuf函数详解 解析C语言编程对缓冲区的理解C语言缓冲区(缓存)详解C语言内存分配问题和C语言中的内存

2015-04-21 12:30:50 1467

转载 微信、陌陌等著名IM软件设计架构详解

对微信、陌陌等进行了分析,发出来分享一下(时间有些久了)电量:对于移动设备最大的瓶颈就是电量了。因为用户不可能随时携带电源,充电宝。所以必须考虑到电量问题。那就要检查我们工程是不是有后台运行,心跳包发送时间是不是合理。流量:对于好多国内大部分屌丝用户来说可能还是包月30M,那么我们必须站在广大用户角度来考虑问题了。一个包可以解决的就一个包。网络:这个也是IM最核心的内容了,

2015-04-20 15:44:19 674

转载 iOS并发编程

线程使用Instruments的CPU strategy view查看代码如何在多核CPU中执行。创建线程可以使用POSIX 线程API,或者NSThread(封装POSIX 线程API)。下面是并发4个线程在一百万个数字中找最小值和最大值的pthread例子:#import pthread.h>struct threadInfo { uint32_t * inputVa

2015-04-20 15:28:26 2546

转载 iOS应用架构谈 开篇

iOS应用架构谈 开篇iOS应用架构谈 view层的组织和调用方案iOS应用架构谈 网络层设计方案iOS应用架构谈 动态部署方案iOS应用架构谈 本地持久化方案缘由之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验。在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构

2015-04-20 13:12:19 338

转载 iOS APP 架构漫谈二

上一篇《iOS APP 架构漫谈》简单介绍了information flow的概念。这篇文章简单介绍另一个在编程中非常重要的思想或工具——状态机(State machine)。对大多数计算机专业的家伙们来说,这应该是一门比较难学的课程,里面包含一大堆揪心的名字比如DFA,NFA,还有一大堆各种各样的数学符号,又是编译原理的基础。不过很遗憾,似乎在做完编译原理课程作业之后,很多人再也没有实现过或是用

2015-04-20 13:05:04 347

转载 iOS APP 架构漫谈

最近看了一些有关server的东西,一些很简单的东西,不外乎是一些文档规范,另外结合最近看的wwdc的一些video,觉得对软件架构(software architecture)认识又清楚了一些,这里记录下来。software architecture 听上去是一个很大的概念,实际上也包括很多东西,里面的争议也很多。在我看来软件架构最好放在小的场景中理解。问题1我们有2个页面。

2015-04-20 13:02:09 304

转载 移动App架构设计

移动App架构设计本文主要总结了几种常用的架构模式, 基本是层层递进的转载请注名出处 http://blog.csdn.net/uxyheaven, 良好的排版在https://github.com/uxyheaven/阅读如果觉得本文不错, 请在csdn给个顶, github给个star.Native app的开发相比传统的项目迭代周期要短很多, 需求的变化也频繁一些, 在开发的

2015-04-20 12:57:04 496

转载 iOS学习笔记12—Runloop

一、Runloop简介:Run loops 是线程相关的的基础框架的一部分。一个 run loop 就是一个事件处理 的循环,用来不停的调度工作以及处理输入事件。使用 run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。Runloop还可以在loop在循环中的同时响应其他输入源,比如界面控件的按钮,手势等。 Run loop 接收输入事件来自两

2015-04-20 11:12:00 297

转载 IOS 多线程 RUNLOOP 机制 (三)

四,配置Run Loop源---配置源的过程就是源的创建调用过程配置过程分为以下几个阶段---定义/创建(一个源)---安装(将输入源安装到所在Run Loop中)---注册(将输入源注册到客户端,协调输入源的客户端)---调用(通知输入源,开始工作)4-1,定义自定义输入源创建自定义输入源需要定义以下内容1)输入源要处理的信息2)使感兴趣的客户端知道如何和输入源交互的调度例程

2015-04-20 11:05:36 366

转载 IOS 多线程 RUNLOOP 机制 (二)

二,何时使用Run Loop对于辅助线程,在需要和线程有更多交互时,才使用Run Loop。比如:1)使用端口或者自定义输入源来和其他线程通讯2)使用线程定时器3)Cocoa中使用任何performSelector...的方法(参考Table:Performing selectors on other threads)4)使线程周期性工作三,如何使用Run Lo

2015-04-20 11:03:25 278

转载 IOS 多线程 RUNLOOP 机制 (一)

Run Loop      Run Loop就是一个事件处理的循环,用来不停的调动工作以及处理输入事件。使用Run Loop的目的就是节省CPU效率,线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。一,Run Loop剖析Structure of a Run Loop and its sources上图显示了线程的输入源A,基于端口的输入源(Port Sources

2015-04-20 11:02:43 335

转载 CFRunLoop

简介简单的说run loop是事件驱动的一个大循环,如下代码所示int main(int argc, char * argv[]) { //程序一直运行状态 while (AppIsRunning) { //睡眠状态,等待唤醒事件 id whoWakesMe = SleepForWakingUp(); //

2015-04-20 10:52:38 268

转载 Objective-C Runtime 运行时之六:拾遗

前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。当然这并不能包含所有的内容。runtime还有许多内容,需要读者去研究发现。super在Objective-

2015-04-20 10:10:59 292

转载 Objective-C Runtime 运行时之五:协议与分类

Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为“delegation”模式,@protocol声明了可以呗其他任何方法类实现的方法,协议仅仅是定

2015-04-20 10:09:50 319

转载 Objective-C Runtime 运行时之四:Method Swizzling

理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现。例如,我们想跟踪在程序中每

2015-04-20 10:08:41 328

转载 Objective-C Runtime 运行时之二:成员变量与属性

在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。类型编码(Type Encoding)作为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为一个字符串,

2015-04-20 10:06:46 347

转载 Objective-C Runtime 运行时之三:方法与消息

前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。基础数据类型SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:typedef struct objc_selecto

2015-04-20 10:06:26 243

转载 Objective-C Runtime 运行时之一:类与对象

Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以

2015-04-20 10:04:17 272

转载 Objective-C runtime-介绍 Method Swizzling 技巧及如何用 Swizzling 做 Logging

上一篇介绍了 Objective-C Messaging。利用 Objective-C 的 Runtime 特性,我们可以给语言做扩展,帮助解决项目开发中的一些设计和技术问题。这一篇,我们来探索一些利用 Objective-C Runtime 的黑色技巧。这些技巧中最具争议的或许就是 Method Swizzling 。介绍一个技巧,最好的方式就是提出具体的需求,然后用它跟其他的解决方法做

2015-04-20 09:57:16 247

转载 Objective-C Runtime-深入介绍 Messaging 机制

Objective-CObjective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。而这个扩展的核心是一个用 C 和 编译语言 写的 Runtime 库。它是 Objective-C 面向对象和动态机制的基石。Objective-C 是一个动态语言,这意味着它不仅需要一个编译器,也需要一个运行时系统来动态得创建类和对象、进行消息传递和转发。理解 O

2015-04-20 09:57:15 404

转载 刨根问底Objective-C Runtime(4)- 成员变量与属性

上一篇笔记讲述了objc runtime中消息和Category的细节,本篇笔记主要是讲述objc runtime的成员变量和属性。习题内容下面代码会? Compile Error / Runtime Crash / NSLog…?@interface Sark : NSObject@property (nonatomic, copy) NSString *name;@end

2015-04-20 09:51:11 329

转载 刨根问底Objective-C Runtime(3)- 消息 和 Category

上一篇笔记讲述了objc runtime中Object & Class & Meta Class的细节,本篇笔记主要是讲述objc runtime的消息和Category。习题内容下面的代码会?Compile Error / Runtime Crash / NSLog…?@interface NSObject (Sark)+ (void)foo;@end@implement

2015-04-20 09:48:04 383

转载 刨根问底Objective-C Runtime(2)- Object & Class & Meta Class

上一篇笔记讲述了objc runtime中Self 和 Super的细节,本篇笔记主要是讲述objc runtime中关于Object & Class & Meta Class的细节。习题内容下面代码的运行结果是?@interface Sark : NSObject@end@implementation Sark@endint main(int argc, const ch

2015-04-20 09:46:35 332

转载 刨根问底Objective-C Runtime(1)- Self & Super

前言关于Objective-C Runtime一篇好的文档 : Understanding the Objective-C Runtime译文地址为: http://blog.cocoabit.com/blog/2014/10/06/yi-li-jieobjective-cruntime/Objective-C Runtime源码是开源的,下载地址为: http://ope

2015-04-20 09:45:23 223

转载 iOS 运行时添加属性和方法

第一种:runtime.h里的方法BOOL class_addProperty(Class cls,    const char *name,    const objc_property_attribute_t *attributes,    unsigned int attributeCount)@implementation SomeClass- (id)init {

2015-04-20 09:42:50 337

转载 轻松学习之二——iOS利用Runtime自定义控制器POP手势动画

前言苹果在IOS7以后给导航控制器增加了一个Pop的手势,只要手指在屏幕边缘滑动,当前的控制器的视图就会跟随你的手指移动,当用户松手后,系统会判断手指拖动出来的大小来决定是否要执行控制器的Pop操作。nav_pop_origin.gif这个操作的想法非常好,但是系统给我们规定的范围必须是屏幕左侧边缘才可以触发,这样实际使用过程中对于有些产品会产生不便,于是有些app就采取整个屏

2015-04-20 09:25:06 308

转载 Objc Runtime

概述Objc Runtime使得C具有了面向对象能力,在程序运行时创建,检查,修改类、对象和它们的方法。Runtime是C和汇编编写的,这里http://www.opensource.apple.com/source/objc4/可以下到苹果维护的开源代码,GNU也有一个开源的runtime版本,他们都努力的保持一致。苹果官方的Runtime编程指南Runtime函数Runtime

2015-04-20 09:22:31 544

转载 《iPhone 3D 编程》第二章:数学与抽象

***************************************************************************申明:本系列教程原稿来自网络,翻译目的仅供学习与参看,请匆用于商业目的,如果产生商业等纠纷均与翻译人、该译稿发表人无关。转载务必保留此申明。内容:《iPhone 3D 编程》第二章:数学与抽象原文地址:http://ofp

2015-04-17 16:20:10 513

转载 《iPhone 3D 编程》第一章:快速入门指南

目录(?)[+]****************************************************************************申明:本系列教程原稿来自网络,翻译目的仅供学习与参看,请匆用于商业目的,如果产生商业等纠纷均与翻译人、该译稿发表人无关。转载务必保留此申明。内容:《iPhone 3D 编程》第一章:快速入门指南原文地址:

2015-04-17 16:07:34 812

转载 第一个 OpenGL ES的小程序(过程写的非常详细)

#import"King_ViewController.h"@interface King_ViewController()@end@implementationKing_ViewController@synthesize baseEffect;//这个数据类型用于储存每个定点的位置信息typedef stru

2015-04-17 15:52:48 717

转载 OpenGL ES入门详解

1.决定你要支持的OpenGL ES的版本。目前,OpenGL ES包含1.1和2.0两个版本,iPhone 3G+和iPad开始支持OpenGL ES2.0。而且这两个版本之间的差异非常大,不仅仅在编程思想上,API之间的差距也很大。因此,如果你想使用OpenGL ES开发3D程序或游戏,那么首先就要决定使用哪个版本,还是说两个版本都支持。OpenGL ES定义了代表不同版本的宏:     

2015-04-17 15:15:53 380

转载 YUV格式详解

目录(?)[-]YUV格式解析1播放器project2YUV 采样表面定义YUV格式解析2YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。转载一篇对yuv格式解释的比较清楚地文章,也可以直接参考微软的那

2015-04-16 15:20:00 301

转载 RTP协议分析

目录(?)[-]第1章     RTP概述RTP是什么RTP的应用环境相关概念流媒体第2章     RTP详解RTP的协议层次传输层的子层应用层的一部分RTP的封装RTCP的封装RTP的会话过程第3章     相关的协议实时流协议RTSP资源预定协议RSVP第4章     常见的疑问怎样重组乱序的数据包怎样获得数据包的时序

2015-04-16 10:44:12 285

转载 H.264中NAL、Slice与frame意思及相互关系

H.264中NAL、Slice与frame意思及相互关系 NAL nal_unit_type中的1(非IDR图像的编码条带)、2(编码条带数据分割块A)、3(编码条带数据分割块B)、4(编码条带数据分割块C)、5(IDR图像的编码条带)种类型与 Slice种的三种编码模式:I_slice、P_slice、B_slice 还有frame的3种类型:I frame、P frame、

2015-04-16 10:39:23 1400

转载 H.264中的NAL单元类型 nal_unit_type

nal_unit_typeNAL 单元和 RBSP 语法结构的内容  0未指定 1一个非IDR图像的编码条带 slice_layer_without_partitioning_rbsp( ) 2编码条带数据分割块A slice_data_partition_a_layer_rbsp( ) 3编码条带

2015-04-16 10:38:58 2158

转载 UDP、TCP、RTP三种协议的总结

OSI七层模型OSI 中的层            功能                                                        TCP/IP协议族应 用层                 文件传输,电子邮件,文件服务,虚拟终 端         TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表示层          

2015-04-16 09:22:12 912

转载 RTP协议全解(H264码流和PS流)

写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/392073051、RT

2015-04-16 09:19:16 716

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除