按月份:7月 2015

  • 从RTSP协议传输的H264视频流中取出每一帧的类型(I、P、B帧)

    RTSP是一个控制协议,其中的数据是用RTP传输的。 RTP使用了UDP,每个UDP包的内容区(没有UDP头)都包含以下的几个部分:

    V: 版本 P: 填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。 X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。 CC: C […]

  • Scala学习(九)——隐式转换

    简介 几乎所有的语言都有隐式转换系统,比如C++中数字类型的隐式转换,js中数字和字符串之间互相隐式转换等等。但在这些语言里,隐式转换都是预定义的,无法给自己定义的类或者对象赋予隐式转换的能力。Scala打破了这种限制,提供了一种方法使得隐式转换不再是预定义类型的专利。 双目运算符的重载问题 前面提到过运算符重载,Scala中运算符本质上是方法。一般说来,运算符前操作数是对象本身,后操作数是输入的 […]

  • Scala学习(八)——异常处理

    简介 要编写一个好的程序,异常处理非常必要。Scala提供了和其他语言类似的异常处理方式。 throw语句 Scala可以直接抛出Java中的任意Throwable类型的对象:

    异常抛出检查 Scala取消了Java中的抛出异常声明和检查,所以不存在throws关键字。同样,Scala中所使用Java库的抛出异常声明也不需要理会。 […]

  • 因果论和时间旅行

    最近看了《命运石之门》这部动漫,本来听别人说会很凌乱,看一遍看不懂,但是看过之后发现其逻辑很清晰,设计很精巧,并没有什么难懂的地方。当然,可能是因为我已经习惯了这种穿越,所以看了前几集以后就已经猜到结局了,剩余的部分只是对通向结局过程的补全。在看的过程中,我就在思考时间旅行的合理性,以及本作是如何合理地诠释这一作品中时空异变的原因。 要解决时间旅行的合理性,就要解决祖父悖论。那就是,时空旅行的自己 […]

  • Scala学习(杂1)

    简介 有一些内容不是很容易归类,篇幅也不够,但是是需要了解的部分,暂且放在这里。 标识符 除了关键字,运算符,数字,字符串和一些特殊符号,剩下的就是标识符,标识符构成了代码的重要部分。 Scala标识符可以由$,_,字母,数字,以及大部分的字符(包括中文字符)构成。 要点: _单独使用时不是标识符 数字不能作为标识符开头 $不建议使用在标识符中 某些字符会被当做运算符处理,比如→,注意和-> […]