以下仅仅是自己的工作总结,写给自己看的。
给人打工的那份工作:
一、只说自己都做了什么,不说这个任务的用途了,也许会泄露商业机密。
周六下午到今天,熟悉了AVI的文件结构。
1、在VC上解析了AVI文件,可以把Video和Audio的原始数据解析出来,生成了两个不同的文件,其中Audio是可以听的,Video不能直接看。
2、找了个开源的库,FreeImage,似乎比较古老了,但比较管用。解析出来的Video其实就是一幅幅Jpeg图片(可以把每一帧保存成一张Jpeg),我用FreeImage的接口,将Jpeg转换成24bit的RGB565格式的位图。我以为这就是原始的RGB565数据了,不过不知道将这些数据重新写成一个新的AVI文件,那个compressor该填些什么,反正我试了"RGB ","RAW ","DIB "这几种格式,播放器播放不了。
3、我写了一个简易的播放器。说起来也简单,就是去解析AVI文件后,循环去读每一个Frame,获得相应的存放数据的buffer和长度,从而使用FreeImage去获取这一Frame(width和height是已知的)的每个点的像素颜色,每取得一个像素的颜色就在屏幕上画出来。这里值得注意的是,FreeImage获取像素是从左到右从下至上的方向的,如果坐标不对,那么显示出来的图像肯定不对。
4、我一度以为我在2中获得的就是RGB565的原始数据,但是老板说不对。晕掉了,我搞不清楚24bit的位图和bmp文件的区别,我想bmp是位图的一种吧,不知道怎么说了。
下午我终于领会老板的意思了。我不是能解析AVI的每一Frame,获得每一Frame上各个像素的颜色么?将上面的RGB转换成RGB565(WORD类型,unsigned short),将RGB565的数据组织好,存于一个buffer里,算出buffer的长度,将buffer写入AVI文件的每一Frame就好。不知道这样的文件是不是标准的AVI格式,我想是很不标准的,反正我不知道Compressor应该填啥,这样写出来的AVI文件也不能让暴风影音之类的播放器播放出来。
还得用我自己写的简易播放器,先解析文件,解析不出来是啥格式没关系,增加一条对format的判断语句,如果是FMT_UNKNOW下,则就是我写的那种AVI。又是一帧帧地去取图片,每一帧的data就是刚才写入的RGB565的数据,将其取出,分别转换成R、G、B三种颜色,在屏幕上打点,就是播放AVI了。
5、五一后要在板子上调了,那时改的是板子上用的代码。我在VC上写的只是验证写入的AVI文件格式没有问题罢了。
6、写AVI的简单流程(录像和录音的流程也是一样的):
(1)open_write_avi():做一些初始化处理,写入文件头之类的。
(2)循环做以下的事情:
set_video():宽、高、compressor
write_video_frame()
set_Audio():格式、采样率等
write_audio
(3)写完,close_write_avi()
二、移植了一些应用,跟一个FAE调了一上午。提交代码到服务器上花了两个小时。
三、部分时间被当成了公司的网络管理员,说得不好听的就是打杂的。小公司不到10个人,被老板叫去一站路远的地方扛主机箱、拆装电脑、装光驱驱动、配置公司邮箱之类的,连硬件去买一些材料跑腿,也让我跟着去扛东西。最近也常被同事叫去杀毒、安装操作系统之类的。我是个热心的人,我也很乐意主动帮助同事解决他们遇到的问题,但我不喜欢老板“专门”让我打杂,因为我首先是个软件工程师。把心态放正了,干就干吧,不干点活怎么对得起这份工资。
业余工作:
一、继续从事Python研究和Django开发。
每天阅读几百封发自Python-cn邮件列表的邮件,基本上都会看的。
每天在车上看书学习。
每天去常去的网站关注热点和新闻,思考。
一周工作总结(080426-080430)
一周工作总结(080426-080430)
...