Skip to content

Instantly share code, notes, and snippets.

@jiyuujin
Last active August 31, 2016 09:51
Show Gist options
  • Save jiyuujin/2e3c7e07c84e3f1eaff9 to your computer and use it in GitHub Desktop.
Save jiyuujin/2e3c7e07c84e3f1eaff9 to your computer and use it in GitHub Desktop.
Used DLNA/P2P, HowToBuild, UPnP, SOAP
  • DMC (Control Point)
  • DMS (Server)
  • DMP (Player)
  • DMR (Renderer)
Android iOS
App Java ObjC
Wrapper
- Complaints
- Language
- DLNA
Stack C C

UPnP (Universal Plug and Play)

ネットワークに散在する端末同士通信。サーバより映像、音楽、画像データを取得、クライアントで再生。SSDP (Simple Service Discovery Protocol)はその通信方式を定めたプロトコル。M-Search methodで端末情報記載、送信者にその情報を送信。

SOAP-ClientがSOAP-Serverに送信するSOAP要求と、それに応答してSOAP-ServerがSOAP-Clientに送信するSOAP応答が存在。HTTPでSOAPを使用する際Content-Typeは必ずXMLである必要

# SOAP要求
<SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" >
  <SOAP-ENV:Body>
    <m:getListOfModels xmlns:m = "uri reference" >
    </m:getListOfModels>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
# SOAP応答
<SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <m:getListOfModelsResponse xmlns:m="urn:MobilePhoneservice">
      <Model>M1</Model>
      <Model>M2</Model>
      <Model>M3</Model>
    </m:getPriceResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

TSヘッダのパースと後続パケットの処理

ISO13818-1、ARIB STD-B10を眺めながらMpeg2-tsファイルをパース。TSのバイナリは188-byteを1-Packetとしパケット全て0x47から始まる。また先頭4-byteはヘッダで後続バイトが何者かなどの情報が入る。

(ISO13818-1 2.4.3.2, Table 2-2)

たとえば以下のようなパケットを考える

参照図

プロジェクト(using P2P/DLNA)のビルド方法

P2Pをビルド

[Build settings]で適宜合わせiOSシミュレータ、実機双方でクリーンしビルド。ビルド成功後ユニバーサルライブラリ生成スクリプト、ユニバーサルライブラリコピースクリプトを実行。

~$ cd MA_P2P/P2PLib
~$ ./make_univarsal.sh
~$ ./copyP2pLibsToMoj.sh ../../MA_STB/iOS/
DLNAをビルド

P2Pビルド完了次第DLNAをビルド。[Build settings]で適宜合わせiOSシミュレータ、実機双方でクリーンしビルド。ビルド成功後、ユニバーサルライブラリ生成スクリプトを実行。

~$ cd DLNA-SDK/iOS_Lib
~$ ./make_univarsal.sh
アプリをビルド

DLNAビルド完了次第アプリをビルド。[Build settings]で適宜合わせiOSシミュレータ、実機双方でクリーンしビルド。

~$ cd ../../iOS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment