具有多屏幕服务的无线显示器

申请号 CN201380008899.5 申请日 2013-01-03 公开(公告)号 CN104115466B 公开(公告)日 2017-12-26
申请人 高通股份有限公司; 发明人 S·V·谢特; V·R·拉韦恩德朗; F·肖卡特;
摘要 本公开内容的技术基本上旨在一种向第二无线计算设备传输第一无线计算设备的内容的方法。第一无线计算设备可以发起WI‑FI显示(WFD)连接,经由WFD连接从第一无线计算设备向第二无线计算设备传输数据,执行使得第一无线计算设备能够与无线客户端计算设备共享播放列表的媒体项目的媒体共享应用,向无线客户端计算设备传输描述播放列表的媒体项目的信息,其中传输描述媒体项目的信息使得第二无线计算设备确定无线客户端计算设备是否能够输出所述媒体项目,以及向无线客户端计算设备传输所述媒体项目。
权利要求

1.一种向第二无线计算设备传输第一无线计算设备的内容的方法,所述方法包括:
利用所述第一无线计算设备来发起与所述第二无线计算设备的WI-FI显示(WFD)连接;
利用所述第一无线计算设备经由所述WFD连接从所述第一无线计算设备向所述第二无线计算设备传输数据;
在所述第一无线计算设备和无线客户端计算设备之间建立无线通信信道;
利用所述第一无线计算设备来执行媒体共享应用,所述媒体共享应用使得所述第一无线计算设备能够跨越所述无线通信信道来与所述无线客户端计算设备共享播放列表的媒体项目;
利用所述第一无线计算设备并且经由所述无线通信信道,向所述无线客户端计算设备传输所述播放列表,其中,所述播放列表包括所述播放列表的属性和描述所述播放列表的所述媒体项目的信息,并且其中,传输所述播放列表使得所述无线客户端计算设备确定所述无线客户端计算设备是否能够输出所述媒体项目;以及
利用所述第一无线计算设备并且经由所述无线通信信道,向所述无线客户端计算设备传输所述媒体项目。
2.根据权利要求1所述的方法,其中,从所述第一无线计算设备向所述第二无线计算设备传输数据使得所述第二无线计算设备对所述第一无线计算设备的显示输出设备进行镜像。
3.根据权利要求1所述的方法,其中,描述所述媒体项目的格式的信息包括以下中的至少一个:可扩展标记语言(XML)、二进制、超文本标记语言(HTML)、逗号分隔值(CSV)。
4.根据权利要求1所述的方法,还包括:从所述无线客户端计算设备接收媒体回放命令。
5.根据权利要求4所述的方法,其中,所述媒体回放命令包括实时流协议(RTSP)指令。
6.根据权利要求4所述的方法,其中,响应于从所述无线客户端计算设备接收到所述媒体回放命令,发生传输所述媒体项目的操作。
7.根据权利要求1所述的方法,还包括:利用所述第一无线计算设备来从所述第二无线计算设备接收用户输入。
8.根据权利要求1所述的方法,其中,经由所述WFD连接的数据传输和所述媒体共享应用的执行同时发生。
9.根据权利要求1所述的方法,其中,描述所述媒体项目的信息包括以下中的至少一个:所述媒体项目的比特率、等级、分辨率、文件类型和文件名。
10.根据权利要求1所述的方法,还包括:
利用所述第一无线计算设备并且经由所述无线通信信道,从所述无线客户端计算设备接收验证信息;
基于所述验证信息利用所述第一无线计算设备来验证所述无线客户端设备;以及响应于验证所述无线客户端设备来利用所述第一无线计算设备准许所述无线客户端设备访问所述播放列表。
11.根据权利要求1所述的方法,其中,传输所述媒体项目包括使用实时传输协议(RTP)来流式传输所述媒体项目。
12.根据权利要求1所述的方法,其中,所述WFD连接包括第一WFD连接,所述方法还包括:
利用所述第一无线计算设备经由第二WFD连接向所述无线客户端计算设备传输关于所述播放列表和所述播放列表的媒体项目中的至少一个的WFD数据;以及
利用所述第一无线计算设备经由所述第二WFD连接从所述无线客户端计算设备接收用户输入反向信道(UIBC)输入命令。
13.根据权利要求12所述的方法,还包括:
响应于从所述无线客户端计算设备接收所述UIBC输入命令,利用所述第一无线计算设备终止所述第二WFD连接。
14.根据权利要求1所述的方法,其中,执行使得所述第一无线计算设备能够与所述无线客户端计算设备共享所述播放列表的所述媒体项目的所述媒体共享应用还包括:
利用所述第一无线计算设备来向所述无线客户端计算设备传输所述播放列表。
15.根据权利要求1所述的方法,其中,所述第二无线计算设备和所述无线客户端计算设备是同一个设备。
16.一种第一无线计算设备,包括:
WI-FI显示(WFD)模,被配置为:
发起与第二无线计算设备的WI-FI显示(WFD)连接;以及
经由所述WFD连接从所述第一无线计算设备向所述第二无线计算设备传输数据;以及媒体共享模块,被配置为:
执行媒体共享应用,所述媒体共享应用使得所述第一无线计算设备能够跨越无线通信信道来与无线客户端计算设备共享播放列表的媒体项目;
经由所述无线通信信道,向所述无线客户端计算设备传输所述播放列表,其中,所述播放列表包括所述播放列表的属性和描述所述播放列表的所述媒体项目的信息,并且其中,传输所述播放列表使得所述无线客户端计算设备确定所述无线客户端计算设备是否能够输出所述媒体项目;以及
经由所述无线通信信道,向所述无线客户端计算设备传输所述媒体项目。
17.根据权利要求16所述的第一无线计算设备,其中,从所述第一无线计算设备向所述第二无线计算设备的数据传输使得所述第二无线计算设备对所述第一无线计算设备的显示输出设备进行镜像。
18.根据权利要求16所述的第一无线计算设备,其中,描述所述媒体项目的格式的所述信息包括以下中的至少一个:可扩展标记语言(XML)、二进制、超文本标记语言(HTML)、逗号分隔值(CSV)。
19.根据权利要求16所述的第一无线计算设备,其中,所述媒体共享模块还被配置为从所述无线客户端计算设备接收媒体回放命令。
20.根据权利要求19所述的第一无线计算设备,其中,所述媒体回放命令包括实时流协议(RTSP)指令。
21.根据权利要求19所述的第一无线计算设备,其中,所述媒体共享模块被配置为响应于从所述无线客户端计算设备接收到所述媒体回放命令来传输所述媒体项目。
22.根据权利要求16所述的第一无线计算设备,其中,所述WFD模块还被配置为从所述第二无线计算设备接收用户输入。
23.根据权利要求16所述的第一无线计算设备,其中,经由所述WFD连接传输的数据和所述媒体共享应用的执行同时发生。
24.根据权利要求16所述的第一无线计算设备,其中,描述所述媒体项目的格式的所述信息包括以下中的至少一个:所述媒体项目的比特率、等级、分辨率、文件类型和文件名。
25.根据权利要求16所述的第一无线计算设备,其中,所述媒体共享模块还被配置为:
经由所述无线通信信道,从所述无线客户端计算设备接收验证信息;
基于所述验证信息来验证所述无线客户端计算设备;以及
响应于所述无线客户端计算设备的验证来准许所述无线客户端计算设备访问所述播放列表。
26.根据权利要求16所述的第一无线计算设备,其中,为了传输所述媒体项目,所述WFD模块被配置为使用实时传输协议(RTP)来流式传输所述媒体项目。
27.根据权利要求16所述的第一无线计算设备,其中,所述WFD连接包括第一WFD连接,其中,所述WFD模块还被配置为:
经由第二WFD连接向所述无线客户端计算设备传输关于所述播放列表和所述播放列表的媒体项目中的至少一个的WFD数据;以及
经由所述第二WFD连接从所述无线客户端计算设备接收用户输入反向信道(UIBC)输入命令。
28.根据权利要求27所述的第一无线计算设备,其中,所述WFD模块还被配置为:
响应于从所述无线客户端计算设备接收到所述UIBC输入命令来终止所述第二WFD连接。
29.根据权利要求16所述的第一无线计算设备,其中,为了执行使得所述第一无线计算设备能够与所述无线客户端计算设备共享所述播放列表的所述媒体项目的所述媒体共享应用,所述媒体共享模块还被配置为:
向所述无线客户端计算设备传输所述播放列表。
30.根据权利要求16所述的第一无线计算设备,其中,所述第二无线计算设备和所述无线客户端计算设备是同一个设备。
31.一种第一无线计算设备,包括:
用于发起与第二无线计算设备的WI-FI显示(WFD)连接的单元;
用于经由所述WFD连接向所述第二无线计算设备传输数据的单元;
用于与无线客户端计算设备建立无线通信信道的单元;
用于执行媒体共享应用的单元,所述媒体共享应用使得所述第一无线计算设备能够跨越所述无线通信信道来与所述无线客户端计算设备共享播放列表的媒体项目;
用于经由所述无线通信信道向所述无线客户端计算设备传输所述播放列表的单元,其中,所述播放列表包括所述播放列表的属性和描述所述播放列表的所述媒体项目的信息,并且其中,所述播放列表使得所述无线客户端计算设备确定所述无线客户端计算设备是否能够输出所述媒体项目;以及
用于经由所述无线通信信道向所述无线客户端计算设备传输所述媒体项目的单元。

说明书全文

具有多屏幕服务的无线显示器

[0001] 本申请要求于2012年1月6日递交的美国临时申请号61/583,987的权益以及于2012年2月16日递交的美国临时申请号61/599,564的权益,通过引用将其全部内容并入本文。

技术领域

[0002] 本公开内容涉及用于在无线源设备和其它无线设备之间传输数据的技术,并且更具体地,涉及从无线源设备向无线宿设备和无线客户端设备的媒体数据传输。

背景技术

[0003] 无线显示(WD)或Wi-Fi显示(WFD)系统包括无线源设备以及一个或多个无线宿设备。源设备和各个宿设备可以是具有无线通信能的移动设备或有线设备。宿设备和源设备中的一个或多个可以例如包括移动电话、具有无线通信卡的便携式计算机、个人数字助理(PDA)、便携式媒体播放器,或具有无线通信能力的其它这种设备,包括所谓的“智能”手机和“智能”平板或平板电脑,或其它类型的无线通信设备。宿设备和源设备中的一个或多个还可以包括有线设备,例如包括通信能力的电视机、台式计算机、显示器、投影仪等。
[0004] 源设备向参与特定媒体共享会话的一个或多个宿设备发送媒体数据,例如音频视频(AV)数据。可以在源设备的本地显示器上和在宿设备的每个显示器上回放所述媒体数据。更具体地,每个参与的宿设备将接收到的媒体数据展示在其屏幕和音频设备上。
[0005] 服务器计算设备还可以使用各种媒体共享协议向客户端设备提供媒体项目。客户端设备可以向服务器计算设备发出回放命令。响应于接收到回放命令,服务器可以例如使用流式传输向客户端设备传输媒体项目。发明内容
[0006] 本公开内容总体上描述一种系统,其中被配置为无线源设备的第一无线计算设备可以与被配置为无线宿设备的第二无线计算设备以及无线客户端计算设备通信。作为通信会话的一部分,所述无线源设备可以向无线宿设备传输音频和视频数据,并且所述无线宿设备可以把在所述无线宿设备处接收到的用户输入传输回无线源设备。无线源设备还可以执行媒体共享应用,所述应用使得能够在第一无线计算设备与无线客户端计算设备之间共享媒体项目的播放列表。无线客户端计算设备可以确定所述无线客户端计算设备能够输出哪些媒体项目。第一无线计算设备可以从无线客户端计算设备接收媒体回放命令,并且可以响应于所述回放命令来向无线客户端计算设备传输媒体项目。
[0007] 在一个例子中,本公开内容描述一种向第二无线计算设备传输第一无线计算设备的内容的方法,所述方法包括:利用第一无线计算设备来发起WI-FI显示(WFD)连接;利用第一无线计算设备,经由WFD连接从所述第一无线计算设备向第二无线计算设备传输数据;利用第一无线计算设备来执行媒体共享应用,所述媒体共享应用使得第一无线计算设备与无线客户端计算设备能够共享播放列表的媒体项目;利用第一无线计算设备向无线客户端计算设备传输描述所述播放列表的媒体项目的信息,其中,传输描述媒体项目的所述信息使得无线客户端计算设备确定所述无线客户端计算设备是否能够输出所述媒体项目;以及利用第一无线计算设备向无线客户端计算设备传输所述媒体项目。
[0008] 在另一个例子中,本公开内容描述一种第一无线计算设备,其包括:WI-FI显示(WFD)模,被配置为发起与第二无线计算设备的WI-FI显示(WFD)连接,并且经由WFD连接从第一无线计算设备向第二无线计算设备传输数据;媒体共享模块,被配置为:执行媒体共享应用,所述媒体共享应用使得第一无线计算设备能够与无线客户端计算设备共享播放列表的媒体项目;向无线客户端计算设备传输描述播放列表的媒体项目的信息,其中对描述媒体项目的信息的传输使得无线客户端计算设备确定所述无线客户端计算设备是否能够输出所述媒体项目,以及向无线客户端计算设备传输所述媒体项目。
[0009] 在另一个例子中,本公开内容描述一种第一无线计算设备,其包括:用于发起与第二无线计算设备的WI-FI显示(WFD)连接的单元;用于经由WFD连接向第二无线计算设备传输数据的单元;用于执行媒体共享应用的单元,所述媒体共享应用使得第一无线计算设备能够与无线客户端计算设备共享播放列表的媒体项目;用于向无线客户端计算设备传输描述播放列表的媒体项目的信息的单元,其中所述用于传输描述媒体项目的信息的单元使得无线客户端计算设备确定所述无线客户端计算设备是否能够输出所述媒体项目;以及用于向无线客户端计算设备传输所述媒体项目的单元。
[0010] 在另一个例子中,本公开内容描述一种计算机可读存储介质。所述计算机可读存储介质具有存储在其上的指令,在执行所述指令时使得一个或多个处理器:发起与第二无线计算设备的WI-FI显示(WFD)连接;经由WFD连接从第一无线计算设备向第二无线计算设备传输数据;执行媒体共享应用,所述媒体共享应用使得第一无线计算设备能够与无线客户端计算设备共享播放列表的媒体项目;向无线客户端计算设备传输描述播放列表中的媒体项目的格式的信息,其中对描述媒体项目的信息的传输使得无线客户端计算设备确定所述无线客户端计算设备是否能够输出所述媒体项目;以及向无线客户端计算设备传输所述媒体项目。附图说明
[0011] 图1A是说明了可以实现本公开内容的技术的系统的例子的框图,所述系统包括源/服务器设备和宿设备系统。
[0012] 图1B是说明了包括源设备和客户端设备的系统的例子的框图。
[0013] 图1C是说明了包括源设备、宿设备和客户端设备的系统的例子的框图。
[0014] 图2A是说明了媒体项目的播放列表的概念图
[0015] 图2B是说明了包括媒体项目的播放列表的概念图。
[0016] 图2C和图2D是说明了与媒体项目相关联的属性和值的两个例子的概念图。
[0017] 图3是说明了通信参考模型的例子的概念图。
[0018] 图4是说明了源设备的例子的框图,所述源设备可以实现向宿设备传输视频和/或应用数据的技术。
[0019] 图5是说明了宿设备的例子的框图,所述宿设备可以实现用于从源设备接收视频和/或其它信息的技术。
[0020] 图6是说明了可以实现本公开内容的技术的发射机系统和接收机系统的框图。
[0021] 图7A和图7B示出了用于执行WI-FI显示(WFD)能力协商的示例性消息传送序列。
[0022] 图8是说明了根据本公开内容的技术执行WFD和传输媒体项目的方法的流程图

具体实施方式

[0023] WI-FI显示(WFD)可以用于各种应用,以支持无线地传输内容。举例而言,可以使用移动设备(被称为“源”)以无线地从移动计算设备(诸如手机、平板、智能电话或便携式数字助理(PDA))向能够使用WFD的其它设备(称为“宿”和“客户端”)发送视频内容或其它应用数据。所述宿的一个或多个输出设备可以输出从所述源发送并且由所述宿接收的视频内容或其它应用数据。
[0024] 在本公开内容中,术语源设备通常指的是向宿设备或客户端设备传输媒体数据的设备。如将在下面更详细地描述的,术语宿设备通常指的是从源设备接收媒体数据,并同时展示与源设备的媒体内容相同的媒体内容的设备。术语客户端设备通常指的是从源设备接收媒体数据的设备,但是不同于宿设备,客户端设备不必同时展示与源设备的媒体内容相同的媒体内容。例如,源设备可以向客户端设备流式传输视频数据或音频数据,即使源设备本身不展示电影数据或音频数据。术语源设备、宿设备以及客户端设备通常指的是特定设备的操作状态。因此,一个设备能够是源设备、宿设备或客户端设备中的任何设备,并且在某些情况下甚至可以同时作为多于一个类型的设备。例如,特定设备对于一个设备来说可以是客户端设备,但对于另一个设备来说还可以是源设备。
[0025] 在一个例子中,当移动源设备的用户进入支持WI-FI通信的附近区域时,所述用户可以在所述源设备上执行媒体共享应用。媒体共享应用可以允许配备WI-FI的客户端设备的一个或多个用户来选择要观看、收听的内容和/或查看经由WI-FI流式传输在源设备上共享的媒体项目。源设备的媒体共享应用还可以使用WFD来与WFD-兼容的宿设备连接以便与所述WFD-兼容的宿设备共享所述源设备的联系人或任意其它应用数据。
[0026] 媒体共享应用可以呈现媒体项目(例如音频、视频、图片等)的一个或多个播放列表,用于流式传输到客户端设备的用户,所述客户端设备可以执行客户端应用来与媒体共享应用通信。客户端设备的用户可以从播放列表选择要播放的媒体项目。在一些例子中,客户端设备和媒体共享应用可以互相协商,并且仅示出播放列表中所述设备能够输出的媒体项目。所述客户端设备的用户可以选择一个或多个媒体项目用于回放。
[0027] 源计算设备可以使用一个或多个协议(例如通用即插即用(UPnP)的协议)来共享播放列表。客户端设备可以使用协议(例如RTSP(实时流协议))来请求播放列表的一个或多个所选择的媒体项目的流。响应于接收到对一个或多个媒体项目的请求,源设备可以使用协议(例如实时传输协议(RTP))向发出请求的客户端设备流式传输所请求的项目。
[0028] 当源设备进入足够接近以经由WIFI支持无线通信的附近区域时,所述源设备的用户可以运行媒体共享应用。该应用可以发起WFD会话,所述会话可以将移动设备配置作为WFD源。所述源设备可以通过与WFD兼容的宿设备无线地通信来连接WFD兼容的设备(被称为“宿”或“宿设备”)。WFD宿设备可以使用一些验证机制(如预共享密钥或证书系统)来确保所述宿设备的用户是被授权与所述宿设备连接的。
[0029] 源设备、客户端设备和宿设备可以包括例如DVD播放器、电视机、MP3播放器、膝上型计算机、平板电脑、上网本的设备和/或能使用WI-FI的其它设备。在一些例子中,客户端设备和/或宿设备可以集成到汽车中。在其它例子中,客户端设备和/或宿设备可以属于用户,并且可以是便携式的。
[0030] 在一个示例性用户环境中,智能手机可以操作作为无线源设备并且向汽车中的乘客传输媒体数据。汽车可以例如包括仪表板或控制板中的无线宿设备,所述宿设备允许驾驶员在驾驶的时候安全地查看地图应用或其它这种内容。汽车还可以额外地包括一个或多个客户端设备。例如,后座中的客户端设备可以使后座中的乘客能够查看存储在智能手机上的电影或收听存储在智能手机上的音乐。为解释和示例的目的,可以相对于汽车内的用户环境来描述本公开内容的某些方面,但是本公开内容的技术不限于任意特定的用户环境。
[0031] 源设备和宿设备之间的WFD连接可以允许应用数据的共享。在各种例子中,应用数据可包括联系人、日程安排、存储在源设备上的音乐、导航数据,或源设备的用户可能想要访问的任意其它应用数据。除了向汽车的、能使用WFD功能的设备提供应用数据之外,源设备还可以按照WFD草案规范(目前还在发展中)来执行与宿设备的屏幕镜像(mirror)。当执行镜像时,可以将源设备的显示实时发送给宿设备,使得所述宿设备和所述源设备是同步的。
[0032] WFD镜像指的是设备在源处向宿设备传输图像数据,其中所述宿设备实时地显示所传输的图像数据。除了在源和宿之间传输图像数据之外,WFD还允许源设备向宿设备传送输入命令,并且所述宿设备如以下所述使用用户输入反向信道(UIBC)从所述宿设备向所述源传输输入命令。在一个例子中,宿设备还可以经由WFD接收媒体项目的播放列表。宿设备可以向所述源设备接收发送选择了用于回放的媒体项目的用户输入命令。响应于接收到所述媒体命令,源设备可以向宿设备传输所请求的媒体项目。
[0033] 在本公开内容的上下文中,WFD宿设备可以包括一个或多个处理器、内存、一个或多个存储设备、输入和/或输出设备、能够进行WI-FI通信的无线模块。如上所述,当源设备连接到宿设备时,宿设备可以显示源设备的界面。在其中宿设备包括汽车的设备并且源设备包括所述汽车的驾驶员的设备的例子中,相比所述源设备所述宿设备可以包括较大的屏幕。这反过来,从安全度而言对驾驶员可能是有利的。通过将汽车的内置输出设备用作无线宿设备,驾驶员可以避免不得不将视线从路上移开以查看源设备的显示。
[0034] 在各种例子中,宿设备的用户可以向源设备发出用户输入命令。在一些例子中,输入命令可以包括鼠标点击、滚动操作、键盘输入、或任何其它类型的用户输入。宿的输入设备可以包括在一些例子中例如经由蓝牙的触摸屏和/或语音命令系统。
[0035] 响应于接收到用户输入,宿设备可以经由源和宿之间的数据连接的UIBC将用户输入传输回源设备。响应于从宿设备接收到用户输入,源设备可以接受所述用户输入并采取行动,例如滚动、接受鼠标和/或键盘输入,或响应于语音命令而行动。
[0036] 在汽车用户环境中,驾驶员可以以各种方式使用宿设备,以便与源设备的内容交互。在各种例子中,用户可以与宿设备交互,并且所述交互可能引起源设备拨打电话、访问联系人信息、改变音乐选择、访问日程表和/或调度数据、接入互联网、访问导航数据和/或服务,或者执行其它动作。另外,在一些例子中,可以将源设备的各种输入和输出重定向到连接到宿设备的各种设备。例如,如果驾驶员正在进行电话呼叫,则驾驶员可以对着可以连接到宿设备的一个或多个话筒讲话,以便于容易地进行电话呼叫。另外,所述电话呼叫的音频可以通过车辆的、连接到宿设备的扬声器从源设备重定向来为驾驶员提供更好的音频呼叫质量和易听性。
[0037] 如上文所述,客户端设备的用户还可以经由媒体共享应用来访问源设备的内容。在例子中,在客户端设备的用户(例如,后座乘客)可以访问源设备上的内容之前,源设备的用户(例如驾驶员)可以设置针对客户端设备的用户的播放列表。播放列表可以包括客户端设备的用户可从中选择观看和/或收听的各种媒体。播放列表可以例如包括各种压缩的视频文件、音频文件、图像或可以由客户端设备的输出设备显示的任意其它内容。多个输出设备,例如配备有WI-FI的多个客户端设备能够同时连接到源设备的媒体共享应用,并且源设备可以向每个客户端设备传输多个同时的媒体流。以这种方式,客户端设备的每个用户能够根据每个用户的偏好同时访问不同的媒体项目。
[0038] 使用客户端设备的一个或多个输入和输出设备,例如触摸屏显示器、鼠标、键盘等,无线客户端设备的用户可以经由WI-FI连接到运行在源设备上的媒体共享应用。在一些例子中,可以使用WI-FI直连来建立WI-FI连接。在另一个例子中,汽车可以提供源设备和客户端设备可以连接到的无线网络,并且在所述网络上,可以向源设备和客户端设备传送数据和从源设备和客户端设备传送数据。在一些例子中,客户端设备可以包括WI-FI模块、处理器、内存、存储器,以及可以允许用户从源设备的播放列表中选择媒体的一个或多个额外的输入设备。
[0039] 一旦客户端设备的用户从播放列表选择了一个或多个媒体项目,则源设备可以开始经由WI-FI连接向客户端设备流式传输所选择的媒体项目。在所述媒体项目已完成播放之后,可以向输出设备流式传输播放列表中的下一个媒体项目,直到完成播放列表。在一些例子中,客户端设备的用户可以利用使用客户端设备的用户输入来从源设备的媒体服务器选择不同媒体项目。用户还可以执行额外的回放命令,例如“开始”、“停止”、“快进”等,以控制客户端设备上的媒体的回放。
[0040] 图1A是说明了可以实现本公开内容的技术的示例性系统100的框图。如图1A所示,系统100包括经由通信信道150与宿设备160通信的源设备120。源设备120可以包括例如上网本、平板电脑、智能电话、PDA或者能够支持WFD的任意类似的移动设备的设备。源设备120可以包括存储音频/视频(A/V)数据的内存121、显示器122、扬声器123、音频/视频编码器124(也被称为编码器124)、音频/视频控制模块125和发射机/接收机(TX/RX)单元126。宿设备160可以包括显示器162、扬声器163、音频/视频解码器164(也被称为解码器164)、发射机/接收机单元166、用户输入(UI)设备167和用户输入处理模块(UIPM)168。所说明的组件仅构成了用于系统100的一个示例性配置。与所说明的配置相比,其它配置可以包括较少的组件,或者可以包括额外的组件。
[0041] 在图1A的例子中,源设备120可以在显示器122上显示音频/视频数据121的视频部分,并且可以在扬声器123上输出音频/视频数据121的音频部分。音频/视频数据121可以本地地存储在源设备120上,由例如文件服务器、蓝光光盘或DVD的外部存储介质来访问。在一些情况下,可以经由源设备120的摄像头和话筒来实时地获取音频/视频数据121,从而可以经由汽车的音频系统来获取或者重放手机音频或视频。音频/视频数据121可以包括例如电影、电视节目或音乐等多媒体内容,还可以包括由源设备120生成的实时内容。这种实时内容可以例如由源设备120上运行的应用产生。正如将更详细地描述的,在一些情况下,在一些例子中,这种实时内容可以包括可供用户选择的用户输入选项的视频。在一些情况下,音频/视频数据121可以包括不同类型的内容的组合的视频帧,例如具有覆盖在视频帧上的用户输入选项的电影或电视节目的视频帧。
[0042] 除了经由显示器122和扬声器123来本地地展示音频/视频数据121,源设备120的音频/视频编码器124可以对音频/视频数据121编码,并且发射机/接收机单元126可以在通信信道150上向宿设备160传输经编码的数据。宿设备160可以包括一设备,所述设备包括安装在汽车上方便与驾驶员交互的位置处的触摸屏显示器。驾驶员宿设备160的发射机/接收机单元166接收经编码的数据,并且音频/视频解码器164解码所述经编码的数据,并经由显示器162和扬声器163输出所述经解码的数据。以这种方式,由显示器122和扬声器123展示的音频和视频数据可以由显示器162和扬声器163同步地展示。可以将音频数据和视频数据布置在帧中,并且在展示时,音频帧与视频帧可以是时间同步的。
[0043] 音频/视频编码器124和音频/视频解码器164可以实现任何数量的音频和视频压缩标准,例如ITU-T H.264标准(或者被称为MPEG-4第10部分,改进的视频编码(AVC))或新出现的高效率视频编码(HEVC)标准(有时被称为H.265标准)。一般来说,音频/视频解码器164被配置为执行与音频/视频编码器124的编码操作相反的操作。虽然未在图1A中示出,但在一些方面中,A/V编码器124和A/V解码器164中的每个可以与音频编码器和解码器集成,并且可以包括适当的MUX-DEMUX单元或其它的硬件软件,以处理在共同数据流或分别的数据流中的音频和视频的编码。
[0044] 正如将在下面更详细地描述的,除了实现如上所述的视频压缩标准,A/V编码器124还可以执行其它的编码功能。例如,在向宿设备160传输A/V数据121之前,A/V编码器124可以向A/V数据121添加各种类型的元数据。在某些情况下,A/V数据121可以以经编码的形式存储在源设备120上或在源设备120处接收到经编码形式的A/V数据121,从而A/V数据121不需要A/V编码器124的进一步压缩。
[0045] 尽管图1A示出了分别携带音频有效载荷数据和视频有效载荷数据的通信信道150,但是应当理解,在某些情况下,视频有效载荷数据和音频有效负载数据可以是共同数据流的一部分。如果适用的话,则MUX-DEMUX单元可以遵守ITU H.223多路复用器协议,或者其它协议,例如用户数据报协议(UDP)。音频/视频编码器124和音频/视频解码器164中的每个可以实现为一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程阵列(FPGA)、离散逻辑、软件、硬件、固件或其任意组合。音频/视频编码器124和音频/视频解码器164中的每个可以包括在一个或多个编码器或者解码器中,音频/视频编码器124和音频/视频解码器164中的任何一个可以集成为组合的编码器/解码器(CODEC)的一部分。
[0046] 显示器122和显示器162可以包括任意各种视频输出设备,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或其它类型的显示设备。扬声器123可以包括任意各种音频输出设备,例如机、单扬声器系统、多扬声器系统或环绕声系统。另外,尽管显示器122和扬声器123被示出为源设备120的一部分并且显示器162和扬声器163被示出为宿设备160的一部分,但是源设备120和宿设备160实际上可以是设备的系统。举一个例子,显示器162可以是电视机,扬声器163可以是环绕声系统,而解码器164可以是有线地或无线地连接到显示器162和扬声器163的外部盒子的一部分。在其它情况下,宿设备160可以是单个设备,诸如平板计算机或智能手机。在又一些情况下,驾驶员设备
160和宿设备120是类似的设备,例如,同为智能电话、平板计算机或类似物。在这种情况下,一个设备可以操作作为源,而另一个可以操作作为宿。这些名单甚至可以在随后的通信会话中被颠倒。
[0047] 发射机/接收机单元126和发射机/接收机单元166均可以包括各种混频器滤波器放大器和设计用于信号调制的其它组件,以及一个或多个天线和设计用于发送和接收数据的其它组件。通信信道150一般表示用于从源设备120向宿设备160传输视频数据的任何适当的通信介质或不同通信介质的集合。通信信道150通常是相对短距离的通信信道,类似于WIFI、蓝牙(BLUETOOTH)等。然而,通信信道150不必受限于这方面,并且可以包括任意无线的或有线的通信介质,例如射频(RF)频谱或者一个或多个物理传输线,或无线的与有线的介质的任意组合。在其它例子中,通信信道150甚至可以形成基于分组的网络的一部分,所述基于分组的网络例如有线的或无线的局域网、广域网或全球网络(如互联网)。另外,通信信道150可以由源设备120和宿设备160使用以创建对等链路。源设备120和宿设备160可以使用诸如来自IEEE 802.11标准族的标准的通信协议来在通信信道150上通信。有时相对于WI-FI描述本公开内容的技术,但可以预期的是,这些技术的方面还可以与其它通信协议兼容。
[0048] 此外,除了解码并展示从源设备120接收到的数据,宿设备160还可以从用户输入设备167接收用户输入。用户输入设备167可以例如是键盘、鼠标、轨迹球或触控板、触摸屏、语音命令识别模块,或任意其它这种用户输入设备。UIPM 168将由用户输入设备167接收到的用户输入命令格式化为源设备120能够解释的数据包结构。发射机/接收机166在通信通道150上向源设备120传输这种数据包。发射机/接收机单元126接收所述数据包,并且A/V控制模块125解析所述数据包以解释由用户输入设备167接收到的用户输入命令。
[0049] 另外,宿设备160的用户(例如乘客或驾驶员)能够运行和控制源设备120上的应用。例如,宿设备160的用户能够运行存储在源设备120上的照片编辑或导航应用,并且使用所述应用来编辑本地存储在源设备120上的照片。宿设备160可以呈现给用户看起来并且感觉起来像是所述照片在宿设备160上被本地地编辑的用户体验,而实际上所述照片是在源设备120上被编辑的。使用这种结构,设备用户能够利用一个设备的能力来与多个设备一起使用。例如,源设备120可以是具有大量的存储和高端处理能力的智能电话,并且源设备120的用户可以在典型地使用智能电话的所有设置和情况中使用所述智能电话。在观看电影时,用户可能希望在具有更大的显示屏幕的设备上观看电影,在这种情况下,宿设备160可以是平板计算机。当想要发送或回复电子邮件时,用户可能希望使用具有键盘的设备,在这种情况下,宿设备160可以是膝上型计算机。在这两种情况下,即使用户正在与平板计算机或膝上型计算机交互,大量的处理仍然由源设备120(在本例子中的智能电话)执行。由于大量的处理由源设备120执行,因此相比于如果宿设备160被要求进行由源设备120所进行的处理,宿设备160可以是具有较少资源的低耗设备。
[0050] 在一些配置中,A/V控制模块125可以是由源设备120的操作系统执行的操作系统进程。然而,在其它配置中,A/V控制模块125可以是在源设备120上运行的应用的软件进程。在一个例子中,A/V控制模块125可以包括能够进行WIFI媒体流式传输的媒体服务器和WFD模块。在这种配置中,软件进程可以解释用户输入命令,以使得宿设备160的用户直接与运行在源设备120上的应用交互,而不是与运行在源设备120上的操作系统交互。通过直接与应用交互而不是与操作系统交互,宿设备160的用户可以访问对源设备120的操作系统来说非本地的命令库。另外,直接与应用交互可以使运行在不同的平台上的设备能够更容易地传输和处理命令。
[0051] 源设备120可以响应于施加在无线宿设备160处的用户输入。在这种交互式应用设置中,可以将施加在无线宿设备160处的用户输入在通信信道150上发送回无线显示源。在一个例子中,可以实现还被称为用户接口反向信道(UIBC)的反向信道架构,以使宿设备160能够向源设备120传输施加在宿设备160处的用户输入。反向信道架构可以包括用于传输用户输入的上层消息和用于协商宿设备160与源设备120处的用户界面能力的下层帧。UIBC可以驻留在宿设备160和源设备120之间的互联网协议(IP)传输层之上。以这种方式,UIBC可以在开放系统互连(OSI)通信模型的传输层之上。在一个例子中,OSI通信包括7层(1-物理层、2-数据链路层、3-网络层、4-传输层、5-会话层、6-呈现层和7-应用层)。在这个例子中,在传输层之上指的是层5、6和7。为了促进对包含用户输入数据的数据包的可靠的传输和顺序递送,UIBC可以被配置为运行在例如传输控制协议/互联网协议(TCP/IP)或用户数据报协议(UDP)之类的其它基于包的通信协议的顶部。
[0052] 在一些情况下,位于源设备120和宿设备160处的用户输入界面之间可能存在失配。为了解决由这种失配产生的潜在问题,并促进在这种情况下良好的用户体验,用户输入界面能力协商可以在建立通信会话之前在源设备120和宿设备160之间发生。
[0053] UIBC可以被设计成传输各种类型的用户输入数据,包括跨平台的用户输入数据。例如,源设备120可以运行 操作系统,而宿设备160运行另一种操作系统,例如或 不考虑平台,UIPM 168可以将接收到的用户输入封装成A/V控
制模块125可以理解的形式。UIBC可以支持数个不同类型的用户输入格式,从而允许许多不同类型的源和汽车宿设备来利用所述协议。可以定义通用的输入格式,并且可以支持平台特定的输入格式,从而提供了由UIBC在源设备120和宿设备160之间对用户输入进行传送的方式的灵活性。
[0054] 在一个例子中,宿设备160可以建立与源设备120的WFD连接而源设备120可以向宿设备160传输描述播放列表的一个或多个媒体项目的信息。在下文中例如相对于图2A-2D来更详细地描述播放列表和媒体项目。宿设备160可以确定所述宿设备160能够输出哪些媒体项目。宿设备160可以输出播放列表,以及接收对一个或多个媒体项目的用户输入选择。宿设备160可以向源设备120传输对媒体项目的选择,所述源设备120可以向宿设备120传输(例如,流式传输)所选择的媒体项目。
[0055] 在图1A的例子中,源设备120可以包括智能电话、平板计算机、膝上型计算机、台式计算机、能够使用WI-FI的电视机或者能够传输音频和视频数据的任意其它设备。宿设备160同样可以包括智能电话、平板计算机、膝上型计算机、台式计算机、能够使用WI-FI的电视机或能够接收音频和视频数据以及接收用户输入数据的任意其它设备。在一些情况下,宿设备160可以包括设备系统,从而所有这些部分:显示器162、扬声器163、UI设备167、和A/V编码器164是分开的,但是却是互相操作的设备。源设备120同样可以是设备系统,而不是单个设备。
[0056] 对于本公开内容,术语源设备通常用于指代正传输音频/视频数据的设备,而术语宿设备通常用来指代正从所述源设备接收音频/视频数据的设备。在许多情况下,源设备120和宿设备160可以是相似或相同的设备,其中一个设备操作作为源而另一个则操作作为宿。另外,在不同的通信会话中,这些名单(roll)可以被颠倒。因此,一个通信会话中的宿设备可以是后续的通信会话中的源设备,或反之亦然。
[0057] 图1B是说明了可以实现本公开内容的技术的系统的例子的框图,所述系统包括源设备和客户端设备。在图1B的系统中,源设备120可以经由通信信道152与客户端设备180通信。客户端设备180和宿设备160可以是相同的设备或者可以是不同的设备。通信信道152可以包括类似于WI-FI等的无线通信信道。源设备120可以使用一个或多个协议(例如UPnP协议集、UDP、RTSP和/或RTP)在通信信道152上与客户端设备180通信。在一些例子中,使用UPnP、UDP、RTSP和/或RTP从源设备120向客户端设备180流式传输数据可以允许源设备120和客户端设备180以降低的功耗来传输内容项目,并且相对于使用不同的协议(例如WFD)来传输所述媒体项目,可能需要较少的计算复杂度。
[0058] 源设备120可以与一个或多个设备(如客户端设备180)共享一个或多个可用的播放列表。源设备120还可以向客户端设备180传输描述播放列表中的至少一个媒体项目的信息。所述信息的传输可以使得客户端设备180确定无线客户端设备180是否能够输出所述至少一个媒体项目。客户端设备180的用户可以从驾驶员源设备180请求一个或多个播放列表中的一个或多个媒体项目。响应于接收到对所述一个或多个媒体项目的请求,源设备120可以向客户端设备180流式传输或发送所请求的媒体项目,并且客户端设备180可以在例如显示器182和/或扬声器183的输出设备上输出所请求的媒体项目。
[0059] 图1B中的源设备120可以与图1A中的驾驶员源120相同。源设备120可以包括显示器122、音频视频数据121、扬声器123、音频/视频控制125、音频/视频编码器124和发送/接收单元126。客户端设备180可以与图1A中的宿设备160类似或相同。客户端设备180可以包括音频/视频解码器184、显示器182、扬声器183、用户输入设备187和发送/接收单元186。
[0060] 音频/视频控制单元125可以被配置为使用源设备120的一个或多个处理器来执行媒体共享应用128。在一些例子中,媒体应用128可以是操作系统的一部分或者是源设备120的独立应用。媒体共享应用128可以确定要与客户端计算设备(例如,客户端计算设备180)共享的一个或多个播放列表。播放列表的媒体项目可以存储在本地存储设备上,所述本地存储设备包括连接到源设备120的硬盘驱动器、闪存和/或外围设备。另外,源设备120可以远程地访问播放列表的媒体项目。这种远程可访问的例子可以包括存储在上的媒体项目、存储在文件服务器上的流式视频或媒体项目。
[0061] 响应于驾驶员源设备的用户运行媒体共享应用128,媒体共享应用128可以向一个或多个客户端设备(如客户端设备180)广播播放列表。在一些例子中,媒体共享应用128可以使用UPnP协议集合中的一个或多个协议来广播所述播放列表。尽管相对于UPnP进行描述,但是媒体共享应用128可以使用与无线通信协议兼容的任意机制来向客户端设备(例如客户端设备180)广播所述播放列表。源设备120可以使用简单服务发现协议(SSDP)来公告其服务(即,驾驶员源设备使用RTSP和RTP来提供流式传输服务),所述SSDP是规定了网络上设备的服务发现的、UPnP的协议。将SSDP用作发现协议仅是一个例子,并且应被认为是非限制性的。其它协议和协议集(例如通用数据报协议(UDP)、BONJOUR、服务定位协议(SLP)、Web服务动态发现(WS-Discovery)、以及零配置网络(zeroconf))还可以使客户端设备能够发现由源设备120提供的流式服务。在源设备120使用UDP来传输播放列表的例子中,源设备120可以使用特定的端口、广播地址或公知的多播地址来传输播放列表,使得一个或多个客户端设备(如客户端设备180)可以收听由源设备120传输的播放列表。
[0062] 客户端设备180可以类似于图1B中的宿设备160,并且可以包括移动计算设备,例如平板电脑、PDA、膝上型计算机、上网本、DVD播放器或其它计算设备。客户端设备180的用户可以运行客户端应用185。客户端应用185可以经由通信信道152从媒体共享应用128接收一个或多个公告。响应于接收到所述公告,媒体共享应用128可以解析所述公告消息,并且确定媒体共享应用128所提供的服务。在一些例子中,客户端设备180可以确定媒体共享应用128例如使用RTSP和/或RTP来提供媒体流式传输能力和播放列表共享能力。
[0063] 由客户端应用185接收的服务公告还可以包括媒体项目的一个或多个播放列表,或到包含了媒体项目的一个或多个播放列表的资源位置的链路(例如URL、网络路径等)。如果到播放列表的链路包括在服务公告中,则客户端应用185可以从所述位置检索由媒体共享应用128共享的播放列表。
[0064] 所述一个或多个播放列表中的每个播放列表可以包含可以从驾驶员设备120向客户端设备180流式传输的一个或多个媒体项目的列表。每个播放列表还可以包括用户标识符,其可以用于限制一个或多个用户对特定的播放列表的访问。每个播放列表可以包括针对所述一个或多个媒体项目中的每个媒体项目的一个或多个特性。所述特性通常可以包括信息,例如,举一些例子来说,针对每个媒体项目的名称、长度、分辨率帧速率、配置文件等级、比特率、和/或文件格式。下面相对于图2A-2D来更详细地描述播放列表和媒体项目的特性。
[0065] 在接收到一个或多个播放列表后,客户端应用185可以向具有显示器182的客户端设备180的用户输出所述播放列表。显示器182可以包括多种视频输出设备中的任意一种,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或其它类型的显示设备。客户端设备180可以从用户输入设备187接收对播放列表其中之一进行选择的用户输入。用户输入设备187可以例如是键盘、鼠标、轨迹球或触控板、触摸屏、语音命令识别模块或任意其它这种用户输入设备。
[0066] 响应于接收到播放列表,客户端应用185可以确定客户端设备180能够输出播放列表中的哪个媒体项目,并且使用显示器182向客户端设备180的用户呈现能够由客户端设备180输出的媒体项目。为了确定客户端设备180能够播放哪些媒体项目,客户端应用185可以向操作系统询问客户端设备180已经安装的编码解码器、数字版权管理(DRM)能力和/或硬件能力,并将客户端设备180的能力与包括在播放列表中的属性信息和播放列表的媒体项目作比较。
[0067] 客户端应用185可以使用显示器182来显示来自客户端设备180能够向客户端设备180的用户播放的、所选择的播放列表中的媒体项目。客户端设备180的用户可以从播放列表选择一个或多个媒体项目用于使用用户输入设备187来回放。响应于接收到对一个或多个媒体项目的选择,客户端应用185可以使得发送/接收单元186创建对所选择的媒体项目的其中之一的回放请求。在一些例子中,回放请求可以是源设备120对所选择的媒体项目进行播放、暂停、停止、记录等的请求。发送/接收单元186可以在通信信道152上向发送/接收单元126发送对所选择的媒体项目的请求。
[0068] 如果客户端设备180的用户从播放列表中选择多个媒体项目,则客户端应用185可以发出对所选择的媒体项目中的第一媒体项目的回放请求,并且可以将针对所选择的媒体项目中的剩余媒体项目的请求进行排队,使得一旦所述第一媒体项目的回放完成,客户端应用185请求排队的媒体项目中的一个用于回放、流式传输所请求的媒体项目,并且重复所述请求和流式传输排队的媒体项目的过程,直到已经请求了并且流式传输了所有排队的媒体项目。
[0069] 在一个例子中,客户端设备180可以使用WFD连接与源设备120连接。客户端设备180可以接收显示信息(例如,图形表示),所述显示信息在由客户端设备180展示时说明了播放列表,所述一个或多个播放列表还包含一个或多个媒体项目。客户端设备180可以使用显示器182向客户端设备180的用户输出显示信息,并且客户端设备180的用户可以使用UI 
187来选择一个或多个媒体项目用于回放。在一个例子中,客户端设备180可以使用WFD连接来接收所述播放列表,其中所述播放列表包括描述一个或多个媒体项目的信息。UI 187在UIBC上接收并且在UIBC上向源设备120发送对一个或多个媒体项目进行选择的用户输入命令。
[0070] 响应于从客户端设备180接收到对一个或多个媒体项目的请求或媒体回放命令,例如RTSP PLAY请求、UIBC用户输入命令,媒体共享应用128可以使得发送/接收单元126构造所请求的媒体项目的流。在一些例子中,发送/接收单元126可以构造用于流式传输所述媒体项目的RTP会话。发送/接收单元126可以与客户端设备180建立RTP会话并且在通信信道152上向发送/接收单元186发送所述媒体项目的流。在上面描述的、其中客户端设备180从WFD连接接收关于播放列表的信息并且使用UIBC来发送媒体项目选择的例子中,源设备120和客户端设备180可以响应于接收到选择了媒体项目和/或播放列表的UIBC输入命令来终止所述WFD连接。一旦UIBC连接终止,源设备120和客户端设备180可以继续使用RTSP和/或RTP来通信。
[0071] 在一些例子中,在将媒体项目传输到客户端设备180之前,媒体共享应用128可能需要将所选择的媒体项目转码成不同的格式。在这种情况下,媒体应用128可以利用视频/音频编码器124来将所选择的媒体格式从一种格式重新编码为另一种格式,例如从MPEG层3音频(MP3)格式重新编码为Windows媒体音频(WMA)格式。
[0072] 发送/接收单元186可以从发送/接收单元126接收所请求的媒体项目的RTP流。如果所请求的媒体项目的流的一些包乱序了,则发送/接收单元186可以将所述流重组和/或重新排序为正确的顺序。发送/接收单元186还可以确定所接收的RTP流是否存在任何问题,例如丢弃的包,并且可以从源设备120重新请求丢弃的包。
[0073] 客户端应用185可以分析所述流并且使用显示器182和扬声器183来输出所述流的音频和/或视频部分。以这种方式,由显示器182和扬声器183展示的音频和视频数据可以同时由显示器182和扬声器183展示。可以将音频数据和视频数据布置在帧中,并且在展示时,音频帧可以与视频帧是时间同步的。如果客户端应用185确定媒体项目的流需要解码,则客户端应用185可以在输出所述流之前利用音频/视频解码器184来对经编码的流进行解码。
[0074] 图1C是说明了可以实现本公开内容的技术的示例性系统101的框图。系统101包括源设备120和宿设备160,源设备120和宿设备160中的每一个可以按照上文针对图1A描述的方式来工作和操作。系统101还包括客户端设备180。如上所述,客户端设备180可以是能够无线地连接源设备120并且流式传输来自源设备120的媒体共享应用128的媒体的任意设备。宿设备160可以例如使用流式传输协议(如RTSP和/或RTP)经由WIFI从源设备120接收音频和视频数据。在一些配置中,宿设备160和客户端设备180可以互相独立地操作,并且源设备120处输出的音频和视频数据可以同步地在宿设备160和客户端设备180处输出。尽管宿设备160和客户端设备180被说明为分开的设备,但它们可以是同一个设备。虽然系统101被说明为仅具有单个客户端设备180,但这仅是一个例子,而不应是限制性的。类似于客户端设备180的额外设备还可以存在于系统101中。
[0075] 图2A是说明了根据本公开内容的技术的媒体项目的播放列表的概念图。图2A说明了三个示例性播放列表:播放列表200、202和204。所述播放列表中的每个播放列表可以包括如上文在图1A-1C的例子中所描述的媒体项目的播放列表。播放列表200、202和204还可以包括描述相关联的播放列表的特性的一个或多个相关联的属性。播放列表200、202和204中的每个播放列表可以包括一个或多个媒体项目,例如音频、视频和图片媒体项目。所述媒体项目还可以包括描述所述媒体项目的特性的属性或元数据。
[0076] 播放列表200、202和204的一个或多个属性中的每个属性一般可以具有标识符。所述标识符可以与一个或多个值的列表相关联。举例而言,播放列表200、202、204可以包括“数量”属性。所述数量属性可以指示与每个播放列表相关联的、客户端设备可以从源设备120向客户端设备180流式传输的媒体项目的数量。再举一个例子,播放列表200、202、204还可以包括“用户”属性。用户属性可以与一个或多个用户的列表、用户组和/或被允许流式传输与特定播放列表相关联的媒体项目的设备相关联。
[0077] 在一些例子中,与访问属性相关联的值可以包括被允许流式传输播放列表的媒体项目的特定用户的用户名。举例而言,在图2A中,播放列表200可以包括用户名“Jessie”和“Bob”,这指示播放列表200对于用户“Jessie”和“Bob”应该是可访问的。在一些其它例子中,与访问属性相关联的值可以包括设备的标识符。例如,设备标识符可以包括IP地址、机器访问控制(MAC)地址或标识特定设备的其它硬件。在一些其它例子中,访问属性可以包括对应于一个或多个用户的组的组标识符。
[0078] 媒体共享应用128可以通过将客户端设备提供的硬件标识符(例如,MAC地址)与媒体共享应用128作比较来验证使用硬件标识符来标识的客户端设备。在图2A的例子中,播放列表202的用户属性与MAC地址(“BF:54:51:7E:30:B6”)相关联。媒体共享应用128可以将客户端设备(例如客户端设备180)的MAC地址和与播放列表202相关联的MAC地址作比较。如果所提供的标识符匹配了与用户属性相关联的标识符(例如MAC地址)中的一个,则媒体共享应用128可以准许对客户端设备180的访问。
[0079] 媒体共享应用128可以使用各种不同的验证机制来验证客户端设备(例如客户端设备180)的用户。在一些例子中,客户端应用128可以从客户端设备180请求验证信息,例如用户名和密码。响应于接收到来自客户端设备180的用户名和密码,媒体共享应用128可以将接收到的用户名和密码和与用户属性相关联的用户名作比较。在例子中,播放列表200的用户属性包括相关联的用户“Jessie”和“Bob”。媒体共享应用128可以从客户端应用185请求用户名和密码,并且可以接收包括用户名“Bob”以及针对用户Bob的密码的响应。媒体共享应用128可以确定用户名Bob包括在用户属性中。随后媒体共享应用128可以将在本地存储的密码与客户端设备180提供的密码作比较,以确定所提供的密码与所存储的密码是否相匹配。如果所提供的密码与所存储的密码相匹配,则媒体共享应用128可以验证客户端设备180,并准许客户端设备180对播放列表200的媒体项目的访问(即允许对播放列表200的媒体项目的流式传输)。媒体共享应用128可以将用户的密码存储在数据库中或源设备120的本地存储器中。在一些例子中,媒体共享应用128可以利用验证技术(如证书系统)来验证用户或设备。在其它例子中,
[0080] 在图2A的例子中,播放列表用户204的用户属性包括标识符“成人”,这可以指示一个或多个用户的组被允许访问播放列表204的媒体项目。在这个例子中,组“成人”可以指示:对应于成年人的、排除孩子的用户的组被允许流式传输播放列表204的媒体项目。排除例如孩子的用户在以下方面可能是有用的:防止人们流式传输不适合于被排除的用户的组的内容,或将访问仅限制于应该具有对敏感的或特许的媒体项目的播放列表的访问的用户。
[0081] 尽管播放列表200、202、204的用户属性被说明为被允许访问播放列表200、202、204的媒体项目的用户或设备列表,但是特定播放列表的用户属性可以可选地包括被拒绝访问所述播放列表的媒体项目的用户和/或设备的列表。在一些例子中,播放列表可以包括被允许访问播放列表的媒体项目的用户的列表和被拒绝访问所述特定播放列表的用户的列表。
[0082] 图2B是说明了根据本公开内容的技术包括媒体项目的播放列表的概念图。图2B说明了与播放列表200相关联的媒体项目。图2B包括三个媒体项目220、222、224。媒体项目(例如播放列表200的媒体项目)可以包括可以被无线地传输的任意类型的媒体。在图2B的例子中,媒体项目220可以是视频媒体,例如H.264视频、MPEG(运动图像专家组)视频或其它视频格式。媒体项目222可以是音频媒体,例如MP3、WMA、OGG Vorbis、FLAC(自由无损音频编解码器)或其它压缩或未压缩的媒体格式。媒体项目224可以是图像文件,例如原始图像文件、JPEG(联合图像专家组)、BMP(位图)或TIFF(标签图像文件格式)图像格式或其它图像媒体格式。虽然未在图2B中说明,但是也可以将其它媒体格式(例如文档、网页和绘图媒体格式)包括作为播放列表中的媒体项目。
[0083] 图2B还呈现了示例性界面(例如客户端应用185),所述界面说明了可以向客户端设备180的用户呈现的播放列表200。响应于从一个用户输入设备187(图1、图1B)接收到用户输入,客户端设备可以请求源设备120执行关于播放列表200的一个或多个媒体项目220、222和/或224的回放命令。在一个例子中,回放命令可以包括一个或多个RTSP命令,例如播放、停止、暂停、记录等和/或其它RTSP命令或请求。尽管相对于RTSP进行描述,但是客户端设备185可以利用其它协议来控制来自源设备120的媒体回放。
[0084] 响应于接收到一个或多个回放命令,媒体共享应用128可以根据所请求的回放命令来执行动作。举例而言,如果客户端应用185向媒体共享应用128发送RTSP PLAY命令,以请求媒体共享应用128播放媒体项目200,则媒体共享应用128可以通过向客户端应用185发送对应于所请求的媒体项目202的流来进行响应。再举一个例子,如果媒体共享应用128接收到RTSP STOP命令,则媒体共享应用128可以停止流式传输当前正播放的媒体项目,例如媒体项目222。除了使用RTSP来控制媒体项目的回放之外,从源设备120向客户端设备180发送的媒体项目的流通常可以使用不同的协议(例如RTP)来流式传输实际的媒体项目,而使用RTSP来控制RTP流。
[0085] 图2C和图2D是说明了根据本公开内容的技术的、与媒体项目相关联的属性和值的两个例子的概念图。图2C和图2D说明了与媒体项目220和222相关联的某些属性和值。媒体项目220、222、224中的每个媒体项目可以具有一个或多个相关联的属性。每一个相关联的属性可以具有一个或多个相关联的值。媒体项目220、222和224的属性的格式通常可以类似于播放列表200、202、204的属性的格式,其中所述属性具有标识符,所述标识符与一个或多个值的列表相关联。
[0086] 一般而言,媒体项目可以具有文件名、文件类型、分辨率、比特率、长度和/或配置文件属性。文件名属性可以指示媒体项目的文件名或标题。文件类型属性可以指示所述媒体项目是视频、音频还是其它文件格式。在一些例子中,文件类型属性还可以指示媒体项目的更具体的信息,例如音频或视频等的特定类型(例如H.264或MP3)。
[0087] 分辨率属性可以指示媒体项目的平和垂直分辨率。源设备120和客户端设备180可以基于一个或多个媒体项目的分辨率属性来协商客户端设备180能够输出的一个或多个分辨率的集合。作为这个协商过程的一部分,源设备120和客户端设备180可以对所协商的屏幕分辨率达成协议。当客户端设备180流式传输与媒体项目相关联的数据(例如流式视频)时,源设备120可以将所述媒体项目的视频数据缩放或转码,以匹配所协商的屏幕分辨率。以这种方式,客户端设备180可以接收具有达成协议的分辨率的视频数据。通过向客户端设备180提供达成协议的分辨率的视频,客户端设备180可以不必将媒体项目的视频数据转码,而所述转码可能消耗额外的功率和/或处理周期。
[0088] 在图2C中,媒体项目220的分辨率是1920×1080像素。在一个例子中,如果客户端设备180具有1280×720的分辨率而源设备120具有1600×900的分辨率,该设备可以例如使用1280×720作为其协商的分辨率。可以基于客户端设备180的分辨率来选择协商的分辨率,尽管也可以使用源设备120的分辨率或某些其它分辨率。在使用1280×720的宿设备的例子中,客户端设备180可以在向源设备120传输所获得的x坐标之前通过1600/1280的因子来缩放所获得的x坐标,并且同样地,客户端设备180可以在向源设备120传输所获得的y坐标之前通过900/720来缩放所获得的y坐标。在其它配置中,源设备120可以将所获得的坐标缩放为所协商的分辨率。基于客户端设备180是否使用比源设备120更高分辨率的显示器,所述缩放可以增加或降低坐标范围,反之亦然。在图2D中,由于媒体项目222是不具有分辨率的MP3音频文件,所以媒体项目222的分辨率属性不具有值(N/A)。媒体项目还可以包括比特率属性,这可以指示媒体项目的流比特率。在图2C中,媒体项目220具有12兆比特/秒(12Mbit/s)的比特率。媒体项目222具有320千比特/秒(320kbit/s)的比特率。在媒体项目不具有比特率的情况下,例如在静止图像或文档的情况下,可以不存在与比特率属性相关联的值。
[0089] 媒体项目220、222还可以具有长度属性,这表示媒体项目的回放时间。媒体项目220具有1小时40分钟(1H40M)的长度。媒体项目222具有两分22秒(2M22SEC)的长度。除了长度属性,媒体项目还具有相关联的配置文件属性,这可以指示所述媒体项目的能力或编码特征。举例而言,媒体项目220的配置文件属性值的值是“主要的”,其可以对应于MPEG-4视频的特定配置文件。由于MP3媒体没有配置文件,所以媒体项目222不具有与配置文件属性相关联的值。尽管相对于图2C中的H.264视频的配置文件来描述,但是其它的配置文件值也是可能的。
[0090] 客户端应用185可以使用与播放列表200的媒体项目220、222、224相关联的属性的值,来确定客户端设备180能够播放媒体项目的子集。一旦客户端应用185确定了客户端设备180能够播放的媒体项目,则客户端应用185可以仅向客户端设备185的用户输出客户端设备185能够播放的、媒体项目的所述子集中的那些媒体项目。用户可以仅从客户端设备180能够播放的所述子集中选择用于回放的媒体项目。
[0091] 为了确定客户端设备180能够播放哪些媒体项目,客户端应用185可以询问客户端设备180以确定客户端设备180的硬件能力。客户端应用185可以询问操作系统关于RAM的量、存储空间、输出设备分辨率、声音输出能力、处理器速度、安装的库、编解码器(编码器-解码器)或关于客户端设备180上的媒体项目的回放的任意其它信息。当客户端应用185请求访问播放列表(例如播放列表200)时,客户端应用185可以将播放列表200的属性和播放列表200的媒体项目220、222、224的属性与客户端设备185的能力作比较,以确定客户端设备180能够播放哪些媒体项目。
[0092] 举例而言,客户端设备180可以具有仅能够显示1280×720像素视频分辨率的输出设备。客户端应用185可以确定媒体项目220具有1920×1080的分辨率,并且可以从客户端设备180可用于回放的播放列表200中的媒体项目排除媒体项目220。可选地,客户端应用185可以确定源设备120可以将媒体项目220的视频向下缩放至1280×720分辨率,并且可以在可用于回放的播放列表200的媒体项目中包括媒体项目220。
[0093] 在另一个例子中,客户端应用185可以确定客户端设备180和源设备120之间的通信链路152的连接速度(例如,10Mbit/s带宽)。基于连接速度,客户端应用185可以确定是否有足够的带宽来流式传输特定的媒体项目而没有过多的缓冲。由于媒体项目220具有12Mbit/s的比特率,这大于可用的10Mbit/s带宽,所以客户端应用185可以将媒体项目220从可用于回放的播放列表220中的媒体项目的列表中排除。客户端应用185可以检查媒体项目222的比特速率属性,并且由于320千比特/秒的值小于10Mbit/s带宽,因此可以在可用于回放的播放列表220中的媒体项目的列表中包括媒体项目222。
[0094] 在客户端设备180具有有限的功能的情况下,确定客户端设备180能够播放哪些媒体项目并且只向用户呈现那些能播放的媒体项目的能力可能是有用的。举例而言,在汽车设置中,客户端设备180可以是内置在汽车中的硬件(例如椅背媒体播放器),它可以不接收包括较新的编解码器或媒体配置文件的更新。这样,客户端设备180不能够显示各种各样的媒体项目,并且应当从最终向用户呈现的媒体项目的播放列表中排除客户端设备180不能够播放的媒体项目。
[0095] 可以将播放列表200、202和媒体项目220、222、和224的属性存储为各种格式。在一些例子中,属性及其相关联的值可以存储为XML(可扩展标记语言)、二进制、CSV(逗号分隔值)、HTML(超文本标记语言)、或存储记录的任意其它格式。在一些例子中,播放列表和媒体项目的属性可以存储在播放列表本身中。在一些情况下,可以基于与每个播放列表和/或媒体项目相关联的独特的标识符来索引存储在分别的数据库媒体共享应用125中的属性及其相关联的值。
[0096] 图3是说明了用于WD系统的数据通信模型或协议栈的例子的框图。数据通信模型300说明了用于在所实现的WD系统中的源设备和宿设备之间传输数据的数据协议和控制协议之间的交互。在一个例子中,WD系统100可以使用数据通信模型300。数据通信模型300包括物理层(PHY)302、媒体访问控制(MAC)层(304)、互联网协议(IP)306、用户数据报协议(UDP)308、实时协议(RTP)310、MPEG2传输流(MPEG2-TS)312、内容保护314、封包式基本流(PES)封包化(packetization)316、视频编解码器318、音频编解码器320、传输控制协议(TCP)322、实时流协议(RTSP)324、反馈封包化328、人机接口设备常数330、通用的用户输入
332、性能分析334和操作系统(OS)336。
[0097] 物理层302和MAC层304可以限定用于在WD系统中通信的物理信令、寻址和信道访问控制。物理层302和MAC层304可以限定用于通信的频带结构,例如,定义在700MHz、2.4GHz、3.6GHz、5GHz、60GHz的联邦通信委员会频带、或超宽带(UWB)频带结构。物理层302和MAC304还可以限定数据调制技术,例如模拟和数字振幅调制、频率调制、相位调制技术以及其组合。物理层302和MAC 304还可以限定复用技术,例如,时分多址(TDMA)、频分多址(FDMA)、码分多址(CDMA)、或OFDM、FDMA、TDMA和/或CDMA的任意组合。在一个例子中,物理层
302和媒体访问控制层304可以由例如WFD提供的Wi-Fi(例如,IEEE 802.11-3007和
802.11n-3009x)标准定义。在其它例子中,物理层302和媒体访问控制层304可以由以下任意项限定:无线HD、无线家庭数字接口(WHDI)、WiGig和无线USB。
[0098] 互联网协议(IP)306、用户数据报协议(UDP)308、实时协议(RTP)310、传输控制协议(TCP)322和实时流协议(RTSP)324定义了在WD系统中使用的包结构和封装,并且可以根据由互联网工程任务组(IETF)维持的标准来定义。
[0099] RTSP 324可以由源设备120和宿设备160用来协商能力、建立会话、以及会话维持和管理,以及由源设备120和宿设备160用来根据本公开内容的技术传输媒体项目。例如,源设备120可以向宿设备160发送能力请求消息(例如,RTSP GET_PARAMETER请求消息),所述能力请求消息指出了源设备120感兴趣的能力的列表。宿设备160可以用能力响应消息(例如,RTSP GET_PARAMETER响应消息)来响应源设备120,所述能力响应消息宣布了其支持所述能力的能力。举例而言,如果宿设备160支持所述能力的话,则所述能力响应消息可以指示“是”。随后源设备120可以向宿设备160发送确认请求消息(例如,RTSP SET_PARAMETER请求消息),所述确认请求消息指示支持所述能力。宿设备160可以用确认响应消息(例如,RTSP SET_PARAMETER响应消息)来响应源设备120,所述确认响应消息确认将在媒体共享会话期间使用所述能力。
[0100] 视频编解码器318可以定义由WD系统使用的视频数据编码技术。视频编解码器318可以实现任意数量的视频压缩标准,例如ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IEC MPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉、ITU-T H.264(也称为ISO/IEC MPEG-4 AVC)、VP8和高效率视频编码(HEVC)。应当指出,在某些情况下,WD系统可以是压缩的或未压缩的视频数据。
[0101] 音频编解码器320可以定义由WD系统使用的音频数据编码技术。可以使用多信道格式来编码音频数据,所述格式例如由杜比和数码影院系统开发的那些格式。可以使用压缩或非压缩格式来编码音频数据。压缩音频格式的例子包括MPEG-1、2音频层II和III、AC-3、AAC。未压缩的音频格式的例子包括:脉冲编码调制(PCM)音频格式。
[0102] 封包式基本流(PES)封包化316和MPEG2传输流(MPEG2-TS)312可以定义编码的音频和视频数据是如何被封包化和传输的。可以根据MPEG-2的第1部分来定义封包式基本流(PES)封包化316和MPEG-TS312。在其它例子中,可以根据其它封包化和传输流协议来封包化并传输音频和视频数据。内容保护314可以提供对防止音频或视频数据的未经授权的复制的保护。在一个例子中,可以根据高带宽数字内容保护2.0规范来定义内容保护314。
[0103] 图4是说明了源设备的例子的框图,所述源设备可以实现向宿设备传输视频和/或应用数据的技术。源设备400可以是集成了图3中提供的数据通信模型的、WD系统的一部分。源设备400可以被配置为编码和/或解码媒体数据以用于传输、存储和/或显示。源设备400包括内存402、显示器处理器404、本地显示器406、音频处理器408、扬声器410、视频编码器
412、视频封包器(packetizer)414、音频编码器416、音频封包器418、A/V复用器420、传输模块422、调制解调器424、控制模块426、反馈解包器428和反馈模块430。源设备400的组件可以实现为任意种类的适当电路,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任意组合。
[0104] 内存402可以存储压缩的或未压缩格式的、媒体数据形式的A/V视觉数据。内存402可以存储整个媒体数据文件,或者可以包括仅存储媒体数据文件(例如,从另一个设备或源流式传输的)的一部分的较小的缓存器。内存402可以包括各种各样的易失性或非易失性存储器中的任意一种,包括但不限于随机存取存储器(RAM)(例如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存等等。内存402可以包括用于存储媒体数据以及其它类型数据的计算机可读存储介质。内存402可以额外地存储由处理器执行、作为执行本公开内容所描述的各种技术的一部分的指令和程序代码。
[0105] 显示器处理器404可以获得所捕获的视频帧并且可以处理视频数据用于在本地显示器406上显示。显示器406包括各种显示设备中的一种显示设备,所述各种显示设备例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或能够向源设备400的用户呈现视频数据的其它类型的显示设备。
[0106] 音频处理器408可以获得所捕获的音频样本并且可以处理音频数据用于向扬声器410输出。扬声器410可以包括各种音频输出设备中的任意音频输出设备,所述各种音频输出设备例如耳机、单扬声器系统、多扬声器系统或环绕声系统。
[0107] 视频编码器412可以从内存402获得视频数据并且将视频数据编码为想要的视频格式。视频编码器412可以是用于实现上文相对于图3所描述的视频编解码器318的各方面的硬件和软件的组合。视频编码器412可以根据任意数量的视频压缩标准来编码视频,所述视频压缩标准例如ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IEC MPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉、ITU-T H.264(也称为ISO/IEC MPEG-4AVC)、VP8和高效率视频编码(HEVC)。应当指出的是,在一些情况下,视频编码器412可以编码视频,使得视频数据是使用无损或有损压缩技术压缩的。
[0108] 视频封包器414可以对经编码的视频数据封包化。在一个例子中,视频封包器414可以按照根据MPEG-2的第1部分所定义的来对经编码的视频数据封包化。在其它例子中,可以根据其它封包化协议来对视频数据封包化。视频封包器414可以是用于实现上文相对于图3所描述的封包式基本流(PES)封包化216的各方面的硬件和软件的组合。
[0109] 音频编码器416可以从内存402获得音频数据并且将音频数据编码为想要的音频格式。音频编码器416可以是用于实现上文关于图3所描述的音频编解码器320的各方面的硬件和软件的组合。可以使用多信道格式来编码音频数据,所述格式例如由杜比和数码影院系统开发的那些格式。可以使用压缩或非压缩格式来编码音频数据。压缩音频格式的例子包括MPEG-1、2音频层II和III、AC-3、AAC。未压缩的音频格式的例子包括脉冲编码调制(PCM)音频格式。
[0110] 音频封包器418可以对经编码的音频数据封包化。在一个例子中,音频封包器418可以按照根据MPEG-2第1部分所定义的来对经编码的音频数据封包化。在其它例子中,可以根据其它封包化协议来对音频数据封包化。音频封包器418可以是用于实现上文相对于图3所描述的封包式基本流(PES)封包化316的各方面的硬件和软件的组合。
[0111] A/V复用器420可以应用多路复用技术来将视频有效载荷数据和音频有效载荷数据组合作为公共数据流的一部分。在一个例子中,A/V复用器420可以将封包式基本视频流音频流封装为根据MPEG-2第1部分所定义的MPEG2传输流。A/V复用器420可以为音频包和视频包提供同步技术以及纠错技术。
[0112] 传输模块422可以处理媒体数据以用于向宿设备传输。此外,传输模块422可以处理从宿设备接收到的包,使得它们可以被进一步处理。例如,传输模块422可以被配置为使用IP、TCP、UDP、RTP和RTSP来通信。例如,传输模块422还可以封装MPEG2-TS以用于向宿设备传送或在网络上传送。
[0113] 调制解调器424可以被配置为根据WD系统中使用的物理层和MAC层执行物理层和MAC层处理。如参考图3所描述的。物理层和MAC层可以定义用于WD系统中的通信的物理信令、寻址和信道访问控制。在一个例子中,调制解调器424可以被配置为执行由WI-FI(例如,IEEE 802.11x)标准(例如由WFD提供的)定义的物理层和MAC层的物理层和MAC层处理。在其它例子中,调制解调器424可以被配置为执行用于以下任意项的物理层和MAC层处理:无线HD、WiMedia、无线家庭数字接口(WHDI)、WiGig和无线USB。
[0114] 控制模块426可以被配置为执行源设备400通信控制功能。通信控制功能可以关于与宿设备协商的能力、与宿设备建立会话以及会话维持和管理。控制模块426可以使用RTSP来与宿设备通信。此外,控制模块426可以使用RTSP消息交互来协商源设备400和宿设备的能力,以支持UIBC的能力。
[0115] 反馈解包器(de-packetizer)428可以解析人机接口设备命令(HIDC)、通用用户输入、OS特定的用户输入和来自反馈包的性能信息。反馈类别字段可以识别通用输入类别,以指示反馈包有效载荷数据是使用通用信息元素来格式化的。再举一个例子,反馈类别字段可以识别人机接口设备命令(HIDC)输入类别。再举一个例子,反馈类别字段可以识别操作系统(OS)特定输入类别以指示有效载荷数据是基于源设备或宿设备使用的OS类型来格式化的。
[0116] 反馈模块430从反馈解包器接收性能信息并处理性能信息,使得源设备400可以基于性能信息消息来调整媒体数据的传输。
[0117] 源设备400提供了被配置为向第二无线计算设备传输内容的源设备的例子。源设备400可以发起WI-FI显示(WFD)连接,经由WFD连接从第一无线计算设备向第二无线计算设备传输数据,执行媒体共享应用,所述媒体共享应用使得第一无线计算设备能够与无线客户端计算设备共享播放列表的媒体项目,以及向无线客户端计算设备传输描述所述播放列表的媒体项目的信息。传输描述媒体项目的信息使得无线客户端计算设备来确定所述无线客户端计算设备是否能够输出所述媒体项目并且向无线客户端计算设备传输所述媒体项目。
[0118] 图5是说明了宿设备或客户端设备的例子的框图,所述宿设备或客户端设备实现用于从源设备接收视频和/或其它信息的技术。宿设备或客户端设备500可以是集成了图3中提供的数据通信模型的WD系统的一部分。在一个例子中,宿设备或客户端设备500可以和源设备400形成WD系统。宿设备或客户端设备500包括调制解调器502、传输模块504、A/V解复用器506、视频解包器508、视频解码器510、显示器处理器512、显示器514、音频解包器516、音频解码器518、音频处理器520、扬声器522、用户输入模块524、性能分析模块526、反馈封包器528和控制模块530。宿设备或客户端设备500的组件皆可以实现为各种适当电路中的任意电路,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任意组合。
[0119] 调制解调器502可以被配置为根据WD系统中使用的物理层和MAC层来执行物理层和MAC层处理。如参考图3所描述的。物理层和MAC层可以定义用于WD系统中的通信的物理信令、寻址和信道访问控制。在一个例子中,调制解调器502可以被配置为执行由WI-FI(例如,IEEE 802.11x)标准(例如由WFD提供的)定义的物理层和MAC层的物理层和MAC层处理。在其它例子中,调制解调器502可以被配置为执行用于以下任意项的物理层和MAC层处理:无线HD、WiMedia、无线家庭数字接口(WHDI)、WiGig和无线USB。
[0120] 传输模块504可以处理从源设备接收到的媒体数据。此外,传输模块504可以处理反馈包以用于向源设备传输。例如,传输模块504可以被配置为使用IP、TCP、UDP、RTP和RTSP来进行传送。另外,传输模块504可以包括IP、TCP、UDP、RTP和RTSP包的任意组合中的时间戳值。所述时间戳值可以使源设备能够识别哪个媒体数据包经历了所报告的性能下降并且计算WD系统中的往返延迟。
[0121] A/V解复用器506可以应用解复用技术来将视频有效载荷数据和音频有效载荷数据与数据流分开。在一个例子中,A/V解复用器506可以将根据MPEG-2第1部分所定义的MPEG2传输流的封包式基本视频流和音频流分开。
[0122] 视频解包器508和视频解码器510可以执行与实现了本文中描述的封包化和编码技术的视频封包器和视频编码器相反的处理,并且向显示器处理器512输出视频数据。
[0123] 显示器处理器512可以获得所捕获的视频帧并且可以处理视频数据以用于在显示器514上显示。显示器514可以包括各种显示设备中的其中之一,所述显示设备例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或其它类型的显示器。
[0124] 音频解包器516和音频解码器518可以执行与实现了本文中描述的封包化和编码技术的音频封包器和音频编码器相反的处理,并且向显示器处理器520输出音频数据。
[0125] 音频处理器520可以从音频解码器获得音频数据并且可以处理音频数据以用于向扬声器522输出。扬声器522可以包括各种音频输出设备中的任意音频输出设备,所述任意音频输出设备例如耳机、单扬声器系统、多扬声器系统或环绕声系统。
[0126] 用户输入模块524可以格式化由用户输入设备接收到的用户输入命令,所述用户输入设备例如,举例来说:键盘、鼠标、轨迹球或触控板、触摸屏、语音命令识别模块或任意其它这种用户输入设备。在一个例子中,用户输入模块524可以格式化与根据上文相对于图3所描述的人机接口设备命令(HIDC)330、通用用户输入332和OS特定用户输入336定义的格式相符的用户输入命令。
[0127] 性能分析模块526可以基于从源设备接收到的媒体数据包来确定性能信息。性能信息可以包括:延迟抖动、包丢失、时间上的误差分布、包错误率和时间上的RSSI分布以及本文所描述的其它例子。性能分析模块526可以根据本文描述的任意技术来计算性能信息。
[0128] 反馈封包器528可以封包化、可以处理来自用户输入模块524和性能分析模块生成器526的用户输入信息以生成反馈包。在一个例子中,反馈包可以使用相对于图3所描述的消息格式。另外,反馈封包器528可以在每个反馈包中包括时间戳值。所述时间戳值可以使源设备能够识别哪个媒体数据包经历了所报告的性能下降并且计算WD系统中的往返延迟。
[0129] 控制模块530可以被配置为执行宿设备或客户端设备500通信控制功能。通信控制功能可以关于与源设备协商的能力、与源设备建立会话以及会话维持和管理。控制模块530可以使用RTSP来与源设备通信。此外,控制模块530可以协商宿设备或客户端设备500和源设备的能力,以支持UIBC的特征。
[0130] 在例子中,宿设备500提供了源设备的例子,所述源设备被配置为发起与无线源设备(例如源设备400(图4))的WFD连接,并且经由到源设备400的WFD连接从源设备400接收数据。无线客户端计算设备(可以类似于宿设备500或与宿设备500相同)可以执行媒体客户端应用,所述应用使得无线客户端设备能够接收源设备400共享的播放列表的媒体项目。无线客户端计算设备可以从源设备400接收描述播放列表的媒体项目的信息。对描述所述媒体项目的信息的接收使得无线客户端计算设备确定所述无线客户端计算设备是否能够输出所述媒体项目。无线客户端计算设备可以从源设备400接收所述媒体项目。
[0131] 图6示出了示例性发射机系统610和接收机系统650的框图,其可以由图1A的发射机/接收机126和发射机/接收机166用于在通信信道150上通信。在发射机系统610处,从数据源612向发送(TX)数据处理器614提供数个数据流的业务数据。可以在各自的发送天线上发送每个数据流。TX数据处理器614基于为每个数据流选择的特定编码方案来格式化、编码和交织针对每个数据流的业务数据。
[0132] 可以使用正交频分复用(OFDM)技术来将针对每个数据流的编码数据与导频数据复用。也可以使用各种各样的其它无线通信技术,所述通信技术包括但不限于时分多址(TDMA)、频分多址(FDMA)、码分多址(CDMA)或OFDM、FDMA、TDMA和/或CDMA的任何组合。
[0133] 与图3相符的,导频数据典型地是以已知方式处理并可以在接收机系统处使用来估计信道响应的已知数据模式。随后基于被选择用于每个数据流的特定调制方案(例如,二进制相移键控(BPSK)、正交相移键控(QPSK)、M-PSK或M-QAM(正交幅度调制),其中M可以是2的幂)来调制(例如,符号映射)复用的导频和针对每个数据流的编码数据以提供调制符号。针对每个数据流的数据率、编码和调制可以由处理器630执行的指令来确定,所述处理器
630可以与内存632耦合。
[0134] 随后可以向TX MIMO处理器620提供针对数据流的调制符号,TXMIMO处理器620可以进一步处理所述调制符号(例如,针对OFDM)。随后,TX MIMO处理器620可以向NT个发射机(TMTR)622a至622t提供NT个调制符号流。在某些方面,TX MIMO处理器620向所述数据流的符号和从其发射所述符号的天线应用波束成形权重。
[0135] 每个发射机622可以接收和处理各自的符号流以提供一个或多个模拟信号,并进一步调节(例如,放大、滤波和上变频)所述模拟信号以提供适于在MIMO信道上传输的调制信号。随后分别从NT个天线624a至624t发送来自发射机622a至622t的NT个调制信号。
[0136] 在接收机系统650处,NR个天线652a至652r接收被发送的调制信号并且将从每个天线652接收到的信号提供给各自的接收机(RCVR)654a至654r。接收机654调节(例如,滤波、放大和下变频)各自的接收信号、数字化经调节的信号以提供样本,并且进一步处理所述样本以提供对应的“接收到的”符号流。
[0137] 随后接收(RX)数据处理器660接收并基于特定的接收机处理技术来处理从NR个接收机654接收到的NR个符号流,以提供NT个“检测到的”符号流。随后RX数据处理器660解调、解交织和解码每个检测到的符号流,以恢复针对数据流的业务数据。RX数据处理器660的处理与发射机系统610处的TX MIMO处理器620和TX数据处理器614执行的处理相反。
[0138] 可以与内存672耦合的处理器670周期性地确定要使用哪个预编码矩阵。反向链路消息可以包括关于通信链路和/或接收到的数据流的各种类型的信息。随后反向链路消息由TX数据处理器638处理(所述TX数据处理器638还从数据源636接收针对数个数据流的业务数据)、由调制器680调制、由发射机654a至654r调节、并发送回发射机系统610。
[0139] 在发射机系统610处,来自发射机系统650的经调制信号由天线624接收、由接收机622调节、由解调器640解调,并且由RX数据处理器642处理以提取由接收机系统650发送的反向链路消息。随后处理器630确定使用哪个预编码矩阵来确定波束成形权重,然后处理所提取的消息。
[0140] 图7A是说明了源设备120和宿设备160之间的示例性消息传送顺序的框图,作为WFD会话的能力协商的一部分。能力协商可以发生作为源设备120和宿设备160之间较大的WFD通信会话建立过程的一部分。可以使用例如Wi-Fi直连或TDLS作为底层的连接标准来建立这个会话。在建立Wi-Fi直连或TDLS会话之后,宿设备160可以发起与源设备120的TCP连接。作为建立TCP连接的一部分,可以建立运行实时流协议(RTSP)的控制端口以管理源设备120和宿设备160之间的通信会话。
[0141] 源设备120通常可以以上文针对图1A的源设备120所描述的相同方式来操作,而宿设备160通常可以以上文针对图1A的宿设备160所描述的相同方式来操作。在源设备120和宿设备160建立连接之后,源设备120和宿设备160可以确定将用于作为能力协商交换的一部分的它们的后续通信会话的参数集合。
[0142] 源设备120和宿设备160可以通过消息的序列来协商能力。所述消息可以例如是实时流协议(RTSP)消息。在协商的任何阶段,对RTSP请求消息的接收可以用RTSP响应来响应,所述RTSP响应包括RTSP状态码而不是RTSP OK,在这种情况下,可以使用不同的参数集合来重试消息交换或者可以结束能力协商会话。
[0143] 源设备120可以向宿设备160发送第一消息(RTSP OPTIONS请求消息),以确定宿设备160支持的RTSP方法集合。在从源设备120接收到第一消息之后,宿设备160可以用列出了宿设备160所支持的RTSP方法的第二消息(RTSP OPTIONS响应消息)来响应。第二消息还可以包括RTSP OK状态码。
[0144] 在向源设备120发送第二消息之后,宿设备160可以发送第三消息(RTSP OPTIONS请求消息)以确定源设备120支持的RTSP方法集合。在从宿设备160接收到第三消息之后,源设备120可以用列出了源设备120所支持的RTSP方法的第四消息(RTSP OPTIONS响应消息)来响应。第四消息还可以包括RTSP OK状态码。
[0145] 在发送第四消息之后,源设备120可以发送第五消息(RTSP GET_PARAMETER请求消息)以指定源设备120感兴趣的能力的列表。宿设备160可以用第六消息(RTSP GET_PARAMETER响应消息)来响应。第六消息可以包含RTSP状态码。如果RTSP状态码是OK,则第六消息还可以包括对宿设备160支持的、在第五消息中指定的参数的响应参数。宿设备160可以忽略第五消息中宿设备160不支持的参数。
[0146] 基于第六消息,源120可以确定将用于通信会话的最佳参数集并且可以向宿设备160发送第七消息(RTSP SET_PARAMETER请求消息)。第七消息可以包含将在源设备120和宿设备160之间的通信会话期间使用的参数集合。第七消息可以包括描述将用于RTSP建立请求中的通用资源标识符(URI)的wfd-presentation-url以建立通信会话。wfd-
presentation-url指定了宿设备160可以在会话建立交换期间用于之后消息的URI。这个参数中指定的wfd-url0和wfd-url1值可以对应于第七消息中wfd-client-rtp-ports的rtp-port0和rtp-port1的值。在这种情况下的RTP通常指的是可以在UDP顶端上运行的实时协议。
[0147] 在接收到第七消息之后,宿设备160可以用具有RTSP状态码的第八消息来进行响应,所述RTSP状态码指示按照第七消息中所指定的来设置参数是否是成功的。如上所述,源设备和宿设备的角色在不同的会话中可以颠倒或改变。在某些情况下,建立通信会话的消息的顺序定义了作为源操作的设备并且定义了作为宿操作的设备。
[0148] 图7B是说明了作为能力协商会话的一部分的、源设备120和宿设备160之间的另一个示例性消息传送顺序的框图。图7B中的消息传送顺序旨在提供上文针对图7A所描述的传送顺序的更详细的视图。在图7B中,消息“1b.GET_PARAMETER RESPOND”示出了消息的例子,所述消息标识了所支持的输入类别(例如,通用和HIDC)的列表和所支持的输入类型的多个列表。支持的输入类别列表中的每个支持的输入类别具有相关联的所支持类型的列表(例如generic_cap_list和hidc_cap_list)。在图7B中,消息“2a.SET_PARAMETER REQUEST”是第二消息的例子,所述第二消息标识了所支持的输入类别(例如,通用和HIDC)的第二列表,以及所支持类型的多个第二列表。支持的输入类别的第二列表中的每个支持的输入类别具有相关联的支持类型的第二列表(例如generic_cap_list和hidc_cap_list)。消息“1b.GET_PARAMETER RESPONSE”标识宿设备160所支持的输入类别和输入类型。消息“2a.SET_PARAMETER REQUEST”标识源设备120所支持的输入类别和输入类型,但其可能不是源设备120支持的所有输入类别和输入类型的全面的列表。相反的,消息“2a.SET_PARAMETER REQUEST”可以仅标识在消息“1b.GET_PARAMETER RESPONSE”中被标识为宿设备160所支持的那些输入类别和输入类型。以这种方式,在消息“2a.SET_PARAMETER REQUEST”中标识的输入类别和输入类型可以构成在消息“1b.GET_PARAMETER RESPONSE”中标识的输入类别和输入类型的子集。
[0149] 图8是说明了根据本公开内容的技术执行WFD以及传输媒体项目的方法的流程图。举例而已,可以由例如图1A和图1B的源设备120的设备来执行图8的方法。尽管将参照源设备120来解释图8,但是其它的源设备(包括图4的源设备400)也可以执行图8的技术。在图8的方法中,源设备120可以向宿设备160(图1A)发起WFD连接(800)。在一些例子中,宿设备
160和客户端设备180可以是同一个设备。
[0150] 源设备120可以向宿设备160发起WI-FI显示(WFD)连接(800)。源设备120还可以经由所述WFD连接从源设备120向宿设备160(图1A)传输数据(802)。在一个例子中,从源设备120向宿设备160传输数据可以使得宿设备160对源设备120的显示输出设备进行镜像(mirror)。源设备120还可以从宿设备160接收用户输入。
[0151] 源设备120可以执行媒体共享应用,所述媒体共享应用使得源设备120能够与客户端设备180(图1B)共享播放列表的媒体项目(804)。源设备120可以向客户端设备180传输描述媒体项目的信息,并且所述信息描述播放列表的媒体项目的格式。在一些例子中,描述媒体项目的信息包括以下中的至少一个:可扩展标记语言(XML)、二进制、超文本标记语言(HTML)、CSV(逗号分隔值)。描述媒体项目的信息可以包括以下中的至少一个:媒体项目的比特率、等级、分辨率、文件类型和文件名。
[0152] 源设备120还可以经由第二WFD连接向无线客户端设备180传输关于播放列表和所述播放列表的媒体项目中的至少一个的WFD数据。源设备120还可以经由第二WFD连接从客户端设备180接收用户输入反向信道输入命令。响应于接收到UIBC输入命令,第一无线计算设备可以终止第二WFD连接。
[0153] 传输描述播放列表的媒体项目的信息可以使得客户端设备180确定客户端设备180是否能够输出所述媒体项目(808)。源设备120可以向客户端设备180传输所述媒体项目(810)。源设备120还可以从客户端设备180接收媒体回放命令,在一些例子中,所述媒体回放命令可以包括RTSP指令。在一些情况下,源设备120可以使用RTP来传输媒体项目。在一些情况下,使用源设备120来传输媒体项目可以发生在从客户端设备180接收到媒体回放命令之后。
[0154] 源设备120还可以从客户端设备180接收验证信息。源设备120可以基于所述验证信息来验证所述无线客户端设备,并响应于验证客户端设备180来准许客户端设备180访问播放列表。
[0155] 尽管以举例为目的说明了特定的顺序,但是可以以任意的顺序或并行地执行图8的方法,并且图8的方法还可以包括使用WFD连接来传输数据,并且同时执行所述媒体共享应用。
[0156] 在一个或多个例子中,本公开内容中描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将这些功能作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,所述计算机可读存储介质对应于有形介质,例如数据存储介质或通信介质,所述通信介质包括例如根据通信协议来促进从一个地方向另一个地方传送计算机程序的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非临时性的有形计算机可读存储介质或者(2)通信介质,例如信号或载波。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以取回用于实现本公开内容中所描述的技术的指令、代码和/或数据结构的任意可用介质。计算机程序产品可以包括计算机可读介质。
[0157] 。通过示例的方式而不是限制的方式,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质。此外,任何连接可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线和微波的无线技术从网站、服务器或其它远程源发送的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号、或其它瞬时介质,而是相反地旨在非临时性、有形存储介质。如本申请所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字通用光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
[0158] 指令可以由一个或多个处理器来执行,例如:一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成的或离散的逻辑电路。因此,如本文所使用的术语“处理器”可以指代任意前述结构或适于实现本文中描述的技术的任何其它结构。另外,在一些方面中,可以在被配置用于编码和解码的专用硬件和/或软件模块中提供本文所描述的功能性,或可以将本文所描述的功能性集成在组合的编解码器中。此外,可以在一个或多个电路或逻辑元件中完全实现所述技术。
[0159] 可以在各种各样的设备或装置中实现本公开内容的技术,所述设备或装置包括无线手持设备、集成电路(IC)或IC集合(例如,芯片集)。在本公开内容中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不必要求由不同硬件单元来实现。相反,如上所述,各个单元可以组合在编解码器硬件单元中或由互操作的硬件单元的集合来提供,所述互操作的硬件单元包括与适当的软件和/或固件结合的、如上所述的一个或多个处理器。
[0160] 已经描述了各种例子。这些和其它例子在下面的权利要求的保护范围之内。
QQ群二维码
意见反馈