上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 51 下一页
摘要: 十一 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... 阅读全文
posted @ 2011-11-08 11:24 移动应用开发 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 这两天又复习了一下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 阅读全文
posted @ 2011-11-08 09:53 移动应用开发 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 十 h264 RTP传输详解(2)上一章并没有把打开文件分析文件的代码找到,因为发现它隐藏得比较深,而且H264的Source又有多个,形成了连环计。所以此章中就将文件处理与H264的Source们并在一起分析吧。从哪里开始呢?从source开始吧!为什么要从它开始呢?我就想从这里开始,行了吧?FramedSource* H264VideoFileServerMediaSubsession::createNewStreamSource( unsigned /*clientSessionId*/, unsigned& estBitrate) { estBitrate = 500; //. 阅读全文
posted @ 2011-11-04 15:52 移动应用开发 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 九 h264 RTP传输详解(1)前几章对Server端的介绍中有个比较重要的问题没有仔细探究:如何打开文件并获得其SDP信息。我们就从这里入手吧。当RTSPServer收到对某个媒体的DESCRIBE请求时,它会找到对应的ServerMediaSession,调用ServerMediaSession::generateSDPDescription()。generateSDPDescription()中会遍历调用ServerMediaSession中所有的调用ServerMediaSubsession,通过subsession->sdpLines()取得每个Subsession的sdp, 阅读全文
posted @ 2011-11-03 11:21 移动应用开发 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 八 RTSPClient分析有RTSPServer,当然就要有RTSPClient。如果按照Server端的架构,想一下Client端各部分的组成可能是这样:因为要连接RTSP server,所以RTSPClient要有TCP socket。当获取到server端的DESCRIBE后,应建立一个对应于ServerMediaSession的ClientMediaSession。对应每个Track,ClientMediaSession中应建立ClientMediaSubsession。当建立RTP Session时,应分别为所拥有的Track发送SETUP请求连接,在获取回应后,分别为所有的tra 阅读全文
posted @ 2011-11-02 10:39 移动应用开发 阅读(290) 评论(0) 推荐(0) 编辑
摘要: Android中的两把锁 – WalkLock and KeyguardLock 详细分析 WalkLock – 顾名思义 唤醒锁 点亮屏幕用的 KeyguardLock – 顾名思义 键盘锁 解锁键盘用的 详细介绍: 1: WalkLock 唤醒锁 WalkLock真的能点亮屏幕吗? 答案是肯定的。 可是有时候为什么不点亮屏幕,这个就是参数设置的问题了。java代码:PowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "Gank");Pow.. 阅读全文
posted @ 2011-11-01 11:05 移动应用开发 阅读(1513) 评论(0) 推荐(0) 编辑
摘要: 七 RTP打包与发送rtp传送开始于函数:MediaSink::startPlaying()。想想也有道理,应是sink跟source要数据,所以从sink上调用startplaying(嘿嘿,相当于directshow的拉模式)。看一下这个函数:Boolean MediaSink::startPlaying(MediaSource& source, afterPlayingFunc* afterFunc, void* afterClientData) { //参数afterFunc是在播放结束时才被调用。 // Make sure we're not already bein 阅读全文
posted @ 2011-10-31 15:44 移动应用开发 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 前言 学习android一段时间了,为了进一步了解android的应用是如何设计开发的,决定详细研究几个开源的android应用。从一些开源应用中吸收点东西,一边进行量的积累,一边探索android的学习研究方向。这里我首先选择了jwood的Standup Timer项目。本文将把研究的内容笔记整理,建立一个索引列表。PowerManager.WakeLock PowerManager.WakerLock是我分析Standup Timer源代码时发现的一个小知识点,Standup Timer 用WakeLock保证程序运行时保持手机屏幕的恒亮(程序虽小但也做得相当的细心,考虑的很周到)。P.. 阅读全文
posted @ 2011-10-30 22:29 移动应用开发 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 引言CakePHP 有些慢已经不是什么公开的秘密了。但不为众人所知的是这是一个大大的阴谋。而我会因揭露这个阴谋惹上不少麻烦。不过我愿意冒险一搏。我手头有大量的记录和 文档线索表明CakePHP开发团队的成员手头持有戴尔,IBM,思科以及其他服务器厂商的公司股票。想必你已经听说过这类的措辞像“硬件白菜价,而程序 员太金贵了。"Cake的开发团队从中嗅到了商机,他们便制作出了这款易于上手和开发,但是却跑得很慢的框架来。他们希望你在硬件方面多砸点钱来。这点子太有才了吧,对不?好了,闲扯就此结束。作为一个CakePHP的开发者,每当你学会使用本文中的一个技巧,套在你脖子上的这枷锁就少了一层。 阅读全文
posted @ 2011-10-30 22:06 移动应用开发 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 六 建立RTP会话首先更正一个概念:ServerMediaSession原先说代表一个流,其实是不准确的。它代表的是server端的一个媒体的名字,而说ServerMediaSubsession代表一个Track是准确的。以后流指的是那些有数据流动的组合。RTP的建立:RTP的建立过程无非是这样:client告诉server自己的rtp/rtcp端口号,server建立自己的rtp/rtcp socket,然后在收到PLAY请求时向客户端发数据。看起来非常简单。在收到SETUP请求时才建立连接,让我们看一下处理这个命令的函数:void RTSPServer::RTSPClientSession 阅读全文
posted @ 2011-10-28 15:19 移动应用开发 阅读(413) 评论(0) 推荐(0) 编辑
上一页 1 ··· 30 31 32 33 34 35 36 37 38 ··· 51 下一页