08 2008 档案

[原]关于程序性能问题的一点想法
摘要:大多关于性能优化的资料都建议将优化放到系统完成后进行,因为过早的优化缺少前瞻性。认为此处所指的优化应为代码优化(代码细节上的调整),而事实上,系统架构、关键数据结构等高层次设计上对系统性能的影响可能远大于细节的代码(编码严重失误的情况除外)。试想,对某个操作的代码有什么优化能够达到将这个操作去掉带来的效率提升呢?而冗余操作的去除正是系统架构、关键数据结构和数据流向的合理规划才能达到的。对于一些对性... 阅读全文

posted @ 2008-08-29 18:20 techsunny 阅读(151) 评论(0) 推荐(0)

[原]音视频播放笔记
摘要:缓冲区管理 缓冲区管理在视频播放器中有重要作用。实时在线播放中,为了减小网络流量波动性的影响,使播放流畅,需要缓存一定的数据。缓冲区管理bug导致的丢包和重包可能会使播放器产生各种莫名其妙的错误。 缓冲区溢出 -- 视频服务器交错发送音、视频数据,一种缓冲区满(音频或视频)停止接收时会导致另一种数据亦无法接收,因此,如缓冲区大小设置不当,可能会产生一种缓冲区满而另一种缓冲区空的状况。满的缓冲区由于... 阅读全文

posted @ 2008-08-29 17:12 techsunny 阅读(429) 评论(0) 推荐(0)

[原]编程手记--2008.08.28
摘要:经过一天多的努力,疑神疑鬼了一大圈,终于稀里糊涂地找到播放速度变慢的原因了。。。先说一下发现的过程: 开始一直感觉是buf写入过快导致的,因为所有的证据都反映出当buf写入速度放慢时播放速度趋于正常,但又实在是想不出个所以然来。。。 由于不管buf写入快慢,写入前都要检测buf的WAVEHDR->dwFlags确定buf是否可写入。但。。。,反正就是怀疑到了检测正在播放中的buf的WAVEH... 阅读全文

posted @ 2008-08-28 15:49 techsunny 阅读(246) 评论(0) 推荐(0)

[原]编程手记--2008.08.26
摘要:很多时候,探索的结果仅仅是验证某些做法不可行。 播放器中有个步骤是将每帧YUV420的解码数据拷贝到一个输出缓冲区中,然后转换成RGB32、缩放、AlphaBlend、显示。为了优化性能,考虑将那个帧拷贝的步骤去掉,让解码器直接将解码图像写入输出缓冲。 ffmpeg的avcodec_decode_video()在解码时传入一个AVFrame的指针,解码数据存在AVFrame->data[]里。... 阅读全文

posted @ 2008-08-27 09:07 techsunny 阅读(900) 评论(1) 推荐(0)

[原]DirectDraw视频播放要点
摘要:[本文于2008.08.29更新,增加了实际验证部分] 最近在写一个用DirectDraw播放视频的程序,用DirectDraw的目的是要减小图像显示过程的CPU占用。在网上看了不少教程、例子,大都是介绍一下各个结构、变量的含义,基本用法。对于如何正确的应用、高效的显示方面的资料却较难找到。经过反复试验、揣摩,总结如下: 阅读全文

posted @ 2008-08-20 10:30 techsunny 阅读(1827) 评论(1) 推荐(1)

导航