(58)【調査した分野】(Int.Cl.,DB名)
ソースデバイスによって、Wi-Fiピアツーピアリモートディスプレイセッション中に第1のプロトコルを介するシンクデバイスへのメディアストリームを開始するステップと、
前記シンクデバイスによってサポートされる第2のプロトコルを識別するステップと、
前記Wi-Fiピアツーピアリモートディスプレイセッション中に前記メディアストリームを送信するためにメディアコンテンツのタイプに基づいて前記第2のプロトコルに動的に切り替えるステップと
を含む、ワイヤレス通信のための方法。
前記受信されたメッセージに応答して、前記シンクデバイスにセットアップ要求を送信するステップであって、前記セットアップ要求は、プロファイルおよびポート情報を含む、送信するステップ
をさらに含む、請求項4に記載の方法。
メディアコンテンツの前記タイプ、ネットワーク条件、または前記シンクデバイスにおいて使用可能なバッファ空間に少なくとも部分的に基づいて、再生を開始する前に前記メディアストリームをバッファリングするために前記シンクデバイスによって使用されるバッファサイズを選択するステップと、
前記選択されたバッファサイズを前記シンクデバイスに送信するステップと
をさらに含む、請求項7に記載の方法。
再生されている前記メディアストリームのプレゼンテーションタイムスタンプ(PTS)値と、再生を待っている前記メディアストリームの保留中のバッファサイズとを前記シンクデバイスに照会するステップと、
前記照会に応答して、再生されている前記メディアストリームの前記PTS値と、再生を待っている前記メディアストリームの前記保留中のバッファサイズとを示すメッセージを受信するステップと
をさらに含む、請求項1に記載の方法。
前記フラッシュ制御コマンドは、前記PTS値を有するデータパケットまで前記バッファ内のデータを破棄するように前記シンクデバイスに命令する、請求項10に記載の方法。
前記シンクデバイスに音量制御コマンドを発行するステップであって、前記音量制御コマンドは、前記シンクデバイスにおける前記メディアストリームの再生音量を制御する、発行するステップ
をさらに含む、請求項1に記載の方法。
前記第1のプロトコルは、ユーザデータグラムプロトコル(UDP)を含み、前記第2のプロトコルは、伝送制御プロトコル(TCP)を含む、請求項13に記載の装置。
前記第1のプロトコルは、伝送制御プロトコル(TCP)を含み、前記第2のプロトコルは、ユーザデータグラムプロトコル(UDP)を含む、請求項13に記載の装置。
前記フラッシュ制御コマンドは、前記PTS値を有するデータパケットまで前記バッファ内のデータを破棄するように前記シンクデバイスに命令する、請求項22に記載の装置。
ソースデバイスによって、Wi-Fiピアツーピアリモートディスプレイセッション中に第1のプロトコルを介するシンクデバイスへのメディアストリームを開始するためのマルチプロトコル通信コンポーネントと、
前記シンクデバイスによってサポートされる第2のプロトコルを識別するための能力分析コンポーネントと、
前記Wi-Fiピアツーピアリモートディスプレイセッション中に前記メディアストリームを送信するためにメディアコンテンツのタイプに基づいて前記第2のプロトコルに動的に切り替えるための動的切替コンポーネントと
を含む、ワイヤレス通信のための装置。
前記第1のプロトコルは、ユーザデータグラムプロトコル(UDP)を含み、前記第2のプロトコルは、伝送制御プロトコル(TCP)を含む、請求項25に記載の装置。
前記第1のプロトコルは、伝送制御プロトコル(TCP)を含み、前記第2のプロトコルは、ユーザデータグラムプロトコル(UDP)を含む、請求項25に記載の装置。
前記シンクデバイスが伝送制御プロトコル(TCP)をサポートできるかどうかと、TCP接続のために使用される1つまたは複数のポートとを判定するために前記シンクデバイスに照会を送信するための送信機と、
前記照会に応答して、前記シンクデバイスがTCPをサポートすることを確認するメッセージとポート情報とを受信するための受信機であって、前記送信機および前記受信機は、前記シンクデバイスによってサポートされる前記第2のプロトコルを識別するために前記能力分析コンポーネントと通信している、受信機と
をさらに含む、請求項25に記載の装置。
前記送信機は、さらに、前記受信されたメッセージに応答して、前記シンクデバイスにセットアップ要求を送信するためのものであり、前記セットアップ要求は、プロファイルおよびポート情報を含む
請求項28に記載の装置。
【発明を実施するための形態】
【0017】
説明される実施形態は、オーディオデータおよび/またはビデオデータなどのメディアコンテンツをシンクデバイスにストリーミングするために、ソースデバイスがユーザデータグラムプロトコル(UDP)と伝送制御プロトコル(TCP)との間で動的に切り替えるためのシステムおよび方法を対象とする。たとえば、リアルタイムメディアコンテンツ(たとえば、ストリーミングスポーツイベント)に関連するWi-Fiピアツーピアリモートディスプレイセッション中に、ソースデバイスは、シンクデバイスにメディアコンテンツをストリーミングするのにUDP上のリアルタイムトランスポートプロトコル(RTP)を利用することができる。逆に、メディアコンテンツが、記憶されたメディア(たとえば、映画)の再生など、待ち時間にクリティカルではない時には、ソースデバイスは、信頼できるデータ伝送を提供するために、TCP上のRTPに動的に切り替えることができる。その結果、ソースデバイスおよびシンクデバイスは、Wi-Fiピアツーピアリモートディスプレイセッション中に、ストリーミングすべきコンテンツのタイプ、ネットワーク条件、および/またはデバイス能力に基づいてトランスポート機構を動的に選択することができる。
【0018】
別の例において、ソースデバイスは、メディアストリームを処理するシンクデバイスの音量など、再生機能を制御することができる。その結果、音量変化は、シンクデバイスでこれから再生されるべきバッファリングされたデータがある時であっても、即座に反映され得る。さらに、本開示の再生音量制御の機能性は、ソースデバイスから送信されるメディアストリーム内のオーディオの音量レベルにかかわりなく、シンクデバイスにおける音量を制御するのに使用され得る。
【0019】
以下の説明は、例を提供するものであって、特許請求の範囲に示された範囲、適用可能性、または構成を限定するものではない。本開示の趣旨および範囲から逸脱せずに、議論される要素の機能および配置において変更を行うことができる。様々な実施形態は、様々な手順またはコンポーネントを、適宜に省略し、置換し、または追加することができる。たとえば、説明される方法を、説明されるものとは異なる順序で実行することができ、様々なステップを、追加し、省略し、または組み合わせることができる。また、いくつかの実施形態に関して説明される特徴を、他の実施形態において組み合わせることができる。
【0020】
ここで
図1を参照すると、システム100は、ソースデバイス115およびシンクデバイス135を含み、1つまたは複数のアクセスポイント105を含むことができる。ソースデバイス115の例は、スマートフォン、セル電話機、ワイヤレスヘッドフォン、ウェアラブルコンピューティングデバイス、タブレット、携帯情報端末(PDA)、ラップトップ、または接続(たとえば、有線、セルラーワイヤレス、Wi-Fiなど)を介してシンクデバイス135と通信することのできる任意の他のデバイスを含むことができるが、これに限定はされない。シンクデバイス135の例は、車載インフォテイメントデバイス、TV、コンピュータ、ラップトップ、プロジェクタ、カメラ、スマートフォン、ウェアラブルコンピューティングデバイス、またはソースデバイス115と通信し、ソースデバイス115から受信されたコンテンツを表示することのできる任意の他のデバイスを含むことができるが、これに限定はされない。シンクデバイス135は、デバイスの組合せとすることができる。たとえば、シンクデバイス135は、ディスプレイデバイスと、ディスプレイデバイス上での表示のためにコンテンツを受信し、バッファリングし、復号するための別々のデバイスとを含むことができる。
【0021】
ソースデバイス115は、リンク125を介してシンクデバイス135に接続され得る。リンク125は、
図1内で、ワイヤレスリンクとして図示されているが、いくつかの実施形態において、有線リンクであっても、ワイヤレスリンクであってもよい。ワイヤレスピアツーピア接続を介して接続されたソースデバイス115とシンクデバイス135との間の通信は、シンクデバイス135においてソースデバイス115のコンテンツをリモートにレンダリングするために実行され得る。Wi-Fiリモートディスプレイは、Wi-Fi AllianceからのMiracast(登録商標)としても知られているWi-Fi Display仕様、Discovery and Launch(DIAL)、Digital Living Network Alliance(登録商標)(DLNA(登録商標))、Airplay、WirelessHD、ワイヤレスホームデジタルインターフェース(WHDI)、Intel社のワイヤレスディスプレイ(Wi-Di)技術、およびウルトラワイドバンド(UWB)接続を含むが、これらに限定はされない。以下の技法は、
図1に示されたワイヤレスネットワーキングアーキテクチャを使用して説明されるが、説明される技法は、任意の適切な有線またはワイヤレスの通信技術に適用可能である。
【0022】
一実施形態において、ソースデバイス115は、Wi-Fi Display接続を介してシンクデバイス135に接続される。Miracastとしても知られているWi-Fi Displayプロトコルは、ポータブルデバイスまたはコンピュータがメディアコンテンツ(たとえば、ビデオ、オーディオ、イメージなど)を互換ディスプレイにワイヤレスに送信することを可能にする。これは、ワイヤレスリンク125を介する圧縮された標準品位ビデオまたは高品位ビデオの配信を可能にする。これは、ユーザが、あるデバイスからのディスプレイを別のデバイスのディスプレイ上にエコーすることをも可能にすることができる。ワイヤレスリンク125は、直接ワイヤレスリンク(たとえば、ピアツーピアリンク125-a)であってもよいし、Wi-Fiアクセスポイントを介する間接ワイヤレスリンク(たとえば、間接リンク125-b)であってもよい。直接ワイヤレスリンクの例は、Wi-Fi Direct接続と、Wi-Fi Tunneled Direct Link Setup(TDLS)リンクを使用することによって確立される接続とを含む。
【0023】
Wi-Fi Displayは、ユーザが、ビデオコンテンツストリーミングおよび/またはオーディオコンテンツストリーミングによって、あるデバイスからのディスプレイを別のデバイスのディスプレイにエコーすることを可能にする。ソースデバイス115とシンクデバイス135との間のリンク125は、両方向とすることができる。一例において、ソースデバイス115とシンクデバイス135との間の接続は、ユーザが、シンクデバイス135を介してソースデバイス115上に記憶されたアプリケーションを起動することを可能にすることもできる。たとえば、シンクデバイス135は、様々な入力コントロール(たとえば、マウス、キーボード、ノブ、キー、ユーザインターフェースボタン)を含むことができる。これらのコントロールは、ソースデバイス115上に記憶されたメディアアプリケーションを介するソースからのオーディオ/ビデオストリーミングを開始し、そのストリーミング中に相互作用するために、シンクデバイス135において使用され得る。
【0024】
Wi-Fi Displayは、MPEG2トランスポートストリーム(MPEG-TS)などのトランスポートストリームを使用することができる。コンテンツは、メディア符号化フォーマット(たとえば、h.264、MPEG-4、h.265など)に従って符号化され得、シンクデバイス135への送信のために他の情報(たとえば、誤り訂正、ストリーム同期化など)と共にトランスポートストリームに多重化され得る。ソースデバイス115を含むシステム100は、オーディオデータおよび/またはビデオデータなどのメディアコンテンツをシンクデバイス135にストリーミングするために、UDPとTCPとの間で動的に切り替えるように構成され得る。たとえば、リアルタイムメディアコンテンツ(たとえば、ライブストリーミング、ゲーミング、または対話型ユーザ入力の表示)に関連するWi-Fiピアツーピアリモートディスプレイセッション中に、ソースデバイスは、シンクデバイスにメディアコンテンツをストリーミングするのに、UDP上でRTPを利用することができる。逆に、記憶されたメディア(たとえば、映画)の再生など、メディアコンテンツが待ち時間にクリティカルではない時には、ソースデバイスは、信頼できるデータ伝送を提供するために、TCP上のRTPに動的に切り替えることができる。Wi-Fiピアツーピアディスプレイセッションにおいてメディアデータを搬送するためにTCPトランスポートの能力を追加することは、ソースデバイスおよびシンクデバイスが、コンテンツのタイプ、ネットワーク条件、または使用可能なバッファリングなどの他の実施要因に基づいて最良のトランスポート機構を選択することを可能にする。コネクション指向のTCPは、リンク条件に適合するのに適するので、TCPの利用は、輻輳したネットワーク環境においてメディア再生の品質を実質的に改善することができる。
【0025】
いくつかの例において、Wi-Fiピアツーピアリモートディスプレイ接続がソースデバイス115とシンクデバイス135との間で確立される前またはその後に、これらのデバイスは、能力ネゴシエーション手順にかかわることができる。能力ネゴシエーション手順の一部として、ソースデバイス115は、Wi-Fiリモートディスプレイ接続を確立するためのシンクデバイス135の能力に関する様々な情報をシンクデバイス135に照会することができる。ソースデバイス115は、リアルタイムストリーミングプロトコル(RTSP)要求メッセージを送信することによって、シンクデバイス135に照会することができる。一例において、ソースデバイス115は、シンクデバイス135がデュアルモード通信を含むメディアデータに関するTCPトランスポートの使用をサポートできるかどうかを判定するために、RTSP要求メッセージ(たとえば、Get_Parameter要求メッセージ)を使用してシンクデバイス135に照会することができ、ここで、デュアルモード通信は、UDPおよび/またはTCP上でRTPメディアコンテンツトランスポートをサポートすることを含むことができる。
【0026】
一例において、能力ネゴシエーション手順中に、シンクデバイス135は、シンクデバイス135がデュアルモード通信(すなわち、UDPおよびTCP)をサポートできるかどうかを示すために、照会に対する応答を生成することができる。能力ネゴシエーション手順が終了された後に、ソースデバイス115は、UDPまたはTCPのいずれかを介してシンクデバイスにRTPメディアコンテンツをストリーミングするために、シンクデバイス135との通信を確立することができる。
【0027】
ここで
図2Aを参照すると、様々な実施形態による、ソースデバイス115-aを示すブロック
図200-aがある。ソースデバイス115-aは、
図1を参照して説明されたソースデバイス115のうちの1つの、1つまたは複数の態様の例であり得る。ソースデバイス115-aは、プロセッサとすることもできる。ソースデバイス115-aは、ソース受信機205と、通信管理コンポーネント210と、ソース送信機215とを含むことができる。これらのコンポーネントの各々は、お互いと通信していてもよい。
【0028】
ソースデバイス115-aのコンポーネントは、個別にまたは集合的に、適用可能な機能の一部またはすべてをハードウェア内で実行するように適合された1つまたは複数の特定用途向け集積回路(ASIC)を用いて実施され得る。代替案では、機能は、1つまたは複数の集積回路上の1つまたは複数の他の処理ユニット(またはコア)によって実行され得る。他の実施形態では、当技術分野で既知の任意の形でプログラムされ得る他のタイプの集積回路(たとえば、ストラクチャード/プラットフォームASIC、フィールドプログラマブルゲートアレイ(FPGA)、および他のセミカスタムIC)が使用され得る。各ユニットの機能は、全体的にまたは部分的に、1つまたは複数の汎用プロセッサまたは特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に記憶された命令を用いて実施されることも可能である。一実施形態において、
図2Aに示されたコンポーネントは、それぞれ、本明細書で説明される機能を実行するための回路または回路網を含むことができる。
【0029】
ソース受信機205は、1つまたは複数の信号202を介して、
図1を参照して説明されたシンクデバイス135のうちの1つまたは複数などのシンクデバイスからの通信を受信することができる。受信された通信は、任意の適切な形のデータであるものとすることができる。ソース受信機205は、
図1を参照して説明されたソースデバイス115-aとシンクデバイス135との間で確立されるワイヤレス(たとえば、Wi-Fi)ピアツーピア接続を介してこれらの通信を受信することができる。通信管理コンポーネント210は、ソースデバイス115-aによって受信された通信を1つまたは複数の信号204を介して管理することができる。さらに、通信管理コンポーネント210は、1つまたは複数の信号206を介して、ソースデバイス115-aからシンクデバイスに送信される通信を管理することができる。さらに、通信管理コンポーネント210は、オーディオストリームおよび/もしくはビデオストリーム、グラフィックスリソース、通信、ならびに/または制御命令を1つまたは複数のシンクデバイス135に提供するために、ソースデバイス115-aの諸態様を制御しまたは他の形で管理するためにデータを処理することができる。
【0030】
ソース送信機215は、1つまたは複数の信号208を介して、
図1を参照して説明されたシンクデバイス135のうちの1つまたは複数などのシンクデバイスに通信を送信することができる。送信される通信は、グラフィックスリソース、オーディオストリームおよび/もしくはビデオストリーム、ならびに/または通信命令などのデータを含むことができる。ソース送信機215は、ソースデバイス115-aとシンクデバイス135との間で確立されるワイヤレス(たとえば、Wi-Fi)ピアツーピア接続を介してこれらの通信を送信することができる。通信管理コンポーネント210に関する詳細は、下で説明される。
【0031】
図2Bは、様々な実施形態による、ソースデバイス115-bを示すブロック
図200-bである。ソースデバイス115-bは、
図1および/または
図2Aを参照して説明されたソースデバイス115のうちの1つの、1つまたは複数の態様の例であり得る。ソースデバイス115-bは、プロセッサとすることもできる。ソースデバイス115-bは、ソース受信機205-aと、通信管理コンポーネント210-aと、ソース送信機215-aとを含むことができる。これらのコンポーネントの各々は、お互いと通信していてもよい。
【0032】
ソースデバイス115-bのコンポーネントは、個別にまたは集合的に、適用可能な機能の一部またはすべてをハードウェア内で実行するように適合された1つまたは複数のASICを用いて実施され得る。代替案では、機能は、1つまたは複数の集積回路上の1つまたは複数の他の処理ユニット(またはコア)によって実行され得る。他の実施形態では、当技術分野で既知の任意の形でプログラムされ得る他のタイプの集積回路(たとえば、ストラクチャード/プラットフォームASIC、FPGA、および他のセミカスタムIC)が使用され得る。各ユニットの機能は、全体的にまたは部分的に、1つまたは複数の汎用プロセッサまたは特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に記憶された命令を用いて実施されることも可能である。一実施形態において、
図2Bに示されたコンポーネントは、それぞれ、本明細書で説明される機能を実行するための回路または回路網を含むことができる。
【0033】
ソース送信機215-aは、
図2Aに関して前に説明されたように構成され得る。ソース受信機205-aも、
図2Aに関して前に説明されたように構成され得る。通信管理コンポーネント210-aは、マルチプロトコル通信コンポーネント220と、能力分析コンポーネント225と、再生制御コンポーネント230とを含むことができる。
【0034】
一実施形態において、マルチプロトコル通信コンポーネント220は、ソースデバイス115-bがUDPおよびTCPなどの複数のプロトコルを介するシンクデバイスとの通信をサポートすることを可能にするように構成され得る。一例において、マルチプロトコル通信コンポーネント220は、オーディオ/ビデオデータを送信するために、初期セッション中にUDPを使用してシンクデバイスとの通信を初期化することができる。別の例において、マルチプロトコル通信コンポーネント220は、シンクデバイスと通信するためのデフォルト初期セッティングとしてTCPを介する送信を選択することができる。ソースデバイス115-bによってサポートされる複数のトランスポートプロトコルのうちの1つの選択は、シンクデバイスの能力、メディアコンテンツのタイプ、ネットワーク条件、および/またはシンクデバイスにおける使用可能なバッファリングに部分的に基づくものであり得る。さらに、マルチプロトコル通信コンポーネント220は、ソースデバイス115-bが、所定の要因に基づいてUDPとTCPとの間で動的に切り替えることを可能にするように構成され得る。
【0035】
能力分析コンポーネント225は、シンクデバイスの能力を照会することと、複数のトランスポートプロトコルのうちのどの1つがメディアコンテンツのストリーミングに最も適する可能性があるのかを判定することとによって、適当なトランスポートプロトコルの選択においてマルチプロトコル通信コンポーネント220を支援することができる。能力分析コンポーネント225は、Wi-Fiピアツーピアリモートディスプレイセッション中に、シンクデバイスに関する1つまたは複数の照会を生成することができる。一例において、能力分析コンポーネント225は、シンクデバイスがUDPプロトコルおよび/またはTCPプロトコルをサポートするかどうかと、シンクデバイスによって使用される関連するポート情報とを判定するために、シンクデバイスに照会することができる。別の例では、能力分析コンポーネント225は、さらに、シンクデバイスの復号器遅延と、ソースデバイスが割り振ることができる可能性がある初期バッファサイズとをシンクデバイスに照会することができる。送信された照会に応答して、能力分析コンポーネント225は、ソースデバイス115-bにシンクデバイスの能力を示すシンクデバイスからの1つまたは複数のメッセージを受信することができる。
【0036】
一例において、再生制御コンポーネント230は、シンクデバイスに制御コマンド(たとえば、バッファフラッシュ、音量制御など)を発行することができる。いくつかの例においては、シンクデバイスが以前にバッファリングされたデータを再生せずに新しいデータのバッファリングを開始することを可能にするために、シンクデバイスのバッファをフラッシュすることが必要である場合がある。同様に、再生制御コンポーネント230は、シンクデバイスにおけるメディアコンテンツの音量を調整するために、音量制御コマンドを発行することができる。音量制御コマンドは、ソースデバイスから送信されたストリーム内のオーディオの音量レベルにかかわりなく、シンクデバイスにおける音量を調整することができる。音量制御のいくつかの例は、音量増加、音量減少、消音、および/または消音解除を含むことができる。再生制御コンポーネント230は、UDPまたはTCPのいずれかを介してメディアコンテンツを送信する間に制御コマンドを発行することができる。当業者は、再生制御コンポーネント230のコマンドが、バッファフラッシュおよび/または音量制御に排他的に限定はされないことを理解するに違いない。
【0037】
ここで
図2Cを参照すると、様々な実施形態による、ソースデバイス115-cを示すブロック
図200-cがある。ソースデバイス115-cは、
図1、
図2A、および/または
図2Bを参照して説明されたソースデバイス115のうちの1つの、1つまたは複数の態様の例であり得る。ソースデバイス115-cは、プロセッサとすることもできる。ソースデバイス115-cは、ソース受信機205-bと、通信管理コンポーネント210-bと、ソース送信機215-bとを含むことができる。これらのコンポーネントの各々は、お互いと通信していてもよい。
【0038】
ソースデバイス115-cのコンポーネントは、個別にまたは集合的に、適用可能な機能の一部またはすべてをハードウェア内で実行するように適合された1つまたは複数のASICを用いて実施され得る。代替案では、機能は、1つまたは複数の集積回路上の1つまたは複数の他の処理ユニット(またはコア)によって実行され得る。他の実施形態では、当技術分野で既知の任意の形でプログラムされ得る他のタイプの集積回路(たとえば、ストラクチャード/プラットフォームASIC、FPGA、および他のセミカスタムIC)が使用され得る。各ユニットの機能は、全体的にまたは部分的に、1つまたは複数の汎用プロセッサまたは特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に記憶された命令を用いて実施されることも可能である。一実施形態において、
図2Cに示されたコンポーネントは、それぞれ、本明細書で説明される機能を実行するための回路または回路網を含むことができる。
【0039】
ソース送信機215-bは、
図2Aおよび/または
図2Bに関して前に説明されたように構成され得る。ソース受信機205-bも、
図2Aおよび/または
図2Bに関して前に説明されたように構成され得る。通信管理コンポーネント210-bは、
図2Bを参照して説明されるように、マルチプロトコル通信コンポーネント220-aと、能力分析コンポーネント225-aと、再生制御コンポーネント230-aとを含むことができる。
【0040】
一実施形態において、マルチプロトコル通信コンポーネント220-aは、TCPポートコンポーネント235と、UDPポートコンポーネント240と、動的切替コンポーネント245とをさらに含むことができる。マルチプロトコル通信コンポーネント220-aは、TCPを介してシンクデバイスにRTPメディアコンテンツを送信するのにTCPポートコンポーネント235を利用することができる。いくつかの例において、TCPポートコンポーネント235は、アプリケーションとインターネットプロトコル(IP)レイヤとの間の中間レベルにおいて通信サービスを提供することができる。TCPポートコンポーネント235は、待ち時間を許容する(たとえば、記憶された媒体を再生する)通信がワイヤレスリンクを介してシンクデバイスに送信されようとしている時に、TCPポートをオープンするか作成することができる。同様に、UDPポートコンポーネント240は、ソースデバイス115-cからUDPを介してシンクデバイスにRTPメディアコンテンツを送信するのに利用され得る。いくつかの例において、UDPポートコンポーネント240は、Wi-Fiピアツーピアリモートディスプレイセッション中に直接ワイヤレスリンク上で少なくとも1つのシンクデバイスにメッセージおよび/またはデータグラムを送信することができる。UDPポートコンポーネント240は、リアルタイムストリーミングメディアなどの待ち時間を許容しない通信が、ワイヤレスリンクを介してシンクデバイスに送信されようとしている時に、UDPポートを作成しまたはオープンすることができる。
【0041】
さらなる例において、動的切替コンポーネント245は、能力分析コンポーネント225-aによって判定された、シンクデバイスの能力、メディアコンテンツのタイプ、ネットワーク条件、および/または使用可能なバッファ空間に部分的に基づいて、トランスポートプロトコルを第1のプロトコルから第2のプロトコルへ切り替えることができる。第1のプロトコルおよび第2のプロトコルは、UDPおよび/またはTCPのいずれかとすることができる。能力分析コンポーネント225-aは、前に
図2Bに関して説明されたように構成され得る。一例において、シンクデバイスから応答を受信する際に、動的切替コンポーネント245は、プロファイルおよびポート情報を含むRTSP要求メッセージ(たとえば、RTSP SET_PARAMETER要求)を発行することによって、第1のプロトコルから第2のプロトコルへのトランスポートプロトコルの利用の切替を開始することができる。いくつかの場合において、第1のプロトコルをUDPとすることができ、第2のプロトコルをTCPとすることができる。代替案では、他の場合において、第1のプロトコルをTCPとすることができ、第2のプロトコルをUDPとすることができる。
【0042】
一例において、ソースデバイス115-cは、メディアデータに関してTCPトランスポートをセットアップするための発行されたRTSP SET_PARAMETER要求に対する肯定の応答を受信する際に、シンクデバイスとの通信を確立することができる。いくつかの例において、シンクデバイスは、TCPサーバとして構成され得、ソースデバイス115-cは、TCPクライアントとして動作する。一例において、第1のプロトコルから第2のプロトコルへの切替の前、その間、および/またはその後のいずれかにオーディオフォーマットおよび/またはビデオフォーマットを変更する必要がある場合があり、ここで、第1のプロトコルまたは第2のプロトコルは、UDPまたはTCPのいずれかであり得る。
【0043】
いくつかの例において、動的切替コンポーネント245は、第1のプロトコルから第2のプロトコルへ動的に切り替える前に、シンクデバイス内で指定された量のバッファ空間を割り振るようにさらに要求することができる。ソースデバイス115-cは、これがシンクデバイスに送信できるRTSP SET_PARAMETER要求メッセージに対するパラメータとして、初期バッファサイズを含めることができる。所定の最小バッファ空間の割振りは、ソースデバイス115-cとシンクデバイスとの間のWi-Fiリンクがジッタを有し、かつ/または誤りがある傾向を有する可能性があるので、必要になる可能性がある。その結果、所定の最小量のバッファリングが、ジッタとチャネル内の誤り(たとえば、データの再送信)によって引き起こされるパケット待ち時間とを平滑化し、シンクデバイスにおいてレンダリングされるビデオの良い品質を維持するために、シンクデバイスにおいて提供され得る。いくつかの例において、シンクバッファサイズは、プレゼンテーションのためにソースデバイス115-cからシンクデバイスに送信されるメディアストリームに関するアプリケーションのタイプに基づいて、ソースデバイス115-cによって動的に制御され得る。たとえば、諸技法は、ゲーミングアプリケーションに関してより小さく、対話型メディアアプリケーション(たとえば、対話型コンピューティング、プレゼンテーション、両方向通信など)に関してより大きく、非対話型メディアタイプ(たとえば、ストリーミングビデオ、静的イメージなど)に関してさらにより大きいバッファサイズを選択することができる。
【0044】
ソースデバイス115-cは、ユーザがシンクデバイス135におけるバッファリングの量に関するプリファレンスを選択することを可能にするユーザセッティングをさらに含むことができる。たとえば、ユーザは、メディアストリームの、より短い待ち時間またはより高信頼性のディスプレイの間でプリファレンスを選択できるものとされ得、ソースデバイス115-cは、それに従ってシンクバッファサイズを調整することができる。ユーザは、さらに、個々のアプリケーションに関してまたは個々のメディアストリームに関して、使用カテゴリに基づいてシンクバッファサイズプリファレンスをセットでき得る。いくつかの例において、ユーザは、第1のプロトコルから第2のプロトコルへ送信を切り替える前に、シンクバッファサイズを直接に(たとえば、ms単位でなど)セットでき得る。
【0045】
別の例において、再生制御コンポーネント230-aは、シンクデバイスに制御コマンド(たとえば、バッファフラッシュ、音量制御など)を発行すべきかどうかを判定することができる。フラッシュ制御コンポーネント250は、現在のプレゼンテーション時刻と、シンクデバイスにおけるオーディオストリームおよび/またはビデオストリームのバッファリングされたデータの量とを要求する照会に部分的に基づいて、シンクデバイスのバッファをフラッシュすべきかどうかを判定することができる。Table 1(表1)に、オーディオおよびビデオのタイミングとバッファ状況とに関する要求に関するソースデバイス115-cとシンクデバイスとの間でのメッセージ交換の一例を示す。
【0047】
シンクデバイスからの応答に少なくとも部分的に基づいて、フラッシュ制御コンポーネント250は、シンクデバイスが以前にバッファリングされたデータを再生せずに新しいデータのバッファリングを開始することを可能にするために、シンクデバイスのバッファをフラッシュすることができる。フラッシュ制御コンポーネント250は、シンクデバイスのバッファを指定されたプレゼンテーションタイムスタンプ(PTS)値および/または復号タイムスタンプ(DTS)値までフラッシュするために、シンクデバイスにRTSP要求メッセージ(たとえば、RTSP SET_PARAMETER要求)を発行することができる。いくつかの例において、フラッシュ制御コンポーネント250は、ソースデバイス115-cからシンクデバイスに送信された最大のPTSに関連するPTS値を有するフラッシュコマンドをシンクデバイスに発行する前に、メディアコンテンツのストリーミングを一時停止することができる。シンクデバイスからの応答内で成功のRTSP応答または失敗メッセージのいずれかを受信する際に、ソースデバイス115-cは、以前にスケジューリングされた通りにUDPまたはTCPのいずれかを介してRTPデータのストリーミングを再開することができる。
【0048】
同様に、再生制御コンポーネント230-aの音量制御コンポーネント255は、シンクデバイスにおけるメディアコンテンツの音量を調整するために、音量制御コマンドを発行することができる。音量制御コマンドは、ソースデバイス115-cから送信されたストリーム内のオーディオの音量レベルにかかわりなく、シンクデバイスにおける音量を調整することができる。音量制御のいくつかの例は、音量増加、音量減少、消音、および/または消音解除を含むことができる。
【0049】
ここで
図3Aを参照すると、ブロック
図300-aは、様々な実施形態によるシンクデバイス135-aを示す。シンクデバイス135-aは、
図1、
図2A、
図2B、および
図2Cを参照して説明されたシンクデバイス135のうちの1つの1つまたは複数の態様の例であり得る。シンクデバイス135-aは、プロセッサとすることもできる。シンクデバイス135-aは、シンク受信機305と、通信確立コンポーネント310と、シンク送信機315とを含むことができる。これらのコンポーネントのそれぞれは、お互いと通信していてもよい。
【0050】
シンクデバイス135-aのコンポーネントは、個別にまたは集合的に、適用可能な機能の一部またはすべてをハードウェア内で実行するように適合された1つまたは複数のASICを用いて実施され得る。代替案では、機能は、1つまたは複数の集積回路上の1つまたは複数の他の処理ユニット(またはコア)によって実行され得る。他の実施形態では、当技術分野で既知の任意の形でプログラムされ得る他のタイプの集積回路(たとえば、ストラクチャード/プラットフォームASIC、FPGA、および他のセミカスタムIC)が使用され得る。各ユニットの機能は、全体的にまたは部分的に、1つまたは複数の汎用プロセッサまたは特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に記憶された命令を用いて実施されることも可能である。一実施形態において、
図3Aに示されたコンポーネントは、それぞれ、本明細書で説明される機能を実行するための回路または回路網を含むことができる。
【0051】
シンク受信機305は、1つまたは複数の信号302を介して、
図1、
図2A、
図2B、および/または
図2Cを参照して説明されたソースデバイス115などの1つまたは複数のソースデバイスから通信を受信することができる。本明細書で説明されるように、通信は、オーディオストリームおよび/もしくはビデオストリーム、グラフィックスリソース、ならびに/またはレンダリング命令を含むことができる。シンク受信機305は、シンクデバイス135-aと1つまたは複数のソースデバイス115との間で確立されるワイヤレス(たとえば、Wi-Fi)ピアツーピア接続を介してこれらの通信を受信することができる。通信確立コンポーネント310は、1つまたは複数の信号304を介して、シンクデバイス135-aによって受信されたそのような通信を管理することができる。さらに、通信確立コンポーネント310は、1つまたは複数の信号306を介して、シンクデバイス135-aからソースデバイスに送信された通信を管理することができる。本明細書で説明されるように、これらの通信は、ソースデバイスおよび/またはソースデバイス上で走行する1つまたは複数のアプリケーションと対話するための、シンクデバイス135-aにおけるユーザ入力を表すデータを含むことができる。シンク送信機315は、1つまたは複数の信号308を介して、Wi-Fi接続を介してシンクデバイス135-aからのそのようなデータを送信することができる。通信確立コンポーネント310に関するさらなる詳細は、下で説明される。
【0052】
図3Bは、様々な実施形態によるシンクデバイス135-bを示すブロック
図300-bである。シンクデバイス135-bは、
図1、
図2A、
図2B、
図2C、および/または
図3Aを参照して説明されたシンクデバイス135のうちの1つの1つまたは複数の態様の例であり得る。シンクデバイス135-bは、プロセッサとすることもできる。シンクデバイス135-bは、シンク受信機305-aと、通信確立コンポーネント310-aと、シンク送信機315-aとを含むことができる。これらのコンポーネントの各々は、お互いと通信していてもよい。
【0053】
シンクデバイス135-bのコンポーネントは、個別にまたは集合的に、適用可能な機能の一部またはすべてをハードウェア内で実行するように適合された1つまたは複数のASICを用いて実施され得る。代替案では、機能は、1つまたは複数の集積回路上の1つまたは複数の他の処理ユニット(またはコア)によって実行され得る。他の実施形態では、当技術分野で既知の任意の形でプログラムされ得る他のタイプの集積回路(たとえば、ストラクチャード/プラットフォームASIC、FPGA、および他のセミカスタムIC)が使用され得る。各ユニットの機能は、全体的にまたは部分的に、1つまたは複数の汎用プロセッサまたは特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に記憶された命令を用いて実施されることも可能である。一実施形態において、
図3Bに示されたコンポーネントは、それぞれ、本明細書で説明される機能を実行するための回路または回路網を含むことができる。
【0054】
シンク受信機305-aおよびシンク送信機315-aは、
図3Aを参照して前に説明されたように構成され得る。通信確立コンポーネント310-aは、デュアルモード通信コンポーネント320と、バッファ管理コンポーネント325と、照会応答コンポーネント330と、再生制御受信コンポーネント335とを含むことができる。
【0055】
デュアルモード通信コンポーネント320は、UDPトランスポートプロトコルまたはTCPトランスポートプロトコルのいずれかを介してソースデバイスから受信されたメディアコンテンツを復号するように構成され得る。そのような例において、デュアルモード通信コンポーネント320は、シンクデバイス135-bがUDPとTCPとの両方を介してメディアコンテンツを受信するように構成されることの応答をソースデバイスに送信するための指示を照会応答コンポーネント330に提供することによって、その能力をソースデバイスに対して識別することができる。
【0056】
バッファ管理コンポーネント325は、シンクデバイス135-bのバッファを管理するように構成され得る。いくつかの例において、ソースデバイスは、ジッタと、チャネル内の誤り(たとえば、データの再送信など)によって引き起こされるパケット待ち時間とを平滑化し、シンクデバイス135-bにおいてレンダリングされるビデオの良い品質を維持するために、シンクデバイス135-b内で指定された量のバッファ空間を割り振るように要求することができる。いくつかの例において、シンクバッファサイズは、プレゼンテーションのためにソースデバイスからシンクデバイスに送信されるメディアストリームに関するアプリケーションのタイプに基づいて、ソースデバイスによって動的に割り振られ得る。その結果、バッファ管理コンポーネント325は、ディスプレイデバイス(図示せず)上でメディアコンテンツをレンダリングする前に、バッファ内で所定の量のメディアコンテンツをバッファリングするように構成され得る。バッファ管理コンポーネント325は、ソースデバイスによって発行されたフラッシュコマンドにさらに応答することができる。そのような例において、バッファ管理コンポーネント325は、指定されたPTS値までバッファをフラッシュすることができる。いくつかの例において、バッファ管理コンポーネント325は、さらに、ソースデバイスによって発行された照会に応答して照会応答コンポーネント330にクリティカル情報を提供することができる。クリティカル情報は、初期バッファサイズ、再生されているオーディオストリームおよび/またはビデオストリームの現在のプレゼンテーション時刻、ならびに使用可能なバッファ空間を含むことができる。
【0057】
照会応答コンポーネント330は、シンクデバイス135-bに情報を要求する発行された照会に応答してソースデバイスへのメッセージを生成するために、デュアルモード通信コンポーネント320およびバッファ管理コンポーネント325から情報を収集することができる。さらなる例において、再生制御受信コンポーネント335は、ソースデバイスからシンクデバイス135-bにストリーミングされたメディアコンテンツの音量を調整するための音量制御などの制御情報を受信するように構成され得る。これに応答して、再生制御受信コンポーネント335は、ソースデバイスから送信されたストリーム内のオーディオの音量レベルにかかわりなく、シンクデバイスにおける音量を調整することができる。いくつかの例において、音量制御は、音量増加、音量減少、消音、および/または消音解除を含むことができる。
【0058】
図4は、様々な実施形態によるデバイス115-dを示すブロック
図400である。デバイス115-dは、
図1、
図2A、
図2B、および/または
図2Cを参照して説明されたソースデバイス115のうちの1つの、1つまたは複数の態様の例であり得る。デバイス115-dは、別のデバイスにコンテンツを提供するために、他のワイヤレスデバイスとのWi-Fi直接通信(たとえば、Wi-Fiピアツーピア接続を介する)に参加するように構成され得る。デバイス115-dは、パーソナルコンピュータ(たとえば、ラップトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータなど)、セルラー電話機、PDA、デジタルビデオレコーダ(DVR)、インターネット機器、ゲーム機、電子ブックリーダ、その他など、様々な例のいずれをも有することができる。デバイス115-dは、モバイル動作を容易にするために、小型バッテリなどの内蔵電源(図示せず)を有することができる。
【0059】
デバイス115-dは、それぞれがお互いと直接または間接に通信していてもよい(たとえば、1つまたは複数のバス455を介して)、アンテナ410と、トランシーバ415と、メモリ425と、プロセッサ435とを含む。トランシーバ415は、上で説明されたように、アンテナ410を介して両方向で通信するように構成される。たとえば、トランシーバ415は、
図1、
図2A、
図2B、
図2C、
図3A、および/または
図3Bの他のデバイス115および/または135と両方向で通信するように構成され得る。トランシーバ415は、前に説明されたように、
図2の受信機205および送信機215を含むことができる。一実施形態において、トランシーバ415は、パケットを変調し、変調されたパケットを送信のためにアンテナ410に供給し、アンテナ410から受信されたパケットを復調するように構成されたモデムをさらに含むことができる。デバイス115-dは、単一のアンテナを含むことができるが、デバイス115-dは、通常は複数のリンクのために複数のアンテナ410を含む。
【0060】
メモリ425は、ランダムアクセスメモリ(RAM)および読取専用メモリ(ROM)を含むことができる。メモリ425は、実行された時にプロセッサ435に本明細書で説明される様々な機能(たとえば、オーディオストリームおよび/もしくはビデオストリーム、グラフィックスリソース、ならびに/またはレンダリング命令を識別し/判定し/入手し、受信し、送信するなど)を実行させるように構成された命令を含むコンピュータ可読コンピュータ実行可能ソフトウェアコード430を記憶することができる。代替案では、ソフトウェア430は、プロセッサ435によって直接に実行可能であるのではなく、コンピュータに(たとえばコンパイルされ、実行される時に)本明細書で説明される機能を実行させるように構成され得る。
【0061】
プロセッサ435は、インテリジェントハードウェアデバイス、たとえば、中央処理装置(CPU)、マイクロコントローラ、ASIC、その他を含むことができる。
図4のアーキテクチャによれば、デバイス115-dは、
図2Aおよび
図2Bを参照して説明されたように、マルチプロトコル通信コンポーネント220-b、能力分析コンポーネント225-b、および再生制御コンポーネント230-bをさらに含むことができる。マルチプロトコル通信コンポーネント220-b、能力分析コンポーネント225-b、および再生制御コンポーネント230-bは、バス455を介してデバイス115-dの他のコンポーネントのうちの一部またはすべてと通信している、デバイス115-dのコンポーネントであり得る。
【0062】
デバイス115-dのコンポーネントは、個別にまたは集合的に、適用可能な機能の一部またはすべてをハードウェア内で実行するように適合された1つまたは複数のASICを用いて実施され得る。代替案では、機能は、1つまたは複数の集積回路上の1つまたは複数の他の処理ユニット(またはコア)によって実行され得る。他の実施形態では、当技術分野で既知の任意の形でプログラムされ得る他のタイプの集積回路(たとえば、ストラクチャード/プラットフォームASIC、FPGA、および他のセミカスタムIC)が使用され得る。各ユニットの機能は、全体的にまたは部分的に、1つまたは複数の汎用プロセッサまたは特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内で実施された命令を用いて実施されることも可能である。注記されたコンポーネントの各々は、本明細書で説明されるデバイス115-dの動作に関する1つまたは複数の機能を実行するための手段であり得る。
【0063】
図5は、ソースデバイス115-eとシンクデバイス135-cとの間の通信の流れの一例を示すメッセージフロー
図500である。ソースデバイス115-eは、
図1、
図2、および/または
図4のデバイス115の例であり得る。シンクデバイス135-cは、
図1および/または
図3のシンクデバイス135の例であり得る。一例において、ソースデバイス115-eおよびシンクデバイス135-cは、Wi-Fiピアツーピア接続を介して接続され得る。ソースデバイス115-eは、UDPトランスポートプロトコルを利用する、シンクデバイス135-cとの確立された接続を有することができる。代替案では、当業者は、ソースデバイス115-eとシンクデバイス135-cとの間のデフォルト通信リンクが、UDPを介するRTPメディアデータの伝送に限定されるのではなく、その代わりにTCPトランスポートプロトコルをも含むことができることを理解するに違いない。
【0064】
図5を参照すると、ソースデバイス115-eは、シンクデバイス135-cの能力を照会するために、シンクデバイス135-cにRTSP「パラメータ取得要求」505を送信することができる。「パラメータ取得要求」505は、シンクデバイス135-cがTCPプロトコルをサポートするかどうか、TCPトランスポートを介するRTPのために使用されるポート情報、復号器待ち時間、および/またはシンクデバイス135-cの初期バッファサイズなどの情報を要求することができる。これに応答して、シンクデバイス135-cは、TCPトランスポートのために使用されるポート情報および要求されたバッファサイズ値と一緒に、シンクデバイス135-cがTCPを介するRTPメディアコンテンツを復号できるかどうかを示すRTSP「パラメータ取得応答」510を発行することができる。ソースデバイス115-eからのTCPに関するRTSP「パラメータ取得要求」505に応答してシンクデバイス135-cから「RTSP OK」510を返す際に、シンクデバイス135-cは、そのTCPサーバを始動し、指定されたポート内でのTCPを介する接続の受け入れの準備ができている。Table 2(表2)は、ソースデバイス115-eによって発行された照会に関するソースデバイス115-eとシンクデバイス135-cとの間の交換の一例を示す。一例において、
図1および/または
図2を参照して説明されたソースデバイス115の通信管理コンポーネント210および
図3を参照して説明されたシンクデバイス135の通信確立コンポーネント310は、下で説明される機能を実行するために、それぞれソースデバイス115-eおよびシンクデバイス135-cの機能要素を制御するためにコードの1つまたは複数のセットを実行することができる。
【0066】
ソースデバイス115-eは、シンクデバイス135-cから能力情報を受信する際に、UDP上のRTPからTCP上のRTPへのメディアコンテンツの送信の切替を開始するために、RTSP「パラメータセット要求」515を用いて応答することができる。いくつかの例において、第1のトランスポートプロトコルから第2のトランスポートプロトコルへの切替は、ソースデバイスおよびシンクデバイス内での内部一時停止を含む。「パラメータセット要求」515は、RTP/AVP/TCPプロファイルおよびポート情報を含むwfd-rtp-client-over-tcp-portsパラメータを有するRTSPセットアップ要求を含むことができる。シンクデバイス135-cは、返報として、シンクデバイス135-cにおいてTCPサーバを実行し、シンクデバイス135-cがすでにそのTCPサーバを始動し、ソースデバイス115-eからの接続を受け入れる準備ができていることを示すRTSP「パラメータセット応答」520を返すことができる。
【0067】
ソースデバイス115-eは、肯定の「パラメータセット応答」520を受信する際に、TCP上のRTPメディアコンテンツ525を送信することによって、シンクデバイス135-cとの通信を開始することができる。RTPデータが、TCPトランスポートを介して送信されようとしている時に、各RTPパケットデータは、IETF RFC 4571、「Framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) packets over Connection-Oriented Transport」に従ってフレーミングされ得る。シンクデバイス135-cは、シンクデバイス135-cのディスプレイ上で、ストリーミングされたメディアコンテンツをレンダリングする530ことができる。Table 3(表3)は、UDPからTCPへおよび/またはTCPからUDPへの送信の切替に関する、ソースデバイス115-eとシンクデバイス135-cとの間での上で示されたメッセージ交換の一例を示す。当業者は、示された例が、指定された例に対して限定的ではないことを理解するはずである。
【0069】
さらなる例において、ソースデバイス115-eは、コンテンツのタイプおよび/またはネットワーク条件に部分的に基づいて、もう一度UDP上でのメディアコンテンツの送信に戻ろうと努めることができる。その場合に、ソースデバイス115-eは、TCPからUDPへのトランスポートプロトコルの切替の処理を開始するために、「パラメータセット要求」535を発行することができる。その結果、シンクデバイス135-cは、シンクデバイス135-cがTCP上のRTPデータの受信からUDP上のRTPデータの受信に切り替えるように構成されることを示す「パラメータセット応答」540を用いて応答することができる。その結果、ソースデバイス115-eは、UDP上のメディアコンテンツのストリーミング545を再開することができ、このメディアコンテンツは、シンクデバイス135-c上でレンダリングされ、表示され550得る。
【0070】
図6は、ソースデバイス115-fとシンクデバイス135-dとの間の通信の別の例を示すメッセージフロー
図600である。ソースデバイス115-fは、
図1、
図2、
図4、および/または
図5のデバイス115の例であり得る。シンクデバイス135-dは、
図1および/または
図3に示されたシンクデバイス135の例であり得る。一例において、ソースデバイス115-fおよびシンクデバイス135-dは、Wi-Fiピアツーピア接続を介して接続され得る。ソースデバイス115-fは、UDPトランスポートプロトコルまたはTCPトランスポートプロトコルのいずれかを利用して、シンクデバイス135-dとの確立された通信を有することができる。
【0071】
いくつかの例において、ソースデバイス115-fは、シンクデバイス135-dに、フラッシュコマンドおよび音量制御コマンドなどの再生制御コマンドを発行することができる。
しかし、
図5を参照して説明された形に似て、制御コマンドの発行には、ソースデバイス115-fとシンクデバイス135-dとの間の能力ネゴシエーション手順の確立が先行する。
図6を参照すると、このネゴシエーションは、それぞれソースデバイス115-fとシンクデバイス135-dとの間で交換されるRTSP「パラメータ取得要求」605およびRTSP「パラメータ取得応答」610に基づく。その後、ソースデバイス115-fは、シンクデバイス135-dがそのそれぞれのバッファをそれにフラッシュできる、ソースデバイス115-fからシンクデバイス135-dに送信されたデータパケットのPTS値を識別するフラッシュコマンド615を発行することができる。発行されたフラッシュコマンドの成功の処理時に、シンクデバイス135-dは、応答620を確認して応答することができる。その結果、シンクデバイス135-dは、PTS値まで、シンクデバイス135-dのバッファをフラッシュする625ことができる。Table 4(表4)は、ソースデバイス115-fとシンクデバイス135-dとの間でのフラッシュコマンド交換の一例を示す。
【0073】
同様に、ソースデバイス115-fは、シンクデバイス135-dへのデータストリームの音量を調整するために、シンクデバイス135-dに音量制御コマンド630を発行することができる。発行された音量制御コマンド630の成功の処理時に、シンクデバイス135-dは、応答635を確認して応答することができる。その結果、シンクデバイス135-dは、シンクデバイス135-dにおけるメディアコンテンツの音量を調整しまたは更新する640ことができる。シンクデバイス135-dにおける音量は、ソースデバイス115-fから送信されたストリーム内のオーディオの音量レベルにはかかわりなく調整されまたは更新され得る。音量制御のいくつかの例は、音量増加、音量減少、消音、および/または消音解除を含むことができる。Table 5(表5)は、
図2Cを参照して説明された、ソースデバイス115の音量制御コンポーネント255によって開始されるソースデバイス115-fとシンクデバイス135-dとの間で交換される音量制御の一例を示す。
【0075】
図7は、シンクデバイス135とのワイヤレス通信のためにソースデバイス115によって実行される方法700を示す。明瞭さのために、方法700は、
図1に示されたシステム100を参照し、ならびに/または
図1、
図2A、
図2B、
図2C、
図4、
図5、および/もしくは
図6を参照して説明されたデバイス115のうちの1つを参照して、下で説明される。一実施態様において、
図2A、
図2B、および/または
図2Cを参照して説明された通信管理コンポーネント210は、下で説明される機能を実行するためにソースデバイス115の機能要素を制御するためにコードの1つまたは複数のセットを実行することができる。
【0076】
方法700のブロック705において、ソースデバイス115は、Wi-Fiピアツーピアリモートディスプレイセッション中に第1のプロトコルを介するシンクデバイスへのメディアストリームを開始する。ブロック705の動作は、
図2A、
図2B、および/または
図2Cを参照して説明された通信管理コンポーネント210および/またはマルチプロトコル通信コンポーネント220によって実行され得る。
【0077】
方法700のブロック710において、ソースデバイス115は、シンクデバイス135によってサポートされる第2のプロトコルを識別することができる。ブロック710の動作は、
図2Bおよび/または
図2Cを参照して説明された能力分析コンポーネント225によって実行され得る。ブロック715において、ソースデバイス115は、Wi-Fiピアツーピアリモートディスプレイセッション中にメディアストリームを送信するために第2のプロトコルに動的に切り替えることができる。ブロック715の動作は、
図2Cを参照して説明された動的切替コンポーネント245によって実行され得る。
【0078】
図8は、シンクデバイス135とのワイヤレス通信のためにソースデバイス115によって実行される方法800を示す。明瞭さのために、方法800は、
図1に示されたシステム100を参照し、ならびに/または
図1、
図2A、
図2B、
図2C、
図4、
図5、および/もしくは
図6を参照して説明されたデバイス115のうちの1つを参照して、下で説明される。一実施態様において、
図2A、
図2B、および/または
図2Cを参照して説明された通信管理コンポーネント210は、下で説明される機能を実行するためにソースデバイス115の機能要素を制御するためにコードの1つまたは複数のセットを実行することができる。
【0079】
方法800のブロック805において、ソースデバイス115は、Wi-Fiピアツーピアリモートディスプレイセッション中に第1のプロトコルを介するシンクデバイスへのメディアストリームを開始する。ブロック805の動作は、
図2A、
図2B、および/または
図2Cを参照して説明された通信管理コンポーネント210および/またはマルチプロトコル通信コンポーネント220によって実行され得る。
【0080】
方法800のブロック810において、ソースデバイス115は、TCP接続のために使用されるポート情報と一緒に、シンクデバイスがTCPトランスポートプロトコルをサポートできるかどうかを判定するためにシンクデバイスに照会を送信することができる。ブロック810の動作は、
図2Bおよび/または
図2Cを参照して説明された能力分析コンポーネント225によって実行され得る。ブロック815において、ソースデバイス115は、照会に応答して、シンクデバイスがTCPをサポートすることを確認するメッセージと、シンクデバイスがリスンしつつある関連するTCPポートとを受信することができる。ブロック815の動作は、
図2A、
図2B、および/または
図2Cを参照して説明されたソース受信機205によって実行され得る。
【0081】
方法800のブロック820において、ソースデバイス115は、Wi-Fiピアツーピアリモートディスプレイセッション中にメディアストリームを送信するために第2のプロトコルに動的に切り替えることができる。ブロック820の動作は、
図2Cを参照して説明された動的切替コンポーネント245によって実行され得る。
【0082】
添付図面に関連して上で示された詳細な説明は、例示的実施形態を説明するものであって、実施され得る実施形態のみまたは特許請求の範囲の範囲内の実施形態のみを表すものではない。この説明全体にわたって使用される「例示的」という用語は、「例、事例、または例示の働きをすること」を意味し、「好ましい」または「他の実施形態よりも有利である」ことを意味しない。発明を実施するための形態は、説明された技法の理解を提供するための特定の詳細を含む。しかし、これらの技法を、これらの特定の詳細を用いずに実践することができる。いくつかの場合に、周知の構造およびデバイスは、説明される実施形態の諸概念を不明瞭にすることを避けるために、ブロック図形式で示される。
【0083】
情報および信号は、様々な異なる技術および技法のいずれを使用することによっても表され得る。たとえば、上の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光学場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【0085】
本明細書の開示に関連して説明された様々な例示的なブロックおよびコンポーネントは、本明細書で説明される機能を実行するように設計された、汎用プロセッサ、デジタル信号プロセッサ(DSP)、ASIC、FPGAもしくは他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタ論理、ディスクリートハードウェアコンポーネント、またはその任意の組合せを用いて実施されまたは実行され得る。汎用プロセッサは、マイクロプロセッサであってもよいが、代替案においては、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアに関連する1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成としても実施され得る。
【0086】
本明細書において説明される機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、またはその任意の組合せ内で実施され得る。機能は、プロセッサによって実行されるソフトウェア内で実装される場合に、コンピュータ可読媒体上に記憶され、または1つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上で送信され得る。他の例および実施態様は、本開示および添付の特許請求の範囲の範囲および要旨に含まれる。たとえば、ソフトウェアの性質に起因して、上で説明される機能は、プロセッサによって実行されるソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング、またはこれらのいずれかの組合せを使用して実施され得る。機能を実装する特徴は、機能の一部が異なる物理位置において実装されるように分散されること状態を含めて、様々な位置に物理的に配置されることも可能である。また、請求項内を含めて本明細書で使用される時に、項目のリスト(たとえば、「at least one of(少なくとも1つの〜)」または「one or more of(〜のうちの1つまたは複数)」などの句がその前に置かれた項目のリスト)内で使用される「or(または)」は、離接的なリストを示し、たとえば、「at least one of A, B, or C(A、B、またはCのうちの少なくとも1つ)」のリストは、A、B、C、AB、AC、BC、またはABC(すなわち、AとBとCと)を意味する。
【0087】
コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にするすべての媒体を含む、コンピュータ記憶媒体と通信媒体との両方を含む。記憶媒体は、汎用コンピュータまたは特殊目的コンピュータによってアクセスされ得る任意の使用可能な媒体であってもよい。限定ではなく例として、コンピュータ可読媒体は、RAM、ROM、電気的消去可能プログラマブルROM(EEPROM)、コンパクトディスク(disc)ROM(CD-ROM)もしくは他の光ディスクストレージ、磁気ディスク(disk)ストレージまたは他の磁気ストレージデバイス、または、命令もしくはデータ構造の形において所望のプログラムコード手段を担持しもしくは記憶するのに使用され得、汎用コンピュータ、特殊目的コンピュータ、汎用プロセッサ、もしくは特殊目的プロセッサによってアクセスされ得る任意の他の媒体を含むことができる。また、すべての接続は、当然、コンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合に、同軸ケーブル、光ファイバケーブル、より対線、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ディスク(disk)およびディスク(disc)は、本明細書で使用される時に、CD、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常は磁気的にデータを再生し、ディスク(disc)は、レーザを用いて光学的にデータを再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれる。
【0088】
本開示の以前の説明は、当業者が本開示を作りまたは使用することを可能にするために提供される。本開示に対する様々な変更は、当業者にたやすく明白になり、本明細書において定義される包括的な原理は、本開示の趣旨または範囲から逸脱せずに他の変形形態に適用され得る。本開示全体にわたって、「例」または「例示的」という用語は、一例または一事例を示すものであり、言及された例についてのいかなる優先をも暗示することはなく、または要求することもない。したがって、本開示は、本明細書において説明される例および設計に限定されてはならず、本明細書において開示される原理および新規の特徴と一貫する最も広い範囲を与えられなければならない。