摘要:
十三:RTPInterface详解好几天没写blog了。看源码真累啊,还要把理解的写到纸上,还要组织混乱的思想,令人头痛,所以这需要激情。不过,今天激情又来了。大家应该已理解了GroupSocket这个类。理论上讲那些需要操作udp socket 的类应保存GroupSocket的实例。但事实并不是这样,可以看一下RTPSink,RTPSource,RTCPInstance等,它们都没有保存GroupSocket型的变量。那它们通过哪个类进行socket操作呢?是RTPInterface!!这些类接收的GroupSocket指针最后都传给了 RTPInterface 。为什么用RTPInter 阅读全文
摘要:
面试Javascript工程师难吗?Javascript工程师的水平参差不齐,如何评定他们技术水平的高低?如何确定Javascript工程师适合承担哪方面的任务?我在腾讯时的面试经验是,通过不同纬度的结构化问题、由浅入深的进行考查。 基础 如何判断一个对象是方法?这个问题简单有简单的答案,复杂有复杂的答案,但可能都不是最好的答案。 页面加载和渲染的过程:简单一点只考查JS、CSS、IMG的加载顺序和过程,复杂一些则涉及内核间的差异以及并发处理。对于这个问题是否理解是写出高效率代码和结构的必须。 冒泡与捕获:它们的定义,它们的区别,如何阻止冒泡?基础知识,经典题目。... 阅读全文
摘要:
译自:http://net.tutsplus.com/tutorials/html-css-techniques/how-to-create-an-html5-microdata-powered-resume/译者:蒋宇捷(转载请标明出处http://blog.csdn.net/hfahe)Janet Wagner于2011 年9月27日教程细节• 概要:HTML5的微数据API• 难度:初级/中级• 估计完成时间: 60-90分钟将创建的最终产品下载源文件示例页面 2009年5月,谷歌推出了富摘要信息,在Google的搜索结果显示一个小块,使用户更容易决定哪些网页是他们搜索相关的信息。在2. 阅读全文
摘要:
十二 h264 rtp包的时间戳这次我们一起来分析一下live555中是怎样为rtp包打时间戳的.就以h264为例吧.void H264VideoRTPSink::doSpecialFrameHandling(unsigned /*fragmentationOffset*/, unsigned char* /*frameStart*/, unsigned /*numBytesInFrame*/, struct timeval framePresentationTime, unsigned /*numRemainingBytes*/)
{ // Set the RTP 'M' . 阅读全文
摘要:
十一 h264 RTP传输详解(3)书接上回:H264FUAFragmenter又对数据做了什么呢?void H264FUAFragmenter::doGetNextFrame()
{ if (fNumValidDataBytes == 1) { // We have no NAL unit data currently in the buffer. Read a new one: fInputSource->getNextFrame(&fInputBuffer[1], fInputBufferSize - 1, afterGettingFrame, this, Frame... 阅读全文
摘要:
这两天又复习了一下RTP协议.看到网上两篇文章说的很通透明白,在此转发一下.RTP协议分析(转自:http://blog.csdn.net/bripengandre/article/details/2238818)分类:Network Security2008-04-01 16:345687人阅读评论(6)收藏举报整理记录版本时间内容整理人V1.02008-03-31RTP协议分析初稿彭令鹏RTP协议分析第1章.RTP概述1.1.RTP是什么RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC 阅读全文
摘要:
事件处理程序,(在页面上点击右键隐藏选择菜单)1.第一种<html><head> <script type="text/javascript"> //事件处理程序 右键点击菜单 隐藏 function hideContextmenu() { //window.event.returnValue = false ; return false ; } </script></head><body oncontextmenu = "return hideContextmenu()" > &l 阅读全文
摘要:
十 h264 RTP传输详解(2)上一章并没有把打开文件分析文件的代码找到,因为发现它隐藏得比较深,而且H264的Source又有多个,形成了连环计。所以此章中就将文件处理与H264的Source们并在一起分析吧。从哪里开始呢?从source开始吧!为什么要从它开始呢?我就想从这里开始,行了吧?FramedSource* H264VideoFileServerMediaSubsession::createNewStreamSource( unsigned /*clientSessionId*/, unsigned& estBitrate)
{ estBitrate = 500; //. 阅读全文
摘要:
九 h264 RTP传输详解(1)前几章对Server端的介绍中有个比较重要的问题没有仔细探究:如何打开文件并获得其SDP信息。我们就从这里入手吧。当RTSPServer收到对某个媒体的DESCRIBE请求时,它会找到对应的ServerMediaSession,调用ServerMediaSession::generateSDPDescription()。generateSDPDescription()中会遍历调用ServerMediaSession中所有的调用ServerMediaSubsession,通过subsession->sdpLines()取得每个Subsession的sdp, 阅读全文
摘要:
八 RTSPClient分析有RTSPServer,当然就要有RTSPClient。如果按照Server端的架构,想一下Client端各部分的组成可能是这样:因为要连接RTSP server,所以RTSPClient要有TCP socket。当获取到server端的DESCRIBE后,应建立一个对应于ServerMediaSession的ClientMediaSession。对应每个Track,ClientMediaSession中应建立ClientMediaSubsession。当建立RTP Session时,应分别为所拥有的Track发送SETUP请求连接,在获取回应后,分别为所有的tra 阅读全文