CN106209523A - 一种屏幕共享的实现方法、装置和媒体终端 - Google Patents
一种屏幕共享的实现方法、装置和媒体终端 Download PDFInfo
- Publication number
- CN106209523A CN106209523A CN201510229498.3A CN201510229498A CN106209523A CN 106209523 A CN106209523 A CN 106209523A CN 201510229498 A CN201510229498 A CN 201510229498A CN 106209523 A CN106209523 A CN 106209523A
- Authority
- CN
- China
- Prior art keywords
- equipment
- screen sharing
- media
- media data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种屏幕共享的实现方法、装置和媒体终端,涉及计算机领域,以在安卓平台和linux平台都可以实现屏幕共享。所述方法包括:第一设备与和其进行屏幕共享的第二设备建立通信连接;所述第一设备利用直接渲染管理DRM框架实现所述第一设备和所述第二设备间的屏幕共享,所述DRM框架存在于所述第一设备和所述第二设备的linux内核中。本发明用于屏幕共享。
Description
技术领域
本发明涉及计算机领域,特别涉及一种屏幕共享的实现方法、装置和媒体终端。
背景技术
随着网络接入、无线互联、数字媒体技术的发展,如何高效实现家庭互联设备中媒体内容的共享成为一个发展方向,其中互连设备的屏幕共享是一个较为主要的应用场景。
当前进行屏幕共享的常见平台有安卓(android)平台和linux平台。由于安卓在linux操作系统之上对屏幕共享业务有其固定应用层构建框架,基于安卓平台的屏幕共享实现方案和基于linux平台的屏幕共享实现方案并不相同。而且,即便在基于linux平台的屏幕共享实现方案中,各厂商的实现没有统一框架,因而,在屏幕共享的具体实现上,不同厂商也存在较大差异。
发明内容
本发明实施例提供一种屏幕共享的实现方法、装置和媒体终端,能够通用于安卓平台和linux平台。
第一方面,提供一种屏幕共享的实现方法,所述方法包括:
第一设备与和其进行屏幕共享的第二设备建立通信连接;
所述第一设备利用直接渲染管理(Direct Rendering Manager,DRM)框架实现所述第一设备和所述第二设备间的屏幕共享,所述DRM框架存在于所述第一设备和所述第二设备的linux内核中。
结合第一方面,在第一种可能的实现方式中,在进行屏幕共享之前,所述方法还包括:所述第一设备建立与所述第二设备对应的逻辑显示装置,所述逻辑显示装置充当所述第二设备的逻辑数据输入端;
所述第一设备利用直接渲染管理DRM框架实现所述第一设备和所述第二设备间的屏幕共享包括:
在进行屏幕共享时,所述第一设备利用DRM框架将用于屏幕共享的媒体数据送至所述逻辑显示装置,进而经由所述逻辑显示装置向所述第二设备传输用于屏幕共享的媒体数据。
结合第一方面的第一种可能实现方式,在第二种可能的实现方式中,所述第一设备利用DRM框架将用于屏幕共享的媒体数据送至所述逻辑显示装置,进而通过所述逻辑显示装置向所述第二设备传输用于屏幕共享的媒体数据包括:
所述第一设备利用DRM框架对用于屏幕共享的媒体数据进行处理,并将处理后的媒体数据送至所述逻辑显示装置;
所述第一设备对送到所述逻辑显示装置的媒体数据进行发送侧适配,并将适配后的媒体数据向所述第二设备传输。
结合第一方面至第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,第一设备与和其进行屏幕共享的第二设备建立通信连接可包括:
第一设备与和其进行屏幕共享的第二设备通过WiFi显示协议标准或数字生活网络联盟(Digital Living Network Alliance,DLNA)协议标准建立通信连接。
第二方面,提供一种屏幕共享的实现方法,所述方法包括:
第二设备与和其进行屏幕共享的第一设备建立通信连接;
所述第二设备利用直接渲染管理(DRM)框架实现所述第二设备和所述第一设备间的屏幕共享,所述DRM框架存在于所述第一设备和所述第二设备的linux内核中。
结合第二方面,在第一种可能的实现方式中,所述第二设备利用直接渲染管理DRM框架实现所述第二设备和所述第一设备间的屏幕共享包括:
第二设备对第一设备发送过来的、用于屏幕共享的媒体数据进行接收侧适配;
所述第二设备利用DRM框架对适配后的所述媒体数据进行处理,并对处理后得到的媒体数据进行显示。
结合第一方面或第一方面的第一种可能实现方式,在第二种可能的实现方式中,第二设备与和其进行屏幕共享的第一设备建立通信连接包括:
第二设备与和其进行屏幕共享的第一设备通过WiFi显示协议标准或数字生活网络联盟(DLNA)协议标准建立通信连接。
第三方面,提供一种媒体终端,包括CPU、存储器和显示处理装置,其中,所述存储器用于存储所述媒体终端上的媒体数据,且所述存储器和所述显示处理装置通过总线与所述CPU相连接;
所述CPU用于,控制所述媒体终端与和其进行屏幕共享的设备建立通信连接;
所述显示处理装置,用于在所述CPU的控制下利用直接渲染管理(DRM)框架实现所述媒体终端和所述设备间的屏幕共享,所述DRM框架存在于所述媒体终端和所述设备的linux内核中。
结合第三方面,在第一种可能的实现方式中,在进行屏幕共享之前,所述显示处理装置用于:建立与所述设备对应的逻辑显示装置,所述逻辑显示装置充当所述设备的逻辑数据输入端;
在进行屏幕共享时,所述显示处理装置用于:利用DRM框架对存储器上存储的、用于屏幕共享的媒体数据进行处理,并将处理后的媒体数据送至所述逻辑显示装置;
所述媒体终端还包括适配器,用于对所述逻辑显示装置中的媒体数据进行发送侧适配处理;
所述媒体终端还包括通过总线与CPU连接的网络接口,所述网络接口用于向所述设备传输用于经适配处理后的媒体数据。
结合第一方面的第一种可能实现方式,在第二种可能实现方式中,所述CPU具体用于:控制所述媒体终端通过WiFi-display协议标准或DLNA协议标准与和其进行屏幕共享的设备建立通信连接。
第四方面,提供一种媒体终端,包括CPU、存储器和显示处理装置,其中,所述存储器和所述显示处理装置通过总线与所述CPU相连接;
所述CPU用于,控制所述媒体终端与和其进行屏幕共享的设备建立通信连接;
所述显示处理装置,用于在所述CPU的控制下利用直接渲染管理(DRM)框架实现所述媒体终端和所述设备间的屏幕共享,所述DRM框架存在于所述媒体终端和所述设备的linux内核中。
结合第四方面,在第一种可能的实现方式中,所述媒体终端还包括网络接口,用于接收第一设备发送过来的、用于屏幕共享的媒体数据;
适配器,用于对网络接口接收的媒体数据进行接收侧适配;
所述存储器,用于存储经所述适配器适配的媒体数据;
所述显示处理装置具体用于:
利用DRM框架对存储器上存储的所述经适配的媒体数据处理;
所述媒体终端还包括显示屏,用于在CPU的控制下将经过显示处理装置处理后的媒体数据进行显示。
结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述CPU具体用于:控制所述媒体终端通过WiFi-display协议标准或DLNA协议标准与和其进行屏幕共享的设备建立通信连接。
第五方面,提供一种屏幕共享的装置,所述装置包括:
通信连接建立模块,用于将所述装置和与所述装置进行屏幕共享的设备建立通信连接;
屏幕共享实现模块,用于利用直接渲染管理DRM框架实现所述装置和所述设备间的屏幕共享,所述DRM框架存在于所述装置和所述设备的linux内核中。
结合第五方面,在第一种可能的实现方式中,在进行屏幕共享之前,所述通信连接建立模块还用于:建立与所述设备对应的逻辑显示装置,所述逻辑显示装置充当所述设备的逻辑数据输入端;
所述屏幕共享实现模块用于:
在进行屏幕共享时,利用DRM框架将用于屏幕共享的媒体数据送至所述逻辑显示装置,进而经由所述逻辑显示装置向所述设备传输用于屏幕共享的媒体数据。
结合第五方面的第一种实现方式,在第二种可能的实现方式中,所述屏幕共享实现模块具体用于:
利用DRM框架对用于屏幕共享的媒体数据进行处理,并将处理后的媒体数据送至所述逻辑显示装置;
对送到所述逻辑显示装置的媒体数据进行发送侧适配,并将适配后的媒体数据向所述设备传输。
结合第五方面至第五方面的第二种实现方式中的任一种实现方式,在第三种可能的实现方式中,所述通信连接建立模块具体用于:
将所述装置和与所述装置进行屏幕共享的设备通过WiFi显示协议标准或数字生活网络联盟DLNA协议标准建立通信连接。
结合第五方面,在第四种可能的实现方式中,所述屏幕共享实现模块具体用于:
对所述设备发送过来的、用于屏幕共享的媒体数据进行接收侧适配;
利用DRM框架对适配后的所述媒体数据进行处理,并对处理后得到的媒体数据进行显示。
本发明实施例提供的屏幕共享的实现方法、装置和媒体终端,第一设备在和其进行屏幕共享的第二设备建立通信连接后,利用DRM框架来实现所述第一设备和第二设备间的屏幕共享,由于所述DRM框架存在于所述第一设备和所述第二设备的linux内核中,即实现屏幕共享的实现方案在linux内核底层即做到了统一,这样一来,无论是linux平台还是安卓平台都可以直接利用linux内核中的DRM框架来实现屏幕共享,因而,实现了对于linux平台和安卓平台的通用。而且,由于本发明实施例提供的屏幕共享实现方式,有效减少了数据流处理环节过程中内核态和用户态之间多次切换的可能性,因而,相对于现有技术而言,处理效率得到了提高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种屏幕共享的方法的流程图;
图2是本发明实施例提供的另一种屏幕共享的方法的流程图;
图3A是本发明实施例提供的另一种屏幕共享的方法的流程图;
图3B是利用DRM方案实现屏幕共享的逻辑示意图;
图3C是利用DRM方案实现屏幕共享的流程图;
图4A是本发明实施例提供的一种媒体终端的结构示意图;
图4B是本发明实施例提供的媒体终端的结构示意图;
图5A是本发明实施例提供的另一种媒体终端的结构示意图;
图5B是本发明实施例提供的另一种媒体终端的结构示意图;
图6是本发明实施例提供的屏幕共享的装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种屏幕共享的实现方法的流程图。参照图1,本发明实施例提供一种屏幕共享的实现方法,所述方法包括:
11、第一设备与和其进行屏幕共享的第二设备建立通信连接;
12、所述第一设备利用直接渲染管理(Direct Rendering Manager,DRM)框架实现所述第一设备和第二设备间的屏幕共享,所述DRM框架存在于所述第一设备和所述第二设备的linux内核中。
其中,所述第一设备可以为不带显示屏的媒体终端,当然也可以为带显示屏的媒体终端。当具有显示屏时,所述第一设备可以为具有较小屏幕的媒体终端。所述第一设备上可存储有供第二设备显示的媒体数据,所述媒体数据可包括各种不同格式的音频、视频、图片、文本等。其中,所述媒体数据可由所述第一设备通过各种不同方式来获取,包括但不限于,通过网络从服务器获取媒体数据、通过本地插接的U盘获取媒体数据等。所述第二终端可以为具有较大屏幕的媒体终端,且所述第二终端可支持媒体处理功能,例如可以进行图片的展示、视频或音频的播放等。当然,根据具体应用场景,所述第一设备也可以为具有较大屏幕的媒体终端,同时所述第二设备可以为具有较小屏幕的媒体终端。本发明实施例对第一设备和第二设备的屏幕并不加以限制,可根据需要来选取。在本发明实施例中,所述媒体终端可以为具备媒体处理功能的任何终端设备,包括但不限于,机顶盒、手机、智能电视等等。
本发明实施例中的“屏幕共享”指的是,第一设备将内部存储的媒体数据传输给第二设备,进而由所述第二设备用自己的显示屏显示所接收到的、来自所述第一设备的媒体数据,最终实现用第二设备的显示屏显示来自第一设备的媒体数据。
需要说明的是,DRM主要是为实现图形的直接渲染架构(Direct RenderingInfrastructure,DRI)硬件加速而服务的一套标准的显卡驱动框架,通过提供一系列输入输出控制(Ioctrl)操作,应用层软件可直接对显卡硬件操作;用户实际使用DRM是经过DRM库(Libdrm)封装的接口。
本发明实施例提供的屏幕共享实现方法,第一设备在和其进行屏幕共享的第二设备建立通信连接后,利用DRM框架来实现所述第一设备和第二设备间的屏幕共享,由于所述DRM框架存在于所述第一设备和所述第二设备的linux内核中,即实现屏幕共享的实现方案在linux内核底层即做到了统一,这样一来,无论是linux平台还是安卓平台都可以直接利用linux内核中的DRM框架来实现屏幕共享,因而,实现了对于linux平台和安卓平台的通用。而且,由于本发明实施例提供的屏幕共享实现方式,有效减少了数据流处理环节过程中内核态和用户态之间多次切换的可能性,因而,相对于现有技术而言,处理效率得到了提高。
当前用于媒体设备间屏幕共享的协议标准包括:WiFi显示(WiFi-display)协议标准以及数字生活网络联盟(Digital Living Network Alliance,DLNA)协议标准。为了减少开发成本,本发明实施例可直接利用现有的WiFi-display协议标准或DLNA协议标准来实现屏幕共享。当然,本发明实施例还可使用其他基础共享协议来进行屏幕共享,例如,本领域技术人员或本领域内的组织机构新开发出的用于屏幕共享的协议。在本发明的一个实施例中,可选地,步骤11中所述第一设备与和其进行屏幕共享的第二设备建立通信连接可包括:第一设备与和其进行屏幕共享的第二设备通过WiFi display协议标准或DLNA协议标准建立通信连接。
其中,所述第一设备与和其进行屏幕共享的第二设备通过WiFi display协议标准或DLNA协议标准建立通信连接的过程可以为:
所述第一设备发布屏幕共享服务;
所述第二设备获取到所述屏幕共享服务之后,发出订阅请求;
所述第一设备在接收到所述订阅请求之后,同所述第二设备进行协商,进而建立通信连接。其中,上述协商的过程涵盖第一设备和第二设备进行能力集协商。
在上述建立通信连接的过程中,所述第一设备和所述第二设备遵从WiFidisplay协议标准或DLNA协议标准来进行。
可选地,在本发明的一个实施例中,在进行屏幕共享之前,所述方法还可包括:所述第一设备建立与所述第二设备对应的逻辑显示装置,所述逻辑显示装置充当所述第二设备的逻辑数据输入端。相应地,步骤12中所述第一设备利用DRM框架实现第一设备和第二设备间的屏幕共享可包括:
在进行屏幕共享时,所述第一设备利用DRM框架将用于屏幕共享的媒体数据送至所述逻辑显示装置,进而经由所述逻辑显示装置向所述第二设备传输用于屏幕共享的媒体数据。
其中,所述用于屏幕共享的媒体数据可包括多个图形层数据和一个视频层数据。
在本发明实施例中,可选地,所述第一设备利用DRM框架将用于屏幕共享的媒体数据送至所述逻辑显示装置,进而通过所述逻辑显示装置向所述第二设备传输用于屏幕共享的媒体数据可包括:
所述第一设备利用DRM框架对用于屏幕共享的媒体数据进行处理,并将处理后的媒体数据送至所述逻辑显示装置;
所述第一设备将所述逻辑显示装置接收的媒体数据进行发送侧适配,并将适配后的媒体数据通过WiFi display或DLNA协议标准向所述第二设备传输。
其中,对媒体数据进行发送侧适配可基于wifi-display或DLNA协商后能力集要求来进行。
其中,所述第一设备利用DRM框架对所述媒体数据进行处理可包括:
所述第一设备可根据实际情况利用DRM框架对所述媒体数据进行以下至少一种操作:数据叠加、渲染、色彩空间处理、时序转换。
另外需要说明的是,本发明实施例中的所述第二设备可以为一个设备,也可以包括多个设备。当所述第二设备包括多个设备时,所述第一设备在收到所述多个设备的订阅请求时,分别与这些设备建立会话(session)或DLNA连接,并向它们发送媒体数据,最终在这些设备的显示屏上显示媒体数据,实现第一设备和这多个设备之间的屏幕共享。
即,当所述第二设备包括多个设备时,步骤11中所述第一设备和与所述第一设备进行屏幕共享的第二设备建立通信连接可包括:所述第一设备和与所述第一设备进行屏幕共享的第二设备中的每个设备建立通信连接。
相应地,步骤12中所述第一设备利用直接渲染管理DRM框架实现所述第一设备和所述第二设备间的屏幕共享包括:所述第一设备利用直接渲染管理DRM框架实现所述第一设备和所述第二设备中的每个设备间的屏幕共享。
由于第二设备包括多个设备,因而第一设备需要与所述第二设备中的每个设备进行通信交互,以实现第一设备与这些设备间的屏幕共享。
同时还需要说明的是,在进行屏幕共享时,所述第一设备既可以是媒体数据的发送者,也可以是媒体数据的接收者。在本发明的另一个实施例中,在所述第一设备作为媒体数据的接收者实现屏幕共享时,步骤12中所述第一设备利用直接渲染管理DRM框架实现所述第一设备和所述第二设备间的屏幕共享可包括:
第一设备对第二设备发送过来的、用于屏幕共享的媒体数据进行接收侧适配;
所述第一设备利用DRM框架对适配后的所述媒体数据进行处理,并对处理后得到的媒体数据进行显示。
可见,在本发明实施例中,所述第一设备既可以作为媒体数据的发送者实现屏幕贡献,也可以作为媒体数据的接收者实现屏幕共享。举例而言,第一设备作为媒体数据的发送者在与一个设备(即,媒体数据的接收者)交互实现屏幕共享之后,也可以在下一次屏幕共享时,作为媒体数据的接收者与另一个设备(即,媒体数据的发送者)交互实现屏幕共享。
相应地,本发明实施例还提供另一种屏幕共享的实现方法。图2是本发明实施例提供的另一种屏幕共享的方法的流程图。参照图2,所述方法可包括:
21、第二设备与和其进行屏幕共享的第一设备建立通信连接;
22、所述第二设备利用直接渲染管理DRM框架实现所述第一设备和第二设备间的屏幕共享,所述DRM框架存在于所述第一设备和所述第二设备的linux内核中。
本发明实施例提供的屏幕共享方法,在接收到第一设备发过来的媒体数据时,利用DRM框架来实现所述第一设备和第二设备间的屏幕共享,由于所述DRM框架存在于所述第二设备的linux内核中,即实现屏幕共享的方案在linux内核底层即做到了统一,这样一来,无论是linux平台还是安卓平台都可以直接利用linux内核中的DRM框架来实现屏幕共享,因而,实现了对于linux平台和安卓平台的通用。而且,由于本发明实施例提供的屏幕共享实现方式,可有效减少数据流处理环节过程中内核态和用户态之间的多次切换的可能性,因而,相对于现有技术而言,处理效率得到了提高。
其中,可选地,在本发明的一个实施例中,步骤21中所述第二设备与和其进行屏幕共享的第一设备建立通信连接可包括:第二设备与和其进行屏幕共享的第一设备通过WiFi显示协议标准或数字生活网络联盟DLNA协议标准建立通信连接。
可选地,在本发明的另一个实施例中,步骤22中所述第二设备利用DRM框架实现第一设备和第二设备间的屏幕共享可包括:第二设备对第一设备发送过来的、用于屏幕共享的媒体数据进行接收侧适配;所述第二设备利用DRM框架对所述适配后的媒体数据进行处理,并对处理后得到的媒体数据(即,有效负载)进行显示。
其中,对媒体数据进行接收侧适配可基于wifi-display或DLNA协商后能力集要求来进行。
其中,所述第二设备可根据实际情况利用DRM框架对所述适配后的媒体数据进行处理可包括以下至少一种:数据叠加、渲染、色彩空间处理、时序转换等。
为了更清楚地理解本发明,下面通过具体实施例对本发明屏幕共享的方法进行进一步阐释。需要了解的是,以下具体实施例只是本发明的一种具体实现方式,在本发明的范围内,可以对各种细节进行修改。在以下具体实施例中,以第一设备和第二设备均为媒体终端(下文分别称为媒体终端A和媒体终端B),且以所述第二设备为一个媒体终端为例来进行说明。其中,所述第一设备和所述第二设备可以使用linux平台,也可以使用安卓平台。
图3A是本发明实施例提供的一种屏幕共享的方法的流程图。参照图3A,本发明实施例提供的屏幕共享的方法包括:
31、媒体终端A发布屏幕共享服务,以便于所述媒体终端A通信范围内的其他媒体终端进行订阅。
32、在所述媒体终端A通信范围内的媒体终端B接收到所述获取到所述屏幕共享服务之后,向所述媒体终端A发送发出订阅请求。
33、所述媒体终端A收到媒体终端B的所述订阅请求后,同所述第二设备进行协商,进而建立通信连接。
其中,步骤31~33为建立通信连接的过程,此过程可遵从WiFi display协议标准或DLNA协议标准来完成。建立通信连接的过程中,所述媒体终端A和所述媒体终端B会进行能力集协商,从而确定出双方都可以接受的能力集(即,双方的能力集交集)。
34、在进行屏幕共享时,所述媒体终端A获取本地中用于屏幕共享的媒体数据,所述媒体数据包括图形数据和/或视频数据,并利用自身linux内核中的DRM框架对所述媒体数据进行以下至少一种处理:数据叠加、渲染、色彩空间处理、时序转换。
35、所述媒体终端A将处理后的媒体数据送至所述逻辑显示装置,对送到所述逻辑显示装置的媒体数据进行接收侧适配,并将适配后的媒体数据通过WiFi display协议标准或DLNA协议标准向所述媒体终端B传输。
36、所述媒体终端B对所述媒体终端A发送过来的、用于屏幕共享的媒体数据进行接收侧适配,并利用自身linux内核中的DRM框架对接收的所述媒体数据进行处理,并将处理后得到的媒体数据送至显示屏。
其中,利用DRM框架对接收的所述媒体数据进行处理可包括以下至少一种:数据叠加、渲染、色彩空间处理、时序转换等。
37、所述媒体终端B在显示屏上显示经过处理后得到的媒体数据。
本发明实施例提供的屏幕共享方法可以统一安卓平台和linux平台屏幕共享的实现方案,能够成为Linux图形输出显示(显卡)主流解决方案,而且,可以广泛用于嵌入式领域。
下面结合图3B和图3C对步骤34-36进行进一步阐释。图3B是利用DRM方案实现屏幕共享的逻辑示意图。图3C是利用DRM方案实现屏幕共享的流程图。参照图3C并结合图3B,具体实现过程可如下:
341、媒体终端A通过实现虚拟节点完成屏幕数据缓存的使用;
342、图形数据通过帧缓存(FrameBuffer)的封装经平面1(Plane_1)输入虚拟节点;
343、视频数据经平面2(Plane_2)输入虚拟节点;
344、虚拟节点完成指定平面(Plane)的叠加渲染处理,输出至屏幕数据缓存中;
345、逻辑显示装置(DisplayDevice)作为媒体终端B的逻辑数据输入端,实现媒体终端A和媒体终端B之间的数据映射以及其他相关的控制接口;
346、将部分控制操作通过虚拟编码(Encoder)/连接(Connect)节点转换成对逻辑显示装置的操作;
351、屏幕数据经发送侧封装完成对Wifi-display/DLNA传输层的输出;
361、接收侧对接收的屏幕数据进行协商的封装剥离,以得到有效的载荷,并将有效的载荷存至缓存(例如,图形执行管理器对象(GEM object))中;
362、使用DRM GEM对象(DRM GEM object)描述用户态接收侧同内核态平面1(Plane_1)间内存的共享同映射;
363、使用平面1(Plane_1)完成GEM对象(GEM object)的平面(Plane)的设备封装;
364、平面1(Plane_1)作为媒体终端B物理设备阴极射线管控制器(CathodeRay Tube Controller,CRTC)的一图形层输入,参与后继的混合输出。
结合图3B可知,本发明实施例提供的屏幕共享实现方法,实现较简单,逻辑清晰,由于实现屏幕共享的过程中可有效减少数据流处理环节过程中内核态和用户态之间的多次切换的可能性,因而处理效率得到了提高,还可减少应用的部分缓存(Buffer)操作环节。
与图1所示方法实施例相对应,本发明实施例还提供一种媒体终端,在本发明实施例中,所述媒体终端可以为具备媒体处理功能的任何终端设备,包括但不限于,机顶盒、手机、智能电视等等。参照图4A,所述媒体终端400包括CPU 401、存储器402和显示处理装置403,其中,所述存储器402用于存储所述媒体终端400上的媒体数据,且所述存储器402和所述显示处理装置403通过总线440与所述CPU 401相连接;
所述CPU 401用于,控制所述媒体终端与和其进行屏幕共享的设备建立通信连接;
所述显示处理装置403,用于在所述CPU 401的控制下利用直接渲染管理(DRM)框架实现所述媒体终端和第二设备间的屏幕共享,所述DRM框架存在于所述媒体终端和所述设备的linux内核中。
其中,可选地,所述CPU具体用于:控制所述媒体终端通过WiFi-display协议标准或DLNA协议标准与和其进行屏幕共享的设备建立通信连接。
可选地,在本发明的一个实施例中,所述媒体数据可包括图形数据和/或视频数据。参照图4B,所述媒体终端还可包括视频解码器404、图形编码器405和/或GPU 406。其中:
所述图形编码器405和/或所述GPU 406,用于产生图形数据,并存储在所述存储器上;
所述视频解码器404,用于产生视频数据,并存储在所述存储器上;
在进行屏幕共享之前,所述显示处理装置403用于:建立与所述设备对应的逻辑显示装置,所述逻辑显示装置充当所述设备的逻辑数据输入端;
在进行屏幕共享时,所述显示处理装置403用于:利用DRM框架对存储器402上存储的、用于屏幕共享的媒体数据进行处理,并将处理后的媒体数据送至所述逻辑显示装置;
适配器407,用于对送至所述逻辑显示装置的媒体数据进行接收侧适配处理;
所述媒体终端400还包括通过总线与CPU连接的网络接口408,所述网络接口408用于向所述设备传输用于经接收侧适配处理后的媒体数据。
可选地,所述显示处理装置403可具体用于:利用DRM框架对所述媒体数据进行以下至少一种操作:数据叠加、渲染、色彩空间处理、时序转换。
可选地,所述第二设备为一个设备或多个设备。
在本发明实施例中,所述显示处理装置403可以为显卡。
需要说明的是,本发明实施例中的CPU 401、显示处理装置403、视频解码器404、图形编码器405和/或GPU 406等中的一个或多个硬件可以根据需要集成于系统级芯片(System On Chip,SOC)中。
本发明实施例提供的媒体终端,在确定出需要进行屏幕共享的第二设备时,利用DRM框架来实现所述第一设备和第二设备间的屏幕共享,由于所述DRM框架存在于所述第一设备的linux内核中,即实现屏幕共享的方案在linux内核底层即做到了统一,这样一来,无论是linux平台还是安卓平台都可以直接利用linux内核中的DRM框架来实现屏幕共享,因而,实现了对于linux平台和安卓平台的通用。而且,由于本发明实施例提供的媒体终端在实现屏幕共享时,有效减少了数据流处理环节中内核态和用户态之间多次切换的可能性,因而,相对于现有技术而言,处理效率得到了提高。
相应地,本发明实施例还提供一种媒体终端,在本发明实施例中,所述媒体终端可以为具备媒体处理功能的任何终端设备,包括但不限于,机顶盒、手机、智能电视等等。参照图5A,所述媒体终端500包括CPU 501、存储器502和显示处理装置503,其中,所述存储器502用于存储所述媒体终端500上的媒体数据,且所述存储器502和所述显示处理装置503通过总线540与所述CPU501相连接;
所述CPU 501用于,控制所述媒体终端与和其进行屏幕共享的设备建立通信连接;
所述显示处理装置503,用于利用直接渲染管理DRM框架实现所述第一设备和第二设备间的屏幕共享,所述DRM框架存在于所述媒体终端和所述设备的linux内核中。
其中,可选地,所述CPU具体用于:控制所述媒体终端通过WiFi-display协议标准或DLNA协议标准与和其进行屏幕共享的设备建立通信连接。
可选地,在本发明的一个实施例中,所述媒体终端500还包括网络接口508,用于接收第一设备发送过来的、用于屏幕共享的媒体数据;
适配器507,用于对网络接口508接收的媒体数据进行视频接收侧适配;
所述存储器502,用于存储经所述适配器504适配的媒体数据;
所述显示处理装置503具体用于:
利用DRM框架对存储器502上存储的所述经适配的媒体数据处理,并将处理后得到的媒体数据作为显示屏的一个输入层;
所述媒体终端还包括显示屏509,用于在CPU的控制下将经过显示处理装置处理后的媒体数据进行显示。
其中,所述显示处理装置503进行的处理可包括:数据叠加、渲染、色彩空间处理、时序转换等。
在本发明实施例中,所述显示处理装置503可以为显卡。
需要说明的是,本发明实施例中的CPU 501、显示处理装置503等硬件可以根据需要集成于系统级芯片(System On Chip,SOC)中。
本发明实施例提供的媒体终端,在确定出需要进行屏幕共享的第二设备时,利用DRM框架来实现所述第一设备和第二设备间的屏幕共享,由于所述DRM框架存在于所述第一设备的linux内核中,即实现屏幕共享的方案在linux内核底层即做到了统一,这样一来,无论是linux平台还是安卓平台都可以直接利用linux内核中的DRM框架来实现屏幕共享,因而,实现了对于linux平台和安卓平台的通用。而且,由于本发明实施例提供的媒体终端在实现屏幕共享时,有效减少了数据流处理环节中内核态和用户态之间多次切换的可能性,因而,相对于现有技术而言,处理效率得到了提高。
需要说明的是,在上面的图4A-4B中只是以媒体终端作为媒体数据的发送者来说明媒体终端的内部结构,在上面的图5A-5B中是以媒体终端作为媒体数据的接收者来说明媒体终端的内部结构,但是需要了解的是,本发明实施例中的媒体终端可以只作为媒体数据的发送者,可以只作为媒体数据的接收者,当然在不同的应用场景下也可以按照需要先后作为媒体数据的发送者和接收者。当图4A-4B中的媒体终端不仅作为媒体数据的发送者,而且还可作为媒体数据的接收者时,此时图4A-4B中的媒体终端还可包括图5B中所示的网络接口508和显示屏509(图4B中未示出),且所述网络接口408和网络接口508可以为同一个网络接口。
此时,所示网络接口508,用于接收与所述媒体终端400进行屏幕共享的设备发送过来的、用于屏幕共享的媒体数据;
适配器407,用于对网络接口508接收的媒体数据进行接收侧适配;
所述存储器402,用于存储经所述适配器407适配的媒体数据;
所述显示处理装置403具体用于:
利用DRM框架对存储器402上存储的所述经适配的媒体数据处理;
所述显示屏509,用于在CPU的控制下将经过显示处理装置403处理后的媒体数据进行显示。
同理,当图5A-5B中的媒体终端作为媒体数据的发送者时,此时图5A-5B中的媒体终端还可包括图4B中所示的网络接口408等部件,在此不再赘述。
图6是本发明实施例提供的一种屏幕共享的装置的结构框图。所述屏幕共享的装置可以为具备媒体处理功能的任何终端设备,包括但不限于,机顶盒、手机、智能电视等等。参照图6,本发明实施例提供一种屏幕共享的装置600,所述装置600包括通信连接建立模块601和屏幕共享实现模块602。其中:
通信连接建立模块601,用于将所述装置600和与所述装置600进行屏幕共享的设备建立通信连接;
屏幕共享实现模块602,用于利用直接渲染管理DRM框架实现所述装置600和所述设备间的屏幕共享,所述DRM框架存在于所述装置和所述设备的linux内核中。
其中,在进行屏幕共享之前,所述通信连接建立模块601还可用于:建立与所述设备对应的逻辑显示装置,所述逻辑显示装置充当所述设备的逻辑数据输入端;
所述屏幕共享实现模块602用于:
在进行屏幕共享时,利用DRM框架将用于屏幕共享的媒体数据送至所述逻辑显示装置,进而经由所述逻辑显示装置向所述设备传输用于屏幕共享的媒体数据。
可选地,在一个实施例中,所述屏幕共享实现模块602可具体用于:
利用DRM框架对用于屏幕共享的媒体数据进行处理,并将处理后的媒体数据送至所述逻辑显示装置;
对送到所述逻辑显示装置的媒体数据进行发送侧适配,并将适配后的媒体数据向所述设备传输。
可选地,在一个实施例中,所述通信连接建立模块601可具体用于:
将所述装置600和与所述装置600进行屏幕共享的设备通过WiFi显示协议标准或数字生活网络联盟DLNA协议标准建立通信连接。
可选地,在另一个实施例中,所述屏幕共享实现模块602可具体用于:
对所述设备发送过来的、用于屏幕共享的媒体数据进行接收侧适配;
利用DRM框架对适配后的所述媒体数据进行处理,并对处理后得到的媒体数据进行显示。
本发明实施例提供的屏幕共享的装置,在和其进行屏幕共享的设备建立通信连接后,利用DRM框架来实现所述装置和所述设备间的屏幕共享,由于所述DRM框架存在于所述装置和所述设备的linux内核中,即实现屏幕共享的实现方案在linux内核底层即做到了统一,这样一来,无论是linux平台还是安卓平台都可以直接利用linux内核中的DRM框架来实现屏幕共享,因而,实现了对于linux平台和安卓平台的通用。而且,由于本发明实施例提供的屏幕共享实现方式,有效减少了数据流处理环节过程中内核态和用户态之间多次切换的可能性,因而,处理效率得到了提高。
需要说明的是:上述实施例提供的媒体终端、屏幕共享的装置与屏幕共享的实现方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种屏幕共享的实现方法,其特征在于,所述方法包括:
第一设备和与所述第一设备进行屏幕共享的第二设备建立通信连接;
所述第一设备利用直接渲染管理DRM框架实现所述第一设备和所述第二设备间的屏幕共享,所述DRM框架存在于所述第一设备和所述第二设备的linux内核中。
2.根据权利要求1所述的方法,其特征在于,在进行屏幕共享之前,所述方法还包括:所述第一设备建立与所述第二设备对应的逻辑显示装置,所述逻辑显示装置充当所述第二设备的逻辑数据输入端;
所述第一设备利用直接渲染管理DRM框架实现所述第一设备和所述第二设备间的屏幕共享包括:
在进行屏幕共享时,所述第一设备利用DRM框架将用于屏幕共享的媒体数据送至所述逻辑显示装置,进而经由所述逻辑显示装置向所述第二设备传输用于屏幕共享的媒体数据。
3.根据权利要求2所述的方法,其特征在于,所述第一设备利用DRM框架将用于屏幕共享的媒体数据送至所述逻辑显示装置,进而通过所述逻辑显示装置向所述第二设备传输用于屏幕共享的媒体数据包括:
所述第一设备利用DRM框架对用于屏幕共享的媒体数据进行处理,并将处理后的媒体数据送至所述逻辑显示装置;
所述第一设备对送到所述逻辑显示装置的媒体数据进行发送侧适配,并将适配后的媒体数据向所述第二设备传输。
4.根据权利要求1-3任一所述的方法,其特征在于,第一设备和与所述第一设备进行屏幕共享的第二设备建立通信连接包括:
第一设备和与所述第一设备进行屏幕共享的第二设备通过WiFi显示协议标准或数字生活网络联盟DLNA协议标准建立通信连接。
5.根据权利要求1所述的方法,其特征在于,所述第一设备利用直接渲染管理DRM框架实现所述第一设备和所述第二设备间的屏幕共享包括:
第一设备对第二设备发送过来的、用于屏幕共享的媒体数据进行接收侧适配;
所述第一设备利用DRM框架对适配后的所述媒体数据进行处理,并对处理后得到的媒体数据进行显示。
6.一种屏幕共享的装置,其特征在于,所述装置包括:
通信连接建立模块,用于将所述装置和与所述装置进行屏幕共享的设备建立通信连接;
屏幕共享实现模块,用于利用直接渲染管理DRM框架实现所述装置和所述设备间的屏幕共享,所述DRM框架存在于所述装置和所述设备的linux内核中。
7.根据权利要求6所述的装置,其特征在于,在进行屏幕共享之前,所述通信连接建立模块还用于:建立与所述设备对应的逻辑显示装置,所述逻辑显示装置充当所述设备的逻辑数据输入端;
所述屏幕共享实现模块用于:
在进行屏幕共享时,利用DRM框架将用于屏幕共享的媒体数据送至所述逻辑显示装置,进而经由所述逻辑显示装置向所述设备传输用于屏幕共享的媒体数据。
8.根据权利要求7所述的装置,其特征在于,所述屏幕共享实现模块具体用于:
利用DRM框架对用于屏幕共享的媒体数据进行处理,并将处理后的媒体数据送至所述逻辑显示装置;
对送到所述逻辑显示装置的媒体数据进行发送侧适配,并将适配后的媒体数据向所述设备传输。
9.根据权利要求6-8任一所述的装置,其特征在于,所述通信连接建立模块具体用于:
将所述装置和与所述装置进行屏幕共享的设备通过WiFi显示协议标准或数字生活网络联盟DLNA协议标准建立通信连接。
10.根据权利要求6所述的装置,其特征在于,所述屏幕共享实现模块具体用于:
对所述设备发送过来的、用于屏幕共享的媒体数据进行接收侧适配;
利用DRM框架对适配后的所述媒体数据进行处理,并对处理后得到的媒体数据进行显示。
11.一种媒体终端,其特征在于,包括CPU、存储器和显示处理装置,其中,所述存储器用于存储所述媒体终端上的媒体数据,且所述存储器和所述显示处理装置通过总线与所述CPU相连接;
所述CPU用于,控制所述媒体终端和与所述媒体终端进行屏幕共享的设备建立通信连接;
所述显示处理装置,用于在所述CPU的控制下利用直接渲染管理DRM框架实现所述媒体终端和所述设备间的屏幕共享,所述DRM框架存在于所述媒体终端和所述设备的linux内核中。
12.根据权利要求11所述的媒体终端,其特征在于,
在进行屏幕共享之前,所述显示处理装置用于:建立与所述设备对应的逻辑显示装置,所述逻辑显示装置充当所述设备的逻辑数据输入端;
在进行屏幕共享时,所述显示处理装置用于:利用DRM框架对存储器上存储的、用于屏幕共享的媒体数据进行处理,并将处理后的媒体数据送至所述逻辑显示装置;
所述媒体终端还包括适配器,用于对所述逻辑显示装置中的媒体数据进行发送侧适配处理;
所述媒体终端还包括通过总线与CPU连接的网络接口,所述网络接口用于向所述设备传输用于经适配处理后的媒体数据。
13.根据权利要求11或12所述的媒体终端,其特征在于,所述CPU具体用于:控制所述媒体终端通过WiFi-display协议标准或数字生活网络联盟DLNA协议标准与和其进行屏幕共享的设备建立通信连接。
14.根据权利要求11所述的媒体终端,其特征在于,
所述媒体终端还包括网络接口,用于接收与所述媒体终端进行屏幕共享的设备发送过来的、用于屏幕共享的媒体数据;
适配器,用于对网络接口接收的媒体数据进行接收侧适配;
所述存储器,用于存储经所述适配器适配的媒体数据;
所述显示处理装置具体用于:
利用DRM框架对存储器上存储的所述经适配的媒体数据处理;
所述媒体终端还包括显示屏,用于在CPU的控制下将经过显示处理装置处理后的媒体数据进行显示。
15.根据权利要求11所述的媒体终端,其特征在于,所述CPU和所述显示处理装置集成于系统级芯片SOC中。
16.根据权利要求11或15所述的媒体终端,其特征在于,所述显示处理装置为显卡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510229498.3A CN106209523B (zh) | 2015-05-07 | 2015-05-07 | 一种屏幕共享的实现方法、装置和媒体终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510229498.3A CN106209523B (zh) | 2015-05-07 | 2015-05-07 | 一种屏幕共享的实现方法、装置和媒体终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106209523A true CN106209523A (zh) | 2016-12-07 |
CN106209523B CN106209523B (zh) | 2020-06-02 |
Family
ID=57459305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510229498.3A Active CN106209523B (zh) | 2015-05-07 | 2015-05-07 | 一种屏幕共享的实现方法、装置和媒体终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106209523B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258526A (zh) * | 2020-05-06 | 2020-06-09 | 上海幻电信息科技有限公司 | 投屏方法和系统 |
CN111415636A (zh) * | 2020-03-31 | 2020-07-14 | 惠州华阳通用电子有限公司 | 一种画面共享系统及其实现方法 |
CN113110813A (zh) * | 2021-03-31 | 2021-07-13 | 联想(北京)有限公司 | 一种第一电子设备和处理方法 |
CN114489888A (zh) * | 2022-01-10 | 2022-05-13 | 麒麟软件有限公司 | 基于DRM的Android应用共享Linux系统屏幕数据的方法 |
CN115857860A (zh) * | 2023-03-02 | 2023-03-28 | 麒麟软件有限公司 | Wayland合成器中的镜像屏优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088355A (zh) * | 2009-12-02 | 2011-06-08 | 李立明 | 一种异屏在线帮助系统及其实现方法 |
US20150082027A1 (en) * | 2013-09-16 | 2015-03-19 | Peking University Founder Group Co., Ltd. | Drm method and drm system for supporting offline sharing of digital contents |
-
2015
- 2015-05-07 CN CN201510229498.3A patent/CN106209523B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088355A (zh) * | 2009-12-02 | 2011-06-08 | 李立明 | 一种异屏在线帮助系统及其实现方法 |
US20150082027A1 (en) * | 2013-09-16 | 2015-03-19 | Peking University Founder Group Co., Ltd. | Drm method and drm system for supporting offline sharing of digital contents |
Non-Patent Citations (1)
Title |
---|
JOONYOUNG SHINM: ""TIZEN DEVELOPER CONFERENCE MAY7-9,2012,DRM(Direct Rendering Manager) of Tizen kernel,Joonyoung Shim,豆丁"", 《豆丁网》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111415636A (zh) * | 2020-03-31 | 2020-07-14 | 惠州华阳通用电子有限公司 | 一种画面共享系统及其实现方法 |
CN111415636B (zh) * | 2020-03-31 | 2022-03-11 | 惠州华阳通用电子有限公司 | 一种画面共享系统及其实现方法 |
CN111258526A (zh) * | 2020-05-06 | 2020-06-09 | 上海幻电信息科技有限公司 | 投屏方法和系统 |
CN111258526B (zh) * | 2020-05-06 | 2020-08-28 | 上海幻电信息科技有限公司 | 投屏方法和系统 |
US11589102B2 (en) | 2020-05-06 | 2023-02-21 | Shanghai Hode Information Technology Co., Ltd. | Screen projection method and system |
CN113110813A (zh) * | 2021-03-31 | 2021-07-13 | 联想(北京)有限公司 | 一种第一电子设备和处理方法 |
CN114489888A (zh) * | 2022-01-10 | 2022-05-13 | 麒麟软件有限公司 | 基于DRM的Android应用共享Linux系统屏幕数据的方法 |
CN114489888B (zh) * | 2022-01-10 | 2023-08-04 | 麒麟软件有限公司 | 基于DRM的Android应用共享Linux系统屏幕数据的方法 |
CN115857860A (zh) * | 2023-03-02 | 2023-03-28 | 麒麟软件有限公司 | Wayland合成器中的镜像屏优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106209523B (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101772955B (zh) | 用于操作媒体接口以提供双向通信的方法和装置 | |
US9898796B2 (en) | Collaborative graphics rendering using mobile devices to support remote display | |
CN102595239B (zh) | 一种终端系统的多屏互动方法、装置及智能电视机 | |
CN106209523A (zh) | 一种屏幕共享的实现方法、装置和媒体终端 | |
CN208258096U (zh) | 接收设备和无线传屏系统 | |
EP2631901A2 (en) | Apparatus and method for displaying an image on a sink device | |
CN101350813A (zh) | 一种为数字家电提供WiFi接入互联网的方法和装置 | |
CN103516882B (zh) | 一种基于多屏互动场景图片播放方法及系统 | |
WO2023165370A1 (zh) | 一种信息交互方法、装置、显示设备及存储介质 | |
CN108449360A (zh) | 智能交互一体机 | |
CN104427000B (zh) | 具有传输链路机制的通信系统及其操作的方法 | |
CN103517144A (zh) | 一种多屏互动适配器及显示设备 | |
CN103262559B (zh) | 用于高级数字电视的多媒体i/o系统架构 | |
CN104954748B (zh) | 一种视频处理架构 | |
CN104424141A (zh) | 用于io和入站av的拓扑和带宽管理 | |
CN104349202A (zh) | 视频获取方法与装置 | |
CN105376316A (zh) | 一种具有互联功能的车载后排头枕及实现方法 | |
CN212796749U (zh) | 一种智能车载迎宾系统 | |
CN105120211B (zh) | 一种视频数据传输方法 | |
CN109656467A (zh) | 云网络的数据传输系统、数据交互方法、装置及电子设备 | |
CN102437997A (zh) | 一种基于igrs的屏幕共享方法 | |
CN104050199B (zh) | 数据传输方法和电子设备 | |
CN109116998A (zh) | 可共享周边装置的电子系统 | |
CN102438176B (zh) | 基于igrs技术的将移动终端内容在电视端显示的方法 | |
EP2637415A2 (en) | Source device and method for selectively displaying an image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |