青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

Live555類結構

轉載自:http://blog.sina.com.cn/s/blog_77c6324101018vur.html

Medium

live555幾乎所有的處理單元都繼承自Medium類;該類抽象了基本的接口,包括環境,task和媒體名和媒體查找函數(lookupByName)以及一些輔助函數。也包括返回當前的環境類UsageEnvironment,以及環境指向下一個TaskToken的指針nextTask等。

ServerMediaSession  

對象的創建函數在文件DynamicRTSPServer.cpp中。DynamicRTSPServer的繼承關系是

DynamicRTSPServer::RTSPServerSupportingHTTPStreaming::RTSPServer::Medium

DynamicRTSPServerRTSPServer繼承過來,僅僅添加了構造器和查找函數,沒有添加其他成員。構造器是創建socket然后傳給 RTSPServer,查找是如果沒有已經打開的流服務,那么根據參數創建流服務。RTSPServer的屬性有socket,端口號,Session點號,認證機制和ServerMediaSession表。  

當接收到帶有URI的請求后,會首先創建SMS,調用 ServerMediaSession的構造函數,除了創建時間戳,拷貝文件名外都是使用的缺省值,并且將初始化子會話鏈表。當處理describe命令時,ServerMediaSession通過調用generateSDPDescription函數生成。  NEW_SMS()中創建ServerMediaSession對象,然后創建相應的ServerMediaSubsession并將這個子會話對象添加到添加到會話對象中。  

如子回話是MPEG4,創建MPEG4VideoFileServerMediaSubsession對象,對象的繼承關系:  

MPEG4VideoFileServerMediaSubsession::FileServerMediaSubsessio ::OnDemandServerMediaSubsession::ServerMediaSubsession ::Medium  

ServerMediaSession::Medium   

相關類介紹:

ServerMediaSession:添加了子會話鏈表,SDP描述以及一些媒體相關處理函數。  

ServerMediaSubsession:定義了指向ServerMediaSession的父指針,指向下個一個對象的指針。該媒體的SDP信息,該媒體的讀取定位函數等。 ServerMediaSubsession類和具體的流播放相關,是個純虛類。其中startStreamgetStreamParameter是純虛函數。 

OnDemandServerMediaSubsession:添加了流source處理和RTPSink處理函數以及經典命名屬性等。封裝seek,pause等處理,把這些接口中clientSessionid號到這里轉換成了FramedSource。  該類的成員函數大部分和ServerMediaSubsession相似,在流媒體完成定位等處理。createNewStreamSourcecreateNewRTPSink是兩個純虛函數,在子類中必須實現。類中getStreamParameters方法會創建streamState。這個方法在處理RTPSetup命令時被調用。  

FileServerMediaSubsession:增加了文件名和文件大小屬性。

MPEG4VideoFileServerMediaSubsession:添加了RTPSink屬性,并且實現了OnDemandServerMediaSubsession中定義的兩個純虛函數,即創建了sourcesink對象。這個sourceMPEG4VideoStreamFramer。該類中還定義了StreamState的內部類。  

StreamState:包含了指向OnDemandServerMediaSubsession的引用,RTPSink指針,BasicUDPSink指針,RTCPInstance指針FramedSource指針,fRTPgsfRTCPgs(groupsock).

StreamState類可以用OnDemandServerMediaSubsessionfLastStreamToken屬性指向。  

streamState的屬性:  

OnDemandServerMediaSubsession& fMaster     Boolean fAreCurrentlyPlaying;  

unsigned fReferenceCount;                                Port fServerRTPPort, fServerRTCPPort; 

RTPSink* fRTPSink                                                 BasicUDPSink* fUDPSink

float fStreamDuration;                        unsigned fTotalBW; RTCPInstance* fRTCPInstance;

FramedSource* fMediaSource                 Groupsock* fRTPgsGroupsock* fRTCPgs;  

 

Sink  

Sink類提供了總的媒體播放接口。sink有兩種,一個是BasicUDPSink,一個是RTPSink,如果協商時沒有RTP信息,那么創建BasicUDPSinkSource Sink通過函數createNewRTPSinkcreateNewStreamSource。這兩個函數在類 OnDemandServerMeidaSubsession中定義為純虛函數,如果媒體類型是mpeg4videofileserver,那么對應的函數定義在類MPEG4VideoFileServerMediaSubsession中。  

 

 MPEG4ESVideoRTPSink::VideoRTPSink::MultiFramedRTPSink::RTPSink::MediaSink::Medium 

MediaSink定義中有一個媒體源指針,主要處理函數有startplaying(),stopplaying() afterPlayingFunc函數指針。

RTPSink類定義了RTP相關的處理和屬性。包含Socket組對象,時間處理系列,統計計數處理等相關屬性。  

MultiFramedRTPSinkRTPSink的子類,處理buffer中的多個RTP包。類中添加了輔助SDP處理和VOPIsPresent屬性和一個判斷性處理函數。

MultiFramedRTPSink類完成多幀組包處理主要函數有buildAndSendPacket,packFrame,

sendNext, afterGettingFrame,這幾個函數之間有相互調用。內部有OutPacketBuffer屬性,在創建時設定為(1000(希望),1448(最大))大小,其他是統計或者標識屬性。這個發送數據包是通過 fRTPInterface.sendPacket(fOutBuf->packet(), fOutBuf->curPacketSize());實現。這個fRTPInterface是父類RTPSink的屬性。  

VideoRTPSink僅僅添加了sdpMediaType處理函數, 返回SDP類型是“video”

MPEG4ESVideoRTPSink中的處理函數doSpecialFrameHandling:首先檢測開頭的四個字節看是否是 VOP_START_CODE,該函數處理RTP的起始/中止標識和添加時間戳。其他處理包括是否允許分片,是否是起始包判斷以及輔助SDP處理。

Source  

createNewStreamSource調用的是MPEG4VideoFileServerMediaSubsession中的定義。在類 OnDemandServerMediaSubsession中的createNewStreamSource定義是一個純虛函數。  

創建的source是:  

MPEG4VideoStreamFramer:MPEGVideoStreamFramer:FramedFilter:FramedSource:MediaSource:Medium  

MediaSourceMedium類的基礎上添加了更多媒體類型判斷,比如是H264,mpeg還是jpeg。此外還有一個MIME類型。  

FramedSource類處理成幀類型的媒體,比如 mpeg,mjpeg,h264,amr等音頻類型的媒體。函數分幀處理媒體流,主要處理是getNextFrame,afterGetting以及關閉等媒體處理,此外定義了doGetNextFrame純虛函數,這個函數由getNextFrame調用,處理具體的媒體流。該類還定義了兩個函數指針,afterGettingFunc* fAfterGettingFunconCloseFunc* fOnCloseFunc;處理。  該類的屬性包括數據拷貝的指針,幀的大小,展示時間,和播放間隔是否當前等待播放標志。

FramedFilterFramedSource的子類,這是個中間類,主要在類中添加了指向輸入源的指針 FramedSource* fInputSource;  

MPEGVideoStreamFramer:是FramedFilter的子類,因為mpeg是時間相關的媒體流,所以在父類的基礎上添加了時間處理函數,此外還有 continueReadProcessing函數。主要的屬性有:幀率,結束標志,圖片計數,展示時間,GOP時間相關內容,圖片時間相關屬性。此外還有一個重要的類屬性: MPEGVideoStreamParser用來分析媒體流。  

MPEG4VideoStreamFramer在父類的基礎上添加了config信息,類如profile等級信息。在該類的定義文件中還實現了MPEG4文件分析類,繼承自MPEGVideoStreamParser。處理mepg4相關信息。  

ByteStreamFileSource::FramedFileSource::FramedSource  

source里面有一個非常重要的StreamParser(流分析)對象,用來分析,讀取流數據。其中afterGettingBytes和不同媒體流處理相關,內部有一個函數fClientContinueFunc為不同媒體注冊的函數。而getNextFrame會調用afterGettingBytes  

MPEG4ESVideoRTPSource:MultiFramedRTPSource:RTPSource:FramedSource:MediaSource:Medium

RTPSource:添加RTP相關處理,主要屬性有RTPInterface,時間標簽,處理數據幀拆分packetMarkerbit時間戳頻率和統計信息。RTP統計信息:收到的總包數,從reset以后收到的總包數,收到的字節數,初始化序列標識,前面一個RTP包的時間戳,接受到的發送者報告的NTP時間,接受到的發送者報告時間。RTPSource僅僅處理RTP協議相關的問題。MultiFramedRTPsource中的 networkHandler中會調用到這些處理。  

playing  

在服務端的操作中是圍繞著StreamState展開的,OnDemandServerMediaSubsession類中的StartStream通過調用StreamStatestartplaying開始進行,并且初始化rtpSeqNumrtpTimestamp (= rtpSink()->presetNextTimestamp()) 兩個變量。MediaSink定義了startPlaying,這里通過調用BasicUDPSink類中的continuePlaying最終調用到了 buildAndSendPacket,函數buildAndSendPacket根據傳入的參數是否第一幀分別進行處理。如果是第一幀,那么取當前時間標簽,作為發送時間,

在函數packFrame中,首先調用afterGettingFrame1,然后調用 

fSource->getNextFrame(fOutBuf->curPtr(), fOutBuf->totalBytesAvailable(),afterGettingFrame, this, ourHandleClosure, this);處理。

在播放過程中,通過nextTask() envir().taskScheduler().scheduleDelayedTask

(uSecondsToGo,(TaskFunc*)sendNext, this);每次都會計算一個下次發送時間和包添加到調度中進行。  

讀取媒體數據在MPEG4VideoStreamParser類定義中處理。成員函數parse分析出讀取數據的大小。然后讀取一幀數據,交給打包代碼處理。 

posted on 2013-09-10 04:10 楊粼波 閱讀(2057) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美日韩天堂| 欧美午夜欧美| 亚洲国产一区在线观看| 亚洲美女在线视频| 欧美日韩免费观看一区三区 | 欧美亚洲综合网| 久久精品一区中文字幕| 伊人久久噜噜噜躁狠狠躁 | 欧美精品在线观看| 宅男噜噜噜66国产日韩在线观看| 欧美在线视频观看| 亚洲高清在线观看| 国产精品久久国产精麻豆99网站| 欧美一区二区三区久久精品茉莉花| 免费日韩av片| 中文日韩欧美| 一区精品在线| 欧美日韩一区二区三区在线 | 国产精品sss| 欧美一区1区三区3区公司| 国产精品99久久久久久久女警| 亚洲日本成人女熟在线观看| 亚洲国产高清在线观看视频| 一区二区精品国产| 国产色综合网| 欧美国产日韩一区二区| 亚洲男人的天堂在线观看 | 亚洲精品久久久久久久久久久久| 亚洲欧美日韩精品一区二区| 亚洲国产高清在线观看视频| 国产精品久久久久久久久免费樱桃 | 夜夜夜久久久| 国内精品一区二区三区| 欧美日韩高清一区| 久久综合影音| 欧美一区2区三区4区公司二百| 亚洲高清在线| 狂野欧美激情性xxxx欧美| 国产精品99久久久久久白浆小说| 亚洲福利国产精品| 国产亚洲欧美中文| 欧美特黄一级| 欧美日本不卡| 免费欧美在线| 久久久精品tv| 欧美一激情一区二区三区| 亚洲乱码久久| 亚洲国产精品精华液2区45| 久久久久久久久伊人| 亚洲综合视频网| 99亚洲视频| 亚洲三级影片| 亚洲日韩欧美视频一区| 国产一区二区在线观看免费| 国产精品日本| 国产精品专区h在线观看| 欧美三级电影大全| 欧美激情一区二区在线| 久久综合国产精品| 久久精品在线播放| 久久国产加勒比精品无码| 亚洲男人av电影| 亚洲自拍偷拍福利| 亚洲午夜精品久久久久久app| 亚洲美女淫视频| 亚洲精品久久久久| 亚洲肉体裸体xxxx137| 亚洲福利视频二区| 亚洲高清不卡在线| 91久久夜色精品国产网站| 亚洲国产精品嫩草影院| 亚洲第一精品福利| 亚洲三级毛片| av成人免费观看| 一区二区日韩精品| 在线亚洲电影| 亚洲欧美区自拍先锋| 亚洲免费在线观看| 久久本道综合色狠狠五月| 久久久久久久久久久久久女国产乱| 欧美一区日韩一区| 久久米奇亚洲| 欧美国产大片| 国产精品久久久久91| 国产精品私拍pans大尺度在线| 国产精品一区视频| 韩国成人理伦片免费播放| 一区二区在线免费观看| 亚洲黄一区二区| 99v久久综合狠狠综合久久| 亚洲无线一线二线三线区别av| 亚洲欧美日韩国产精品 | 久久最新视频| 欧美精品福利视频| 国产精品久久午夜| 狠狠操狠狠色综合网| 亚洲欧洲一区二区天堂久久| 一二三区精品| 久久精品系列| 欧美国产日韩一区二区| 一本久久青青| 久久精品视频网| 欧美精品乱码久久久久久按摩| 欧美性色视频在线| 激情文学综合丁香| 亚洲一区二区三区免费观看| 久久se精品一区精品二区| 亚洲第一福利视频| 亚洲欧美激情四射在线日| 久久免费国产精品| 国产精品成人一区二区三区吃奶 | 欧美成人久久| 国产农村妇女毛片精品久久麻豆| 一区二区三区在线免费播放| 亚洲小说欧美另类社区| 久久亚洲影音av资源网| 亚洲免费观看视频| 久久精品在线播放| 欧美性事免费在线观看| 在线看片日韩| 性久久久久久| 亚洲欧洲日本专区| 欧美影院成年免费版| 欧美日韩mv| 影视先锋久久| 欧美亚洲一区三区| 亚洲茄子视频| 久久久久久久一区二区三区| 国产精品国产三级欧美二区| 亚洲激情小视频| 久久亚洲一区二区| 亚洲欧美国产高清va在线播| 欧美精品激情在线观看| 韩国一区二区在线观看| 午夜精品一区二区三区电影天堂| 亚洲电影在线免费观看| 久久精品99无色码中文字幕| 国产精品看片你懂得| 日韩网站免费观看| 欧美激情亚洲精品| 久久久久久久一区二区三区| 国产香蕉97碰碰久久人人| 亚洲一区二区免费看| 亚洲精品国产精品国自产观看| 久久久一区二区| 狠狠综合久久av一区二区小说 | 亚洲午夜精品一区二区| 欧美经典一区二区三区| 亚洲欧洲精品天堂一级| 蜜桃久久精品一区二区| 欧美制服丝袜第一页| 国产农村妇女精品| 亚洲欧美日韩一区| 亚洲午夜一区二区| 欧美网站在线| 亚洲影视综合| 一区二区三区四区五区视频| 欧美日韩精品一区二区在线播放| 亚洲另类在线视频| 91久久精品久久国产性色也91| 欧美电影免费观看| 91久久极品少妇xxxxⅹ软件| 欧美国产激情二区三区| 男人的天堂亚洲在线| 亚洲电影第三页| 欧美激情亚洲自拍| 欧美成人第一页| 亚洲免费精彩视频| 一区二区日本视频| 国产精品日韩精品欧美在线| 久久国产精品亚洲77777| 欧美在线啊v| 亚洲高清激情| 亚洲国产专区校园欧美| 欧美日韩在线观看一区二区| 亚洲欧美美女| 香蕉av福利精品导航| 激情欧美一区二区| 欧美激情1区2区3区| 欧美日韩不卡| 欧美影院成人| 免费黄网站欧美| 中文在线不卡| 亚洲精品一区在线| 99国产精品视频免费观看| 国产精品久久久久久户外露出| 欧美伊人久久久久久久久影院| 久久aⅴ国产紧身牛仔裤| 亚洲国产精品一区二区尤物区| 91久久精品久久国产性色也91| 国产精品yjizz| 久久在线视频在线| 欧美人与禽猛交乱配视频| 午夜精品视频在线观看| 久久亚洲精品一区| 亚洲婷婷国产精品电影人久久 | 欧美成熟视频| 欧美一二三视频| 麻豆91精品| 先锋影音一区二区三区|