毕业于上海大学通信与信息工程学院,从事流媒体和视频编解码的研究与开发工作; 研究领域包括视频编解码标准、视频处理和流媒体技术、移动互联网技术等。
对于软件开发而言,引用计数Reference Counting不是一个陌生的概念。在组件对象模型COM中,这就是一个非常重要的概念。每一个对象都维持着一个量称为“引用计数”,标志着有多少“客户”程序在引用当前的对象。
1、模态segue(Modal Segue): 这是除了popover和embed之外的另一种视图控制器切换的方法。当切换到模态视图控制器Modal View Controller出现时,该控制器将占据整个可操作空间知道该控制器消失。
1、C++中的变量有那些存储类型? 变量的存储类型会告诉编译器将数据存储在什么地方。在C++中,除了普通变量auto类型外,变量主要有三种存储类型:外部变量extern、静态变量static和寄存器变量register。
同弹出型segue不同,嵌入型segue是另一种视图控制器的切换方式。嵌入型segue将某一个视图控制器的视图(其self.view)嵌入到另一个视图控制器的视图结构中,即让某一个视图控制器的self.view成为另一个视图控制器的self.view的子视图。
MapKit Framework的基本概念: MapKit Framework提供了可以将地图直接嵌入到窗口和视图中的功能,同时还提供了地图标注、添加弹窗显示、进行反地理信息编码以通过地标信息查找经纬度坐标等功能。
1、应用类UIApplication: UIApplication类为应用提供了一个共享的实例,可以提供一些全局信息,其核心作用是提供了iOS程序运行期间的控制和协作工作。
【回想起来,从当年在电脑培训班第一次接触C语言至今已经过去了10个年头,期间经历了高考、大学时期的迷茫,导致了学习编程的最黄金时间被耽误了,以至于时至今日,虽然已软件开发工程师的身份混一口饭吃,但是始终感觉自己的底子太薄,难登大雅之堂。
Core Data:一种数据库机制,可以用于保存应用中需要永久保存的数据,是一种面向对象的数据库,在ios中应用极为广泛。 应用方法: (1)在xcode中建立一个visual mapping,即在新建文件中选择Core Data->Data Model。
1、列表视图TableView 用于在一个一维的列表中显示数据的方法,是滚动条视图的派生来;有动态和静态两种类型,也可以设置为plain和grouped两种风格;通过data source和delegate来设置不同的显示数据和表格属性。
1、关于多线程: 线程的概念,可以参考《操作系统》中“进程与线程”等部分的解释,同ios中线程的概念应大同小异。 队列(queue):可看做是blocks等待被某个线程执行的等候区;同线程类似,队列也存在主队列(main queue)用于处理交互方面的操作;其他队列可按需创建以完成某项特定工作。
【时间太紧张,追课的过程中感觉压力很大,时间不够用的问题相当严重。想单靠业余时间自学一门技术果真不是一件容易的事儿,就拿上节课的animation来说吧,文章里基本上只能记录了一下课程的大纲,很多具体的内容都完全没弄清楚,demo也只是完全按照课上的演示逐句敲好。
1、分类category和协议Protocol 协议定义了一组方法,可用于处理id类型的对象。例如:id obj;MyProtocol被定义为一组方法。
AVFrame结构体保存的是解码后和原始的音视频信息。AVFrame通过函数av_frame_alloc()初始化,该函数仅仅分配AVFrame实例本身,而没有分配其内部的缓存。
该函数的作用是实现压缩视频的解码。在avcodec.h中的声明方式如下: int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, int *got_picture_ptr, const AVPacket *avpkt);待解码的数据保存在avpkt->data中,大小为avpkt->size;解码完成后,picture用于保存输出图像数据。
上文中贴出了av_read_frame()函数的实现,现在更细致地分析一下其内部的实现流程。 av_read_frame()开始后,通常会调用read_frame_internal(s, pkt)函数: static int read_fr...
AVPacket结构用于保存压缩编码过的数据。在解码时,该结构的实例通常作为解复用器(demuxer)的输出并输入到解码器中;在编码时,通常是编码器的输出,并输入到复用器(muxer)中。
书接上回。在调用av_find_stream_info函数分析媒体文件并找到其中的视频流之后,视频流的相关信息被存放在了AVFormatContext结构体实例中。
在调用avformat_open_input打开文件后,下一步调用av_find_stream_info函数从文件中读取音视频流的信息,而后AVFormatContext的结构体将会将这些信息保存在其中。
1、视图: #屏幕上表示某一个矩形区域;某个视图只能有一个父视图,但是可能有多个子视图; #UIWindow:屏幕视图,在整个视图结构体系的最上层,仅适用于ios应用; #添加视图的函数: - (void)addSubview:(UI...
1、前期所实现的PlayingCard游戏,其View Controller只能适应PlayingCard这一种游戏规则。而将createDeck函数修改为返回一个nil后,整个View Controller与PlayingCard就没有关系了(同时也就没法运行了),成为了一种抽象的概念(类似于C++中的抽象类),实际的控制器必须派生这个类才能实现自身的功能。
从先前的demo中可以看到,进入main函数所定义的第一个变量就是AVFormatContext的指针: int main(int argc, char *argv[]) { AVFormatContext *pFormatCtx = NULL; .... }而且,往下看就会知道这个结构体将贯穿函数始终,avformat_open_input、av_find_stream_info、av_read_frame、av_close_input_file都需要这个结构作为参数。
在上篇文章中的demo中,main函数的流程里调用的第一个函数就是avformat_open_input()。直观看来,其最明显的功能就是制定了要播放的文件名了。
新版的ffmpeg 2.1已经加入了对最新视频编解码标准H.265/HEVC的支持,因此可以解码该格式的视频了。这对视频产业来说将起到一种巨大的推动作用。
avcodec_decode_video2()的函数实现如下所示: int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,...
原帖地址:http://blog.csdn.net/leixiaohua1020/article/details/12678577 ffmpeg中的av_read_frame()的作用是读取码流中的音频若干帧或者视频一帧。
1、UITextView: 该类与Label类类似,可显示多行,可以编辑内容,可以滚动查看内容; 包含属性NSTextStorage *textStorage,该类是NSMutableAttributedString的基类;修改该属性可以自动...
1、动态绑定:id类型的对象,表示指向未知类型对象的指针; 指向对象的实际类型在运行时指定。在使用时,注意check该对象是否响应调用的方法(respondsToSelector)。
原帖地址:http://blog.csdn.net/leixiaohua1020/article/details/12677265; avcodec_register_all()是av_register_all()函数中在注册各种复用、解复用之前调用的函数,用于注册编解码器。
原帖地址:http://blog.csdn.net/leixiaohua1020/article/details/12677129;写得非常好,故转之。
【跟随教授的讲解和演示,并重做了课上的demo之后,惊奇地发现自己写的程序有bug,界面上12张卡牌出现后,点击任何一个,其他所有卡牌都会变成一块白板……在经历了长时间的调试之后悲催地发现,在最后的updateUI这个函数中改变背景的函数写错了,setBackgroundImage:写成了setImage:,被这一无脑的失误纠结了这么久,丢人啊……各种bug改完后,前几次课的代码都已经传到博客的资源中了,可到我的资源页下载。
XCode 5是当前Apple提供给开发者最新版本的开发环境,目前最新的版本为5.0.1,在苹果开发者官网上可以免费下载。网址为:https://developer.apple.com/xcode/。
序:今天开始新开一个坑,作为一个准备了许久却依然摆脱不了24k纯菜鸟身份的程序员,跟随Stanford的世界未来精英们一起学习iOS7应用开发的相关知识,同时也是为了自己以后的业余项目做准备,提升自己的工作筹码。