0.闲来无事,想研究webrtc,看了一些网上的文章之后,觉得谬误较多,以讹传讹的比较多,自己试验了一把,记录一下。 官网的写的教程在实践中也觉得不用那么复杂,有种落伍与繁冗的感觉。 1.我想看的是webrtc在android平台的使用,所以就以android平台下载/编译为例子。由于周知的原因,w Read More
整个AOSP代码,包天包地,从kernel,libc,gui,net……简直包括了绝大多普通程序员职业生涯涉及的整个领域。其实,开源界早已经遇到并且解决了Android的很多问题,不过google讨厌GPL说起,或者说,google为了照顾更多的商业公司,以一已之力,重造了很多轮子。下面缩缩。gli... Read More
看电视麻,必须有节目才行。节目从哪里来?自然要搜索才行。我们就来介绍一下搜索功能如何实现。一,搜索所需要的硬件1,当然是tuner,就是我们俗称的高频头,因为节目都是由信道中的一个一个频点所承载的,我们要得到频点里的电信号,这个部件自然是不可缺少的。for example,我们要看ccav-1,假定... Read More
开始写时,想把vlc/ffmepg/x264/xvid/都弄一遍,觉得很多代码都要自己编译一下才爽,后来发现,如果不做二次开发,拿dll回来用,足够了,不用费劲自己搞环境。大部分时间大家又想用windows平台下的编译方法,这又更加麻烦了,因为windows的shell环境太弱了,gcc又需要另外装,太麻烦了。而且想弄的库什么的太多,我乃普通人,学不了这么多东西。另外有太多事情大家已经重复做过很多次,写了很多文章,我不用画蛇添足了。所以我决定打个折扣,只写一些大家不太关心的,但是又有一些人想知道的。我要是能把264编解都搞定,xvid/ffmpeg又能用得虎虎生风,也不会像现在这样写普及文章了 Read More
一,概念解释什么是渲染?这是高大上的说法,翻译成正常语言,就是把图像缓冲区的数据显示到屏幕的过程,就是渲染。原理说白了很简单,但实际操作中有太多因素需要考量。OS/硬件提供的加速机制/解码后图像数据格式/字幕数据的格式。。。。刚开始查找资料时,我总是试图找到所有的渲染方式,后来发现这实在错的比较离谱。因为说到底,这是一个图形学的问题:如何在计算机屏幕上绘图。不同的图形库有不同的绘图接口,太多的厂商有自己的图形库,根本不可能穷举出所有的图形库。我们只能讨论一些相对主流的方式。另外去找所有的图形渲染方式也是没有意义的,因为他们的理念大体上又是差不多的,只是API不同。唯一的要求是,你要画的足够快, Read More
自己的这个笔记,废了好久,还是要坚持写下去,虽然现在看来,质量不太高,而且很多东西貌似没有说到位,只有自己才看得懂,明显不是技术普及的方式。先说基本原理,这个基本就是抄书了,因为不是做科研的,很多东西都是人们用了很多年才逐渐总结出来的。对于算法研究而言,本身就是要先知道哪个地方可以努力,哪些地方行不通。这些原理,就是指明方向的。一.视频压缩的可行性1.空间冗余一幅静态图像,比如人脸。背景,人脸,头发等处的亮度,颜色,都是平缓变化的。相邻的像素和色度信号值比较接近。具有强相关性,如果直接用采样数来表示亮度和色度信息,数据中存在较多的空间冗余。如果先去除冗余数据再编码,表示每个像素的平均比特数就会 Read More
在讨论stagefright如何调用硬件解码之前,我们要先清楚几个问题。我不展开这几个结论是如何得来的,因为这部分属于进程间通信binder的理解,和多媒体本身无关。一.问题空间这个有点像方法学上的东西了,呵呵。其实我们讨论一个问题,首先要观注的就是,什么是我们应该关心的,什么是我们在这个问题空间里不用解决的。上次我们说到,awesomeplayer所有codec,包括软解与硬解的,都是由omx封装的。我的第一个结论就是:OMX是一个server,等同于surfaceflinger,audioflinger的server。既然是server,那么,肯定存在客户端与服务器两个方面,另外,serv Read More