1.Miracast技术详解(四):Sink源码解析
2.å
费软件å¦ä½çå©
Miracast技术详解(四):Sink源码解析
Miracast Sink端源码最早出现在Android 4.2.2版本中,可通过android.googlesource.com查看。然而,在Android 4.3版本之后,Google移除了这部分源码,详细移除记录可在android.googlesource.com上查阅。内存读写源码尽管Sink端代码被移除,但Source端源码依然存在。通过使用Android手机的投射功能,仍可实现Miracast投屏发送端的功能。
为了查看源码,推荐使用Android Studio,以便利用IDE的代码提示和类/方法跳转功能。首先新建一个Native Project,将libstagefright相关源码拷贝至cpp目录,并导入必要的include头文件。在CMakeLists.txt中添加这部分源码后,供应软件源码同步环境,以此引用相关类与头文件,提升查看源码的效率。
Sink端核心类主要包括:WifiDisplaySink.cpp、RTPSink.cpp、TunnelRenderer.cpp。通过分析可得知,初始化操作主要在wfd.cpp中的纯真建站源码main()方法内完成,重点关注sink->start()方法启动WifiDisplaySink,进而使用ip和端口参数执行相关操作。
RTSP通讯涉及关键步骤,包括创建RTSP TCP连接、处理连接状态与数据异步通知。当连接建立后,开始进行RTSP协商与会话建立,处理RTSP M1-M7指令。浙江来源码请求与响应流程需参考前面的RTSP协议分析文章,这里不详细展开。
处理RTSP消息时,首先判断消息类型,是Request还是Response。对于Request,主要处理Source端M1请求,并响应M2确认。laravel源码网对于Source端M3请求,处理相关属性及能力,如RTP端口号、支持的音频和视频编解码格式等。M4与M5请求则分别进行常规的响应处理。
在发送完Setup M6请求后,注册onReceiveSetupResponse()回调,用于完成RTSP最后一步,即发送PLAY M7请求。此时,Source端会按照Sink指定的UDP端口发送RTP数据包,包含音视频数据。
RTSP协商与会话建立完成后,数据流通过RTPSink处理,建立UDP连接并解析RTP数据包。在TunnelRenderer中接收并播放音视频流。流程包括消息处理、环境初始化、TS包解析、音视频裸流解码与播放等。
源码解析过程中,关键步骤包括初始化RTPSink、建立UDP连接、处理RTP与RTCP数据、解析TS包并获取音视频裸流等。移植Native Sink端难点在于隔离与处理Native相关依赖,如异步消息机制、网络连接实现等。建议在应用层实现RTSP连接、音视频解码与渲染功能,然后移植底层解析代码,以减少依赖,提高移植效率。
å 费软件å¦ä½çå©
çå©æ¨¡å¼ä¹ä¸ï¼å¤ç§äº§å线
å¨è¿ç§æ¨¡å¼ä¸ï¼å©ç¨å¼æºè½¯ä»¶ä¸ºç´æ¥äº§çæ¶å ¥çä¸æ软件æ¥åé æç»´æä¸ç§å¸åºå°ä½ãä¾å¦ï¼å¼æ¾æºä»£ç ç客æ·ç«¯è½¯ä»¶å¸¦å¨äºæå¡å¨è½¯ä»¶çéå®ï¼æè åç¨å¼æºçæ¬å¸¦å¨åä¸è®¸å¯çæ¬ç产åéå®ãè¿ç§æ¨¡å¼åºç¨çæ¯è¾æ®éãå¦ MySQL 产åå°±åæ¶æ¨åºé¢å个人åä¼ä¸ç两ç§çæ¬ï¼å³å¼æºçæ¬åä¸ä¸çæ¬ï¼åå«éç¨ä¸åçæææ¹å¼ãå¼æºçæ¬å®å ¨å 费以便æ´å¥½çæ¨å¹¿ï¼èä»ä¸ä¸çç许å¯éå®åæ¯ææå¡è·å¾æ¶å ¥ãåå¦ Redhat èª Redhat Linux 9.0 åå°åæ¡é¢æä½ç³»ç»è½¬ä¸º Fedora 项ç®ï¼å Fedora Core Linux å¨å¼æºç¤¾åºç声æèä¿è¿ Redhat Enterprise Linux AS/ES/WS æå¡å¨äº§å线çéå®ã
çå©æ¨¡å¼ä¹äºï¼ææ¯æå¡å
å¨è¿ç§æ¨¡å¼ä¸ï¼å¼æ¾æºä»£ç 软件éç¨äºä¸ç§å ¨æ°çå¸åºå®ä½ï¼å¹¶éé¢å产åï¼èæ¯é对ææ¯æå¡ãJBosså°±æ¯è¿ç§æ¨¡å¼çå ¸å代表ãJBoss åºç¨æå¡å¨å®å ¨å è´¹ï¼èéè¿æä¾ææ¯ææ¡£ãå¹è®ãäºæ¬¡å¼åæ¯æçææ¯æå¡èè·å¾æ¶å ¥ã
çå©æ¨¡å¼ä¹ä¸ï¼åºç¨æå¡æ管ï¼ASPï¼
è¿ç§æ¨¡å¼éç¨äºåºäºå¼æºè½¯ä»¶çåºç¨æå¡ä¾åºåï¼ASPï¼ã
ä¾å¦ï¼PHP Liveï¼ å°±æ¯ä¸ç§ææ¶äº PHPãMySQL ä¹ä¸çå¼æºè½¯ä»¶ï¼å®å¯ä¸ºä¼ä¸ç¨æ·æä¾å®æ¶äº¤è°æå¡ãç®åå·²ç»ææ°åå®¶å ¬å¼æä¾ PHP Liveï¼ æ管æå¡çåºç¨æå¡æä¾åã
çå©æ¨¡å¼ä¹åï¼è½¯ã硬件ä¸ä½å
è¿ç§æ¨¡å¼æ¯é对硬件å¶é åçãéçç«äºçæ®åï¼å¸åºååè¿«ä½¿ç¡¬ä»¶å ¬å¸å¼å并维æ¤è½¯ä»¶ï¼ä½æ¯è½¯ä»¶æ¬èº«å´å¹¶ä¸æ¯å©æ¶¦ä¸å¿ï¼å èéç¨å¼æºè½¯ä»¶ã è¿ç§æ¨¡å¼ä¸ºå¤§åå ¬å¸å¹¿æ³é纳ï¼æ¯å¦ IBM HP çæå¡å¨ä¾åºå巨头ï¼éè¿æç»å è´¹ç Linux æä½ç³»ç»éå®ç¡¬ä»¶æå¡å¨ãSUN å ¬å¸è¿æå°å ¶ Solaris æä½ç³»ç»å¼æ¾æºç ï¼ä»¥ç¡®ä¿æå¡å¨ç¡¬ä»¶çéå®æ¶å ¥ï¼ä¹æ¯è¿ç§æ¨¡å¼çä½ç°ã
çå©æ¨¡å¼ä¹äºï¼éå±å
å¨è¿ç§æ¨¡å¼ä¸ï¼åºå®å¼æ¾æºä»£ç çéå 产åãæ¯å¦å¨ä½ç«¯å¸åºï¼åºå®æ¯ååTæ¤è¡«çï¼å¨é«ç«¯å¸åºä¸ï¼åºå®ä¸ä¸ç¼è¾åºççææ¡£å书ç±ãO'Reillyéå¢æ¯éå®å¼æºè½¯ä»¶éå 产åå ¬å¸çå ¸åæ¡ä¾ï¼ä»åºçäºå¾å¤ä¼ç§çå¼æ¾æºä»£ç 软件çåèèµæãO'Reillyå®é ä¸éç¨åæ¯æäºä¸äºèåçå¼æ¾æºä»£ç é»å®¢ï¼ä¾å¦Larry WallåBrain Behlendorfï¼ï¼å¹¶ä»¥æ¤æé«å®å¨å¸åºä¸ç声æã
çå©æ¨¡å¼ä¹å ï¼åçæç¥ãæå¡è´ä¸
å¨è¿ç§æ¨¡å¼ä¸ï¼å¼æºå ¬å¸éè¿å¼æºè½¯ä»¶å 天çä¼ æä¼å¿ï¼ä»¥æä½çææ¬å»ºç«åä¼ æåçã并éè¿åç¨æ·æä¾äº§åç¸å ³çæå¡æ¥è·å¾åæ¥ã 康æ¯å°å ¬å¸ç Compiere ERP & CRM 软件æ¯è¿ç§æ¨¡å¼çå ¸åæ¡ä¾ã康æ¯å°å ¬å¸å¼åäºå¼æºç ERP & CRM 软件ï¼ç±äºå ¶äº§åä¼ç§ï¼å¾å¿«ä¾¿è·å¾äºåç¾ã欧洲åäºæ´²ä¸å°ä¼ä¸ç¨æ·ç认å¯ï¼Compiere åçä¹å æ¤è¿ éå°ä¼ æå°äºä¸çåå°ï¼å¨ä¼ä¸ç®¡ç软件å¸åºå·²ç»æä¸ºå ¨çç¥ååçã
çå©æ¨¡å¼ä¹ä¸ï¼å¸åºçç¥
è¿ç§æ¨¡å¼ï¼æ¯ä¸ç§å¿«éæ¢å å¸åºçè¥éçç¥ï¼ä¸»è¦æ¯ä¸ºä»¥åå¢å¼ºç产åçéå®æä¸åºç¡ã è¿ç§æ å½¢çæ¡ä¾æå¾å¤ãæ¯å¦ï¼å¾®è½¯å®£ç§°é¨åçå ¬å¼ Office çæºä»£ç ï¼å°±æ¯æ§è¡è¿ç§çç¥ãå¦ä¸ä¸ªæ¡ä¾åæ¯CRM é¢åçæ°æ SugarCRMï¼è¿æ¬¾ç±éå ç§æå¼åçå¼æºçæ¬ä»å¹´ä¸åå¹´å ¬å¼ä¸è½½åå¹¿ä¸ºä¼ æï¼ä¸ºå¨9ææ¨åºççè£ ä¸ä¸çå¥ä»¶å好å£ç¢ä¸çåå¤ã
å¼æºè½¯ä»¶çç»è¥æ¨¡å¼å¤ç§å¤æ ·ï¼éçå¼æºè½¯ä»¶çåå±ï¼ä¼ææ´å¤ççå©æ¨¡å¼åºè¿èçãäºå®ä¸ï¼ä¸å®¶å ¬å¸å¯è½æ··åéç¨å ¶ä¸çå ç§çå©æ¨¡å¼ï¼æ¯å¦åº·æ¯å°å ¬å¸ä¸ä» éç¨äºç¬¬å ç§åççç¥ï¼åæ¶ä¹éç¨äºç¬¬äºç§æä¾ææ¯æå¡çæ¹å¼ã å¨å¼æºè½¯ä»¶å¤§æ½®çå²å»ä¹ä¸ï¼å æ¬å¾®è½¯å¨å çåä¸è½¯ä»¶å ¬å¸ï¼ä¹å¼å§è®¤å¯å¼æºè½¯ä»¶"软件æ为æå¡"çæ¬è´¨ã微软æ¯æçéçåä½ä¼ä¼´å·²ç»æä¾å æ¬ Exchange Server ãSharePoint Server çå¨å çæ管æå¡ï¼å¦ ASP-One.com æ¯ææ¯ç¨æ·èµ·ä»·1ç¾å ç SharePoint Server ç§èµæå¡åå ¨å ä»·9.ç¾å æ¯æçExchange Server ç§èµæå¡ã å¨æ¬§æ´²åäºå¤ªå°åºåå½æ¿åºçååä¸ï¼å¾®è½¯è¢«è¿«å¼æ¾Windows åOffice çé¨åæºä»£ç ï¼ä»¥æ¹åæ¿åºç信任度ï¼èµ¢å¾åºå¤§çæ¿åºéè´è®¢åã å¼æºè½¯ä»¶çåä¸è¿å¨æ£æ¹å ´æªè¾ãè¿æ¯å¦ä¼å¯¹ä¼ ç»çåä¸æ¨¡å¼ææè´å½ä¸å»ï¼å¼æºè½¯ä»¶å¨èµ°åæççè¿ç¨ä¸ï¼ä¼ä¸ç¨æ·åæ¿åºç¨æ·ç±æçä¸åå°æ¿æå°è¯ï¼å¹¶æç»å½¢æäºä¿¡ä»»ãå¼æºè½¯ä»¶å·²ç»æ为软件ä¸æªæ¥åå±çéè¦è¶å¿ãæ£å¦ Navica å ¬å¸ CEO æ¬çº³å¾·Â·é«ç»æ说ï¼"çç两ä¸å¹´é´ï¼ä»»ä½äººå¨éæ©ä»»ä½ä¼ä¸è½¯ä»¶ä¹æ¶ï¼é½å¼å§èèä¸ä¸ªé®é¢ï¼æ¯å¦æå¼æºè½¯ä»¶å¯ä½æ¿ä»£ï¼"