一种共享SDI数据的方法技术

技术编号:14242100 阅读:49 留言:0更新日期:2016-12-21 18:48
本发明专利技术公开了一种共享SDI数据的方法,不需要前置硬件SDI分配器,借鉴socket网络通讯机制,提供一种更加低成本、部署和开发都很简单的软件方法来解除SDI设备独占,并且可以将SDI数据在不同的进程甚至不同的设备(进程外于不同的设备上运行)之间进行共享的目的。

【技术实现步骤摘要】

本专利技术涉及一种共享SDI数据的方法
技术介绍
SDI采集卡用于采集视音频基带信号。每块SDI采集卡可能具有多个SDI端口,这些端口的访问往往是通过生产厂家提供的SDK进行访问,并且在访问过程中是独占方式的,即使在同一设备内,也没有办法使得两个进程同时访问一个端口。上面这种情况造成了在SDI信号处理领域,必须前置硬件SDI分配器,将一路SDI信号分成多路。此种方式使得整个系统的建设成本增加的同时又多出了故障点。
技术实现思路
本专利技术的目的在于克服现有技术中的不足而提供一种共享SDI数据的方法。为实现上述目的,一方面,本专利技术提供的一种共享SDI数据的方法,包括如下步骤:利用SDI采集卡提供的SDK读取SDI基带数据;初始化一个TCP Socket作为Server端建立发布点;通过发布点管理订阅者队列;通过遍历订阅者队列,获取每个订阅者的Socket,并通过Socket将SDI基带数据发给每个订阅者。优选地,SDI基带数据包括图像数据和音频数据。优选地,图像数据包括图像的宽、高、纵横比、帧率、时间戳、时码和数据大小等内容,音频数据包括音频的编码格式、时间戳、时码和数据大小等内容。优选地,建立发布点的步骤中,当建立发布点后,任何Client通过TCP连接至发布点的Port时,即视为订阅请求,将此连接socket加入订阅者队列,在订阅者队列中的订阅者则会接收到SDI基带数据。优选地,发布点管理订阅者队列的步骤如下:创建套接字A;将套接字A绑定到一个本地地址和端口上;将套接字A设为监听模式,准备接收客户端请求;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字B;将套接字B追加入订阅者队列的尾部,作为新的订阅者;将套接字B与对应的订阅者的客户端进程进行数据通信。根据本专利技术提供的一种共享SDI数据的方法,不需要前置硬件SDI分配器,借鉴socket网络通讯机制,提供一种更加低成本、部署和开发都很简单的软件方法来解除SDI设备独占,并且可以将SDI数据在不同的进程甚至不同的设备(进程外于不同的设备上运行)之间进行共享的目的。附图说明图1是本专利技术一实施例的一种共享SDI数据的方法的流程示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。在本专利技术的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本专利技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。在本专利技术中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本专利技术中的具体含义。本专利技术一实施例提供了一种共享SDI数据的方法,包括如下步骤:利用SDI采集卡提供的SDK读取SDI基带数据;初始化一个TCP Socket作为Server端建立发布点;通过发布点管理订阅者队列;通过遍历订阅者队列,获取每个订阅者的Socket,并通过Socket将SDI基带数据发给每个订阅者。具体地,如图1所示,本方法依赖一种系统进行SDI数据共享,该系统包括三个模块:1、数据读取模块:利用SDI采集卡提供的SDK,读取到图像数据、音频数据及其元数据,在这里统一称之为SDI基带数据。图像数据(含元数据)包括图像的宽、高、纵横比、帧率、时间戳、时码、数据大小等数据内容。音频数据(含元数据)包括音频的编码格式、时间戳、时码、数据大小等数据内容。特别说明的是,在本实施例中中,数据读取模块只要读取到数据就立即发送给发送模块,本地不做缓存。2、订阅者管理模块:此模块是用于管理订阅者队列。首先,初始化一个TCP Socket作为Server端来侦听订阅请求和退出请求,侦听Port可以配置。下文中将此称为发布点。只要任何Client通过TCP连接至此发布点的Port,即视为订阅请求,订阅者管理模块会将此连接socket加入订阅者队列,那么此Client即可接收到SDI基带数据。当此Client要求退出时,可发送退出命令给Server端,本实施例中使用的退出命令是“bye”三字节组,一旦Server端收到此命令,订阅者管理模块就会把订阅者的连接socket关闭并剔除出订阅者队列,同时订阅者管理模块也不会再发送SDI基带数据给该Client。订阅者管理模块的发布点(Server端)工作流程如下:(1)创建套接字(使用系统socket函数),本实施例中套接字为socket A;(2)将套接字socket A绑定到一个本地地址和端口上(使用系统bind函数);(3)将套接字socket A设为监听模式,准备接收客户端请求(使用系统listen函数);(4)等待客户请求到来,当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(使用系统accept函数),本实施例中此套接字为socketB;(5)将此套接字socket B追加入订阅者队列尾部,作为新的订阅者。数据发送模块使用此订阅者套接字socket B与订阅者的客户端Client进程进行数据通信,当从套接字socket B上接收到“bye”后将此socket B从订阅者队列中移除,视为订阅者注销。客户端的订阅注册流程如下:(1)创建套接字(使用系统socket函数),本实施例中套接字为socket C;(2)向订阅者管理模块的服务器发出连接请求(connect,服务器的IP地址和端口使用其他方式获取),连接成功即完成订阅;(3)和服务器端进行通信(使用系统recv函数),此时将收到的就是SDI基带数据。客户端的订阅注销流程如下:(1)通过套接字socket C发送“bye”三字节(使用系统send函数)。3、数据发送模块:数据发送模块用于将数据读取模块读取到的SDI基带数据,通过遍历订阅者队列,获取每个订阅者的Socket,并通过此Socket将SDI基带数据发给每个订阅者。根据本专利技术提供的一种共享SDI数据的方法,不需要前置硬件SDI分配器,借鉴socket网络通讯机制,提供一种更加低成本、部署和开发都很简单的软件方法来解除SDI设备独占,并且可以将SDI数据在不同的进程甚本文档来自技高网...
一种共享SDI数据的方法

【技术保护点】
一种共享SDI数据的方法,其特征在于,包括如下步骤:利用SDI采集卡提供的SDK读取SDI基带数据;初始化一个TCP Socket作为Server端建立发布点;通过发布点管理订阅者队列;通过遍历所述订阅者队列,获取每个所述订阅者的所述Socket,并通过所述Socket将所述SDI基带数据发给每个所述订阅者。

【技术特征摘要】
1.一种共享SDI数据的方法,其特征在于,包括如下步骤:利用SDI采集卡提供的SDK读取SDI基带数据;初始化一个TCP Socket作为Server端建立发布点;通过发布点管理订阅者队列;通过遍历所述订阅者队列,获取每个所述订阅者的所述Socket,并通过所述Socket将所述SDI基带数据发给每个所述订阅者。2.根据权利要求1所述的一种共享SDI数据的方法,其特征在于,所述SDI基带数据包括图像数据和音频数据。3.根据权利要求2所述的一种共享SDI数据的方法,其特征在于,所述图像数据包括所述图像的宽、高、纵横比、帧率、时间戳、时码和数据大小等内容,所述音频数据包括所述音频的编码格式、时间戳、时码和数据大小等内容。4.根据权利要求1所述的一...

【专利技术属性】
技术研发人员:陈勇
申请(专利权)人:杭州当虹科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1