我写过的软件之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的设计和实现。回头看看怎样贴上来。


0 0
原创粉丝点击