Extended 3rd Generation Partnership Project (3GPP) Framework for Live Uplink Streaming Transmission (FLUS) Sink Function Description
By signaling the address of FLUS sink functions within the resource description, the FLUS protocol achieves cross-vendor interoperability, allowing direct access and enhancing functionality across various devices and cloud platforms.
Patent Information
- Application Number
- JP2024069657
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-05-10
- Filing Date
- 2024-04-23
- Publication Date
- 2026-01-27
- Estimated Expiration
- 2041-07-07
AI Technical Summary
The 3GPP Framework for Live Uplink Streaming (FLUS) protocol lacks a detailed mechanism for achieving interoperability between different vendors, as it does not provide a specific address for accessing FLUS sink functions, leading to vendor-specific capability descriptions that hinder cross-vendor interoperability.
A method is introduced to signal the address of a FLUS sink function, allowing direct access by providing a direct address in the sink resource description, which can be included as a new term in the resource description.
Enables direct access to FLUS sink functions, facilitating interoperability between different vendors and enabling seamless functionality across diverse devices and cloud platforms.
Smart Images

Figure 0007807144000004 
Figure 0007807144000005 
Figure 0007807144000006
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims priority to U.S. Provisional Patent Application No. 63 / 105,077, filed October 23, 2020, and U.S. Patent Application No. 17 / 315,967, filed May 10, 2021, both of which are incorporated herein by reference in their entireties.
[0002] [Technical field] TECHNICAL FIELD The present disclosure relates generally to the field of data processing, and more particularly to media processing. [Background technology]
[0003] The 3rd Generation Partnership Project (3GPP) Framework for Live Uplink Streaming (FLUS) protocol provides a mechanism for uplink streaming of multimedia content from a source device to a network and transmitting / distributing that content to one or more destinations. The protocol describes vendor-specific functions and does not provide any detailed description for achieving interoperability. The protocol also does not provide a specific address for achieving those functions. Summary of the Invention [Problem to be solved by the invention]
[0004] The embodiments provide a method, a system, and a computer-readable medium for accessing a 3GPP FLUS sink function. A method for signaling the address of a function in FLUS sink function discovery is provided. Describing the address of a FLUS sink function can provide direct access to the function. [Means for solving the problem]
[0005] According to one aspect, there is provided a method for accessing 3GPP FLUS sink functionality, the method including the steps of: obtaining, by a FLUS source, sink resources for a FLUS sink, the sink resources indicating a direct address at which functionality described in the sink resources can be directly accessed; and directly accessing the functionality by the FLUS source using the direct address.
[0006] According to another aspect, there is provided an apparatus for accessing 3GPP FLUS sink functionality, the apparatus including at least one memory configured to store program code and at least one processor configured to read the program code and operate according to instructions of the program code, the program code including: acquisition code configured to cause the at least one processor to acquire, by a FLUS source, sink resources for a FLUS sink, the sink resources indicating a direct address at which functionality described in the sink resources can be directly accessed; and access code configured to cause the at least one processor to directly access the functionality using the direct address by the FLUS source.
[0007] According to another aspect, there is provided a computer-readable medium for accessing 3GPP FLUS sink functionality, the computer-readable medium having stored thereon a computer program for accessing 3GPP FLUS sink functionality, the computer program being arranged to cause one or more computer processors to perform the steps of: obtaining, by a FLUS source, sink resources for a FLUS sink, the sink resources indicating a direct address at which functionality described in the sink resources can be directly accessed; and directly accessing, by the FLUS source, the functionality using the direct address. [Brief explanation of the drawings]
[0008] These and other objects, features, and advantages will become apparent from the following detailed description of illustrative embodiments, which is to be read in connection with the accompanying drawings. Because the illustrations, together with the detailed description, are intended to facilitate understanding by those skilled in the art, various features of the drawings are not drawn to scale.
[0009] [Figure 1] 1 illustrates a networked computer environment in accordance with at least one embodiment. [Figure 2] FIG. 1 is a block diagram of a system for determining 3GPP FLUS sink capabilities, according to at least one embodiment. [Figure 3] 1 is an operational flowchart of steps performed by a program for accessing 3GPP FLUS sink functionality, according to at least one embodiment. [Figure 4] FIG. 2 is a block diagram of internal and external components of the computer and server of FIG. 1 according to at least one embodiment. [Figure 5] FIG. 2 is a block diagram of a schematic cloud computing environment including the computer system of FIG. 1, according to at least one embodiment. [Figure 6] FIG. 6 is a block diagram of functional layers of the exemplary cloud computing environment of FIG. 5, according to at least one embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0010] Although this specification discloses detailed embodiments of the structures and methods claimed for protection, the disclosed embodiments are merely illustrative of the structures and methods claimed for protection, which may be embodied in various forms. These structures and methods are not limited to the exemplary embodiments described herein, but may be embodied in many different forms. However, providing these exemplary embodiments will make the disclosure clear and complete, and fully convey the scope of protection to those skilled in the art. In order to avoid unnecessarily obscuring the described embodiments, the description omits details of well-known features and techniques.
[0011] As described above, the 3GPP Framework for Live Uplink Streaming (FLUS) protocol provides a mechanism for uplink streaming of multimedia content from a source device to a network and for transmitting / distributing the content to one or more destinations. The protocol includes vendor-specific capability descriptions. In the 3GPP FLUS protocol, a media stream source device establishes an uplink session with a sink over a network. The FLUS API allows the source device to control the session and the sink to provide feedback or remote control to the source device. The 3GPP FLUS protocol supports FLUS source discovery of sink capabilities. Capabilities are recorded as a list of vendor-specific URNs. If a FLUS source does not recognize a URN, it will not know the supported capabilities, and interoperability may be achieved only at the vendor level, not between vendors. Therefore, a method for describing FLUS sink capabilities is preferably defined so that FLUS sources and applications on devices or networks can use the capabilities and execute services on sink devices or cloud platforms.
[0012] Aspects are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer-readable media according to various embodiments, where each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, are implemented by computer-readable program instructions.
[0013] The exemplary embodiments described below provide a system, method, and computer program product capable of determining 3GPP FLUS sink capabilities. Referring to FIG. 1, a functional block diagram of a networked computing environment of a media processing system 100 (hereinafter "system") for determining 3GPP FLUS sink capabilities is shown. Note that FIG. 1 is provided as an illustration of one implementation and is not intended to be limiting as to the environments in which different embodiments may be implemented. Various modifications may be made to the depicted environment based on design and implementation requirements.
[0014] System 100 includes computer 102 and server computer 114. Computer 102 communicates with server computer 114 via communications network 110 (hereinafter, "network"). Computer 102 includes processor 104 and software program 108, which is stored on data storage device 106, enabling computer 102 to interface with a user and communicate with server computer 114. As shown in FIG. 4 below, computer 102 includes internal and external components 800A and 900A, respectively, and server computer 114 includes internal and external components 800B and 900B, respectively. Computer 102 may be, for example, a mobile device, a phone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of computing device capable of running programs and accessing a network and accessing databases.
[0015] 5 and 6, the server computer 114 may further operate in a cloud computing service model, such as Software as a Service (SaaS), Platform as a Service (PaaS), or Infrastructure as a Service (IaaS). The server computer 114 may be located in a cloud computing deployment model, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud.
[0016] The server computer 114 for determining 3GPP FLUS sink capabilities can execute a 3GPP FLUS feature access program 116 (hereinafter "program") that can interact with the database 112. The 3GPP FLUS feature access program method is described in more detail below with reference to FIG. 3. In one embodiment, the computer 102 can act as an input device including a user interface, and the program 116 runs primarily on the server computer 114. In an alternative embodiment, the program 116 can run primarily on one or more computers 102, and the server computer 114 can be used to process and store data used by the program 116. Here, the program 116 can be a separate program or can be integrated into a larger 3GPP FLUS feature access program.
[0017] Note that in some instances, the processing of the program 116 may be shared in any proportion between the computer 102 and the server computer 114. In another embodiment, the program 116 may run on multiple computers, server computers, or some combination of computers and server computers, e.g., multiple computers 102 communicating with a single server computer 114 over the network 110. In another embodiment, for example, the program 116 may run on multiple server computers 114 communicating with multiple client computers over the network 110. Alternatively, the program may run on a network server that communicates with the server and multiple client computers over the network.
[0018] The network 110 may include wired, wireless, or fiber optic connections, or a combination thereof. In general, the network 110 is any combination of connections and protocols that support communication between the computer 102 and the server computer 114. Network 110 may include various types of networks, such as a local area network (LAN), a wide area network (WAN) such as the Internet, a telecommunications network such as a public switched telephone network (PSTN), a wireless network, a public switched network, a satellite network, a cellular network (e.g., a Fifth Generation (5G) network, a Long-Term Evolution (LTE) network, a Third Generation (3G) network, a Code Division Multiple Access (CDMA) network, etc.), a public land mobile network (PLMN), a metropolitan area network (MAN), a dedicated network, a self-organizing network, an intranet, an optical fiber-based network, etc., and / or combinations of these or other types of networks.
[0019] The number and arrangement of devices and networks in Figure 1 are provided as examples. In practice, there may be additional, fewer, different, or differently arranged devices and / or networks than those in Figure 1. Also, two or more of the devices in Figure 1 may be implemented within a single device, or the single device in Figure 1 may be implemented as multiple distributed devices. Additionally or alternatively, one set of devices (e.g., one or more devices) in system 100 may perform one or more functions that another set of devices in system 100 is described as performing.
[0020] Referring to Figure 2, a block diagram of a 3GPP FLUS architecture 200 is shown. The 3GPP FLUS architecture 200 includes a first user environment 202 and a second user environment 204. The first user environment 202 includes one or more capture devices 206 and a FLUS source 208. The FLUS source 208 includes a control source 210, a media source 212, an auxiliary receiver 214, and a remote control target 216. The second user environment 204 includes a FLUS sink 218, an auxiliary transmitter 220, and a remote controller 222. The FLUS sink 218 includes a control sink 224 and a media sink 226.
[0021] The embodiment relates to a method for signaling the address of a FLUS sink function in the discovery of the function, by providing the address of the FLUS sink function, the function can be accessed directly.
[0022] In the current 3GPP FLUS protocol, a source device of a media stream establishes an uplink session with a sink over a network. The FLUS API allows the source device to control the session and the sink to provide feedback or remote control to the source device.
[0023] The current 3GPP FLUS protocol supports retrieval of sink functions and possible descriptions by a FLUS source, but does not provide an address to reach these functions directly. For some applications, direct access to functions is required.
[0024] Table 1 below shows example sink resources corresponding to FLUS sinks (eg, FLUS sink 218). [Table 1]
[0025] A FLUS source (eg, FLUS source 208) searches the resource description of the sink resource and finds its functions based on the entries in Table 1, but does not provide the addresses of the functions.
[0026] In an embodiment, functional addresses are added to the above table based on one or more of the following examples:
[0027] Example 1: For a resource at an address defined by a location URL that includes an address field, define the following configuration: { “url”:“URL-address”, …… }
[0028] In example 1, the location term should have a "url" term that contains the URL of the function.
[0029] Example 2: A function array element may have an additional "url" term. (outside) JPEG0007807144000002.jpg37159
[0030] In example 2, the "url" term may include the URL address of the function.
[0031] Tables 2A and 2B show examples of function objects in JSON format. In an embodiment, Table 2A corresponds to Example 1 above, and Table 2B corresponds to Example 2 above. [Table 2]
[0032] Thus, embodiments relate to a method for describing the location of a 3GPP FLUS sink function by signaling the address of the function in the sink function resource, so that the address can be used to directly access the function, and the address may be included in the description resource or added to the sink function resource as a new term.
[0033] Figure 4 shows a flow chart of an example process 400 for accessing 3GPP FLUS sink functionality. Figure 3 is described with reference to Figures 1 and 2. As described above, the 3GPP FLUS functionality access program 116 (Figure 1) enables FLUS sources and applications in a device or network to use functionality and perform services in a sink device or cloud platform.
[0034] As shown in FIG. 3, process 300 includes obtaining a sink resource for a FLUS sink by a FLUS source, which indicates a direct address at which the functionality described in the sink resource can be directly accessed (block 310).
[0035] As shown in FIG. 3, process 300 includes directly accessing a function by a FLUS source using a direct address (block 320).
[0036] In an embodiment, the sink resource can point to a function description location where the function description can be retrieved, and a direct address is included in the function description.
[0037] In an embodiment, the functional description location is indicated by a first uniform resource locator included in the sink resource, and the direct address is indicated by a second uniform resource locator included in the functional description.
[0038] In an embodiment, elements of an array are used to describe functions in a sink resource.
[0039] In an embodiment, the direct addresses are included in the elements of the array.
[0040] In an embodiment, the address is given directly by the uniform resource locator contained in the elements of the array.
[0041] In an embodiment, the elements of the array further include a uniform resource name that indicates the function.
[0042] 3 is provided as an illustration of one implementation and is not intended to limit implementation of different embodiments. Various modifications to the depicted environments may be made based on design and implementation requirements.
[0043] Figure 4 is a block diagram 400 of the internal and external components of the computer depicted in Figure 1 of an exemplary embodiment. Note that Figure 4 is provided to illustrate one implementation and is not intended to limit the implementation manner of different embodiments. Various modifications to the depicted environment may be made based on design and implementation requirements.
[0044] Computer 102 (FIG. 1) and server computer 114 (FIG. 1) each include sets of internal components 800A, 800B and external components 900A, 900B of FIG. 4. Each set in the set of internal components 800 includes one or more processors 820, one or more computer-readable RAMs 822, one or more computer-readable ROMs 824, one or more operating systems 828, and one or more computer-readable tangible storage devices 830, over one or more buses 826.
[0045] The processor 820 may be implemented in hardware, firmware, or a combination of hardware and software. The processor 820 may be a central processing unit (CPU), graphics processing unit (GPU), accelerated processing unit (APU), microprocessor, microcontroller, digital signal processor (DSP), field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), or another type of processing component. In some implementations, the processor 820 includes one or more processors programmed to perform functions. The bus 826 includes components that allow communication between the internal components 800A, 800B.
[0046] One or more operating systems 828, software programs 108 (FIG. 1), and 3GPP FLUS feature access programs 116 (FIG. 1) on server computer 114 (FIG. 1) are stored in one or more respective computer-readable tangible storage devices 830 for execution by one or more respective processors 820 via one or more respective RAMs 822 (which typically include cache memory). In the embodiment of FIG. 4, each of computer-readable tangible storage devices 830 is a magnetic disk storage device of an internal hard disk drive. Alternatively, each of computer-readable tangible storage devices 830 is a semiconductor storage device, such as ROM 824, EPROM, flash memory, optical disk, magneto-optical disk, solid-state disk, compact disk (CD), digital versatile disk (DVD), flexible disk, magnetic tape cartridge, magnetic tape, and / or another type of non-transitory computer-readable tangible storage device for storing computer programs and digital information.
[0047] Each set of internal components 800A, 800B further includes a R / W drive or interface 832 for reading from and writing to one or more portable computer-readable tangible storage devices 936, such as a CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, optical disk, or semiconductor storage device. For example, software programs 108 (FIG. 1) and 3GPP FLUS feature access program 116 (FIG. 1) are stored in one or more respective portable computer-readable tangible storage devices 936 and readable via the respective R / W drive or interface 832, and loaded into the respective hard disk drive 830.
[0048] Each set of internal components 800A, 800B further includes a network adapter or interface 836, such as a TCP / IP adapter card, a wireless Wi-Fi interface card, or a 3G, 4G, or 5G wireless interface card, or other wired or wireless communication link. The software program 108 (FIG. 1) and the 3GPP FLUS feature access program 116 (FIG. 1) in the server computer 114 (FIG. 1) are downloaded to the computer 102 (FIG. 1) and the server computer 114 from an external computer via a network (e.g., the Internet, a local area network, or other wide area network) and their respective network adapters or interfaces 836. The software program 108 and the 3GPP FLUS feature access program 116 in the server computer 114 are loaded from the network adapters or interfaces 836 onto their respective hard disk drives 830. The network may include copper wire, optical fiber, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers.
[0049] Each set of external components 900A, 900B includes a computer display monitor 920, a keyboard 930, and a computer mouse 934. The external components 900A, 900B may further include touch screens, virtual keyboards, touchpads, pointing devices, and other human-machine interface devices. Each set of internal components 800A, 800B may further include a device driver 840 that interfaces with the computer display monitor 920, the keyboard 930, and the computer mouse 934. The device driver 840, the R / W drive or interface 832, and the network adapter or interface 836 include hardware and software (stored in the storage device 830 and / or the ROM 824).
[0050] While this disclosure includes detailed descriptions of cloud computing, implementation of the teachings described herein is not limited to cloud computing environments, and some embodiments may be implemented in conjunction with any other type of computing environment now known or later developed.
[0051] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of deployable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) and rapidly provisioning and releasing the deployable computing resources with minimal administrative action or interaction with a service vendor. The cloud model includes at least five characteristics, at least three service models, and at least four deployment models.
[0052] The characteristics are as follows: On-demand Self-service: Cloud consumers unilaterally and automatically provision computing capacity, e.g., server time and network storage, on demand without the need for human interaction with the service vendor. Broad Network Access: Functionality is obtained over a network and accessed by standard mechanisms that facilitate use by heterogeneous thin- or thick-client platforms (e.g., mobile phones, laptop computers, and PDAs). Resource Pooling: Provider computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated as needed. Consumers generally have no control over or knowledge of the exact location of the resources being provided, and specify location at a higher level of abstraction (e.g., country, state, or data center), resulting in a sense of location independence. Rapid Elasticity: Rapid and elastic (sometimes automatic) provisioning of capabilities to rapidly scale externally and rapidly release and scale internally. To the consumer, provisionable capabilities generally appear unlimited and can be purchased in any quantity at any time. Measured Service: Cloud systems automatically control and optimize resource usage by utilizing metering capabilities (e.g., storage, processing, bandwidth, and active user accounts) at a level of abstraction appropriate to the service type. Resource usage is monitored, controlled, and reported, providing transparency to both providers and consumers of the services used.
[0053] The service model is as follows: Software as a Service (SaaS): The functionality offered to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessed from a variety of client devices, for example, through a thin-client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, except for limited user-specific application deployment configuration. Platform as a Service (PaaS): The functionality offered to consumers is the deployment of consumer-created or acquired applications, written using programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and possible application hosting environment arrangements. Infrastructure as a Service (IaaS): The functionality offered to consumers is the provisioning of processing, storage, network, and other basic computing resources onto which they can deploy and run any software, including operating systems and applications. While consumers do not manage or control the underlying cloud infrastructure, they do have control over the operating systems, storage, deployed applications, and possibly limited control over the selection of network components (e.g., host firewalls).
[0054] The deployment model is as follows: Private Cloud: Cloud infrastructure is operated solely for one organization. It is managed by the organization or a third party and can reside on-premises or off-premises. Community Cloud: Cloud infrastructure is shared by several organizations to support a specific community of shared interests (e.g., tasks, security requirements, strategies, and compliance considerations). It can be managed by the organization or a third party and can reside on-premise or off-premise. Public Cloud: Cloud infrastructure is used by the general public or large industry organizations and is owned by organizations that sell cloud services. Hybrid Cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0055] Cloud computing environments are service-oriented and focus on statelessness, low coupling, modularity and semantic interoperability. At the heart of cloud computing is an infrastructure consisting of a network of interconnected nodes.
[0056] Referring to FIG. 5, a schematic cloud computing environment 500 is shown. As shown in the figure, the cloud computing environment 500 includes one or more cloud computing nodes 10, and local computing devices used by cloud consumers (e.g., personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automobile computer systems 54N) can communicate with one or more cloud computing nodes. The cloud computing nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) into one or more networks, such as the private clouds, community clouds, public clouds, or hybrid clouds described above, or combinations thereof. This allows the cloud computing environment 500 to provide infrastructure, platforms, and / or software as a service, eliminating the need for cloud consumers to maintain resources on their local computing devices. It should be noted that the types of computing devices 54A-54N in FIG. 5 are for illustrative purposes only, and cloud computing node 10 and cloud computing environment 500 may communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).
[0057] Referring to Figure 6, a set of functional abstraction layers 600 provided by the cloud computing environment 500 (Figure 5) is shown. Note that the components, layers, and functions of Figure 6 are for illustrative purposes only and are not limiting of the embodiments. As shown in the figure, the following layers and corresponding functions are provided:
[0058] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, servers with RISC (Reduced Instruction Set Computer) architecture 62, servers 63, blade servers 64, storage devices 65, and networks and network components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0059] The virtualization layer 70 provides an abstraction layer from which the following instantiations of virtual entities are provided: virtual servers 71, virtual storage 72, virtual networks 73 including virtual private networks, virtual applications and operating systems 74, and virtual clients 75.
[0060] In one example, the management layer 80 provides the following functions: Resource provisioning 81 provides dynamic procurement of computing resources and other resources for executing tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking for utilizing resources in the cloud computing environment and billing or pricing for the consumption of these resources. In one example, these resources include application software licenses. Security provides identity authentication for cloud consumers and tasks and protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides allocation and management of cloud computing resources to ensure required service levels are met. Service level agreement (SLA) planning and execution 85 provides advance arrangement and procurement of cloud computing resources for anticipated future needs based on SLAs.
[0061] The Workload Layer 90 provides examples of functions that can utilize a cloud computing environment. Examples of workloads and functions that can be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom education delivery 93, data analytics processing 94, transaction processing 95, and 3GPP FLUS capability determination 96. 3GPP FLUS capability determination 96 allows FLUS sources and applications in a device or network to use the functions and execute services in a sink device or cloud platform.
[0062] Some embodiments relate to systems, methods, and / or computer-readable media at any possible level of technical detail, including a computer-readable non-transitory storage medium (or media) that includes computer-readable program instructions for causing a processor to perform operations.
[0063] A computer-readable storage medium is a tangible device that can store and store instructions for use by an instruction-execution device. Computer-readable storage media include, but are not limited to, electronic, magnetic, optical, electromagnetic, and semiconductor storage devices, or any suitable combination thereof. A more specific, exemplary, and non-exhaustive list of computer-readable storage media includes portable computer magnetic disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disks (DVD), memory sticks, floppy disks, machine-encoded devices such as punch cards or ridge structures with instructions recorded thereon, and any suitable combination thereof. As used herein, computer-readable storage media should not be construed as a transitory signal itself, such as, for example, radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through guided waves or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted by conductors.
[0064] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium into each computing / processing device, or downloaded to an external computer or external storage device over a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), including copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network interface controller card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device.
[0065] The computer-readable program code / instructions for performing operations may be compilation instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state-setting data, integrated circuit configuration data, or source code or target code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, and the like, and procedural programming languages similar to the "C" programming language or programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. If entirely on a remote computer or server, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, an electronic circuit system, including, for example, a programmable logic circuit system, a field-programmable gate array (FPGA), or a programmable logic array (PLA), may be configured to execute computer-readable program instructions according to state information that utilizes computer-readable program instructions to personalize the electronic circuit system and perform various aspects or operations.
[0066] Providing these computer-readable program instructions to a general-purpose computer, special-purpose computer processor, or other programmable data processing device produces a machine, which uses the instructions executed by the computer's processor or other programmable data processing device to construct an apparatus for implementing the functions / acts specified by one or more blocks in the flowcharts and / or block diagrams. These computer-readable program instructions are stored on a computer-readable storage medium that causes a computer, programmable data processing device, and / or other device to function in a particular manner, thereby making the computer-readable storage medium containing the instructions include an article of manufacture, the article containing the instructions implementing the functions / acts specified by one or more blocks in the flowcharts and / or block diagrams.
[0067] The computer-readable program instructions may further be loaded into a computer, other programmable data processing apparatus, or other device to produce a series of operational steps performed by the computer, other programmable apparatus, or other device, which produce a computer-implemented process, whereby the instructions executed by the computer, other programmable apparatus, or other device implement the functions / acts specified by one or more blocks in the flowcharts and / or block diagrams.
[0068] The flowcharts and blocks in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. For the purposes of this description, each block in a flowchart or block diagram represents a module, segment, or portion of instructions, which includes one or more executable instructions for implementing a specific logical function. The methods, computer systems, apparatuses, and computer-readable media may include additional, fewer, different, or differently arranged blocks than those depicted in the figures. In some alternative embodiments, the functions specified in the blocks may not occur in the order specified in the figures. For example, two blocks shown in succession may actually be executed simultaneously or nearly simultaneously, or the blocks may be executed in reverse order, depending on the functionality. Also, each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by dedicated hardware systems that perform specific functions or operations or that implement a combination of dedicated hardware and computer instructions.
[0069] Obviously, the systems and / or methods described herein can be implemented in different forms of hardware, firmware, or a combination of hardware and software. The implementation is not limited to the actual dedicated control hardware or software code for implementing these systems and / or methods. Accordingly, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and software and hardware may now be designed to implement the systems and / or methods based on the description herein.
[0070] As used herein, no element, act, or instruction should be construed as critical or necessary unless explicitly described. As used herein, the articles "a" and "an" are intended to include one or more items and may be used interchangeably with "one or more." As used herein, the term "set" is intended to include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items, etc.) and may be used interchangeably with "one or more." When referring to only one item, the term "one" or similar language is used. As used herein, the terms "comprising," "having," "containing," etc. are open-ended. Unless explicitly described otherwise, the phrase "based on" means "based at least in part on."
[0071] While each aspect and embodiment has been described for illustrative purposes, the description is not intended to be exhaustive or limited to the disclosed embodiments. While combinations of features may be recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. Indeed, several of these features may be combined in ways not specifically recited in the claims and / or disclosed in the specification. While each dependent claim in this specification may directly refer to only one claim, the disclosure of possible implementations includes each dependent claim in combination with each other claim in the set of claims. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used in this specification is selected to best interpret the principles, practical applications, or technical improvements of the embodiments over the prior art, or to allow those skilled in the art to fully understand the embodiments disclosed herein.
Claims
1. 1. A processor-implemented method for accessing media sink functionality, comprising: obtaining, by a media source, a sink resource description associated with a media sink, the sink resource description including an address by which functionality described in the sink resource description can be directly accessed; accessing the functionality directly by the media source using the address; the sink resource description indicates a function description location where the function description can be read; the address is included in the description of the function; method.
2. the sink resource description includes a uniform resource locator (URL) that points to the location of the function description; The method of claim 1.
3. the address has a first URL included in the description of the function; the location of the function description is indicated by a second URL included in the sink resource description; The method of claim 1.
4. The sink resource description is represented using an array including at least one object element, and the function is described in the sink resource description using the object element of the array. The method of claim 3.
5. the first URL is included in the object element of the array, and the second URL is included in the object element of the array or another object element of the array; The method of claim 4.
6. A uniform resource identifier (URI) including a uniform resource name (URN) identifying the function is included in the same object element as the second URL indicating the location of the function description. The method of claim 5.
7. A device for accessing media sink functionality, comprising: at least one memory configured to store program code; at least one processor configured to read the program code and to act according to the instructions of the program code; The program code, when executed by the at least one processor, causes the at least one processor to perform the method of any one of claims 1 to 6. Device.
8. A computer program which, when executed on a computer, causes the computer to carry out the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
System and method for discovery and access of uplink services
US20180367579A1