我写过的软件之TSE-背景介绍
来源:互联网 发布:网络名称大全 编辑:程序博客网 时间:2024/04/30 20:08
今天记录一下TSE,^_^。TSE其实是TS Expert的C#版本。TS Expert使用VC++实现的,在写TS Expert的时候正在学习各种各样的设计模式,故意把一些设计模式用到TS Expert中去。现在回过头来看,不少设计模式本质上是对虚函数、继承、回调函数的应用,大量使用设计模式会大大提高代码的复杂度。
曾经去Nokia面试一个SA的职位,但是阴差阳错,最后是把我当成Engineer来面试了,应该是猎头沟通有问题。(结果是被鄙视了。。。^_^)。面试我的是一个貌似刚刚工作的新人,每次问我一个问题,我刚开口想解释我的思路,他就把我打断了:“你不要告诉我你的思路,直接告诉我结果就行了”。对于他问的问题,我会反问他是否需要考虑某些方面,他基本上不给于解释,告诉我说:“这是你自己需要考虑的”。弄得我挺郁闷,跟他的沟通不在一个频道上啊。
印象中他还问我一个问题:“你不是当过SA嘛,那你对设计模式应该是非常清楚,你给我介绍一下你所熟悉的设计模式”。我当时的第一反应是:SA和设计模式有什么必然联系吗?不过心里想的归心里想的,口头上还是大概说了说常用的设计模式。对于设计模式,我还给了他一些我个人的见解:“大量使用设计模式会大大提高代码的复杂度,不要故意使用设计模式”。
我现在在写代码的时候,给自己订了一条简单的规则:简单易懂。一份好的代码是通过静态分析代码(代码阅读)就能理解代码的意图,而不需用调试器来做跟踪调试才能理解代码的意图。
故意用Visual C#实现一下TS Expert的原因:
1、 进一步掌握VisualC#。
2、 重构TS Expert的代码,简化代码,让代码简单易懂。。
3、 支持Plugin。
4、 加入新功能。
TSE现在支持的功能包括:
1. Support SI/PSI parsing.
2. Support all descriptorsaccording to the latest standard.
3. Support to get the bitrate ofeach PID.
4. Support to detect the muxbitrate of the whole stream via checking PCR.
5. Support bitstream errordetection.
6. Support to search TSpackets/sections/PES packets.
7. Support to update PID.
8. Support to dump TS packets.
9. Support to do the scramblingusing CSA algorithm.
10. Support to do the descramblingusing CSA algorithm.
11. Support plugins.
12. Support to enter and parsesection directly.
13. Support to parse multiplestreams in parallel.
14. Support to show the length,value and offset for each field.
15. Support to show all the TSpacket numbers belonged to a section or a PES packet.
还有一些辅助功能:
1. Record bitstream from deviceand IP network.
2. Play out bitstream to networkand device.
3. Provide a HEX editor.
4. Provide a CRC32 helper.
5. Provide a UDP helper
这些功能都实现了,貌似功能还是挺强大的,某些方面比起一些商业软件应该还能NB,^_^。
以前写过一个文档,介绍TSE的设计和实现。回头看看怎样贴上来。
- 我写过的软件之TSE-背景介绍
- 我写过的软件之TSE-工作流程和实现
- 我写过的软件之Sentences4You
- 我写过的软件之CmmbExpert
- 我写过的软件之CmmbHst
- 我写过的软件之UniversalTestForSoftcell
- 我写过的软件之UniversalTestForCCA
- 我写过的软件之FileExpert
- 我写过的软件之TS Expert
- 我写过的软件之Sentences4You安卓版
- 我写过的软件之英语句子通
- 我写过的软件之UniversalHst-DVBView
- 我写过的软件之UniversalHst-TestView
- 我写过的软件之LoaderHst-STBView
- 我写过的软件之LoaderHst-TestView
- 我写过的软件之OneWorld-大世界
- 我写过的软件之OneWorld-大世界2
- 我写过的软件之OneWorld-大世界3
- 二叉树遍历非递归实现
- 如何进行调研
- 迟来的处女作
- Hadoop 2.x.0集群安装与配置
- Winform 简单实现关机背景变灰效果的对话框
- 我写过的软件之TSE-背景介绍
- Tilemill + tilestream + mapbox.js 自制地图
- android adb shell 获取root权限
- python classs的一些知识
- String与StringBuffer效率的比较
- 智能指针scoped_ptr,shared_ptr,weak_ptr和auto_ptr的使用
- 【转】Hadoop自定义输入与输出格式
- web service architecture
- C++转型操作符