Patent Description:
The present disclosure relates to media streaming. In particular, examples relate to an access point for a home network.

A conventional home gateway can be used as a data packet forwarding engine between different networks.

There are a few different ways to stream video to TV (Television). Normally, each video streaming protocol has a specific display adapter or dongle as a receiver for casting the mobile/tablet screen to TV. Dedicated streaming boxes may allow content from major providers like Netflix and Apple TV+ to be viewed. To set up a streaming video at home, the user may need to purchase a gateway for the internet connection and another box or dongle for streaming video.

<CIT> describes service session resource management.

Some examples of apparatuses and/or methods will be described in the following by way of example only, and with reference to the accompanying figures, in which:.

Accordingly, while further examples are capable of various modifications and alternative forms, some particular examples thereof are shown in the figures and will subsequently be described in detail. This detailed description does not limit further examples to the particular forms described. Further examples may cover all modifications, equivalents, and alternatives falling within the scope of the disclosure. Same or like numbers refer to like or similar elements throughout the description of the figures, which may be implemented identically or in modified form when compared to one another while providing for the same or a similar functionality.

<FIG> illustrates a system <NUM> including an access point <NUM>. The access point <NUM> can be configured to communicate with a wide area network <NUM> and/or home network 101b. The access point <NUM> and/or home network 101b can include a router circuit <NUM>, such as for connecting to a wide area network <NUM>. The access point <NUM> can include a memory circuit <NUM> that can store software <NUM>, such as media source application(s). The access point <NUM> includes a processor circuit <NUM> which can be coupled to the memory circuit <NUM>. The processor <NUM> can execute the software <NUM>. The processor circuit <NUM> can, such as when executing the software <NUM>, receive media stream data <NUM> from a media source <NUM> external to the access point <NUM>. The processor circuit <NUM> can generate output data <NUM> for a display device <NUM> based on the received media stream data <NUM>. The access point <NUM> includes, as shown in <FIG>, an output interface <NUM> for connecting to a display device <NUM>. The output interface <NUM> is configured to output the output data <NUM>.

The software <NUM> of the access point <NUM> can include at least one media source application <NUM>. The media source application(s) <NUM> can be used to establish a connection(s) to the media source(s) <NUM>.

The media source application(s) <NUM> of the access point <NUM> can be for streaming media content <NUM> of content provider(s) <NUM>. The media source <NUM> can be a server which is accessible via the wide area network <NUM>. The media source <NUM> can store the media content <NUM>. The media stream data <NUM> can be at least in part received from the server.

The router circuit <NUM> of the access point can receive the media stream data <NUM> from the media source <NUM> (or server). The media stream data <NUM> can be passed to processor circuit <NUM>.

The media source application(s) <NUM> of the access point <NUM> can alternatively/additionally be for streaming media content from a mobile device 110b in a home network 101b. For example, the media source <NUM> can be a mobile device 110b, and the media stream data <NUM> is at least in part received from the mobile device 110b.

The access point can include wireless communication circuitry <NUM>. The media stream data <NUM>, such as from the mobile device 110b, can be received by the wireless communication circuitry <NUM> and passed to the processor circuit <NUM>.

The wireless communication circuitry <NUM> can receive the media stream data <NUM>, e.g. from the mobile device 110b, in accordance with the IEEE <NUM> family of standards of the Institute of Electrical and Electronics Engineers, IEEE.

The processor circuit <NUM> can determine the intended recipient of the media stream data <NUM> based on the media stream data <NUM>; and generate the output data <NUM> only if it is determined that the display device <NUM> is intended recipient.

If it is determined that an entity outside the home network 101b is the intended recipient, the router circuit <NUM> is configured to pass the media stream data to the wide area network <NUM>.

The processor circuit <NUM> can generate the output data <NUM> by encoding the media stream data <NUM> according to a predetermined data transmission standard. The processor circuit <NUM> can decompress the media stream data <NUM> in accordance with a video and/or audio compression standard prior to encoding. The data transmission standard can be the Universal Serial Bus, USB, standard or the High-Definition Multimedia Interface, HDMI, standard.

The output interface <NUM> can be adapted to receive a connector for wired connection to the display device <NUM>. The output interface <NUM> can be a connector in accordance with the Universal Serial Bus, USB, standard, or the High-Definition Multimedia Interface, HDMI, standard.

The wide area network <NUM> can include a wired wide area network and/or a wireless wide area network (such as a cellular network), such as one of a Digital Subscriber Line, DSL, network, an optical network, and a cable television network.

The access point <NUM> can be a residential gateway for connecting the home network 101b to the wide area network <NUM>. Also, the access point <NUM> can be a wireless range extender.

<FIG> illustrates an example of an access point <NUM> for a home network. The example of <FIG> can enable video feature in or through a gateway <NUM> by connecting gateway <NUM> to TV <NUM> via Universal Serial Bus (USB)-to-High Definition Multimedia Interface (HDMI) adapter <NUM> with an external video card that can transmit video and audio to TV <NUM>. With the video stream gateway <NUM> and/or access point <NUM>, users can examine specific Real-Time Messaging Protocol (RTMP) / Real-time Transport Control Protocol (RTCP) video stream (e.g. H. <NUM>) from devices such as a laptop, mobile 210b, tablet 210c, and/or media server 210a for an approved protocol or tag. The video stream can pass to a TV <NUM>, for example, through a USB port and/or HDMI port on the gateway <NUM> without any additional adapter hooked to the TV <NUM>, such as another adapter for streaming. Multiple streaming protocols can be combined into the gateway <NUM> and/or access point <NUM>. The gateway <NUM> and /or access point <NUM> can be a network access point and/or an intermediate point of streaming content to and from TV <NUM>.

The gateway <NUM> and/or access point <NUM> can combine the functions of a wireless access point <NUM> and a router <NUM> and can provide streaming video to devices such as a big-screen TV as well. The gateway <NUM> and/or access point <NUM> can allow users to use services to rent or buy movies, such as directly with a third-party app. People are able to enjoy videos, photos, movies and more using the access point <NUM> and/or gateway <NUM>, such as one with a USB to HDMI adapter (or HDMI cable). The gateway <NUM> and/or access point <NUM> may be used in multiple product lines (like gateway, TV box and streaming video device). A user and/or customer may create and maintain his/her own product based on the proposed gateway <NUM> and/or access point <NUM> and/or network processor System on Chips (SoCs).

<FIG> illustrates an example of a block diagram of the software structure <NUM> of an access point <NUM> for a home network. <FIG> shows building blocks which may include software drivers, user applications, and hardware (HW) components. <FIG> also illustrates the interaction and data flow of packets through the different modules and/or blocks.

The components in the exemplary system and/or software structure can include a CBM <NUM>: Central Buffer Manager <NUM> which can be for hardware allocation of buffers to be used in Direct memory access (DMA) when packets are received/transmitted at network interfaces. A PAE <NUM>, or Packet Acceleration Engine <NUM>, such as for packet L2 to L7 parsing, L2 switching, L3 and L4 routing acceleration in hardware can be included. A LAN-switch <NUM> and/or Local Area Network (LAN) ethernet ports can be included. A Datapath Application Programming Interface (API) can be included, such as for support for port initialization, sub interface registration and driver interface requirement(s). A Directpath driver and/or directpath manager <NUM> can be included, which can be a module that allows PCIe attached device such as Wi-Fi (e.g. based on the IEEE <NUM> family of standards of the Institute of Electrical and Electronics Engineers, IEEE)/Long-Term Evolution (LTE)/ Digital Subscriber Line (DSL)/ Passive Optical Network (PON) to register and use partial offload.

Also there can be included a Chromecast application 1a, e.g. to process display messages from the sender application for Android. Also there can be included an Airplay application, for example to share videos, music and more from Apple devices to TV. Also there can be included a streaming service application 1c, for example for streaming services for movies, TV series and sports on TV.

The components in the exemplary system and/or software structure can include a video manager <NUM> which can be used to send/receive media messages/events and can establish communication with USB graphic driver <NUM>. The USB graphic driver <NUM> can capture the streaming data, encode, and send to the USB-to-HDMI device. The HDMI output, for example, may be transmitted to a TV.

The packet flow for hardware and software connectivity may be as in the following examples. The access point as described herein may be configured to enable the following examples.

An example of Chromecast/Airplay protocol data flow via WIFI:
Chromecast/Airplay application 1a, 1b on mobile/tablet → WIFI HW <NUM> WIFI driver -> Directpath driver <NUM> → Datapath API Driver <NUM> → CBM <NUM> → PAE <NUM> → CBM <NUM> → Datapath API Driver <NUM> → Directpath driver <NUM> → WIFI driver 3c → Linux Network Stack <NUM><NUM> Chromecast/Airplay application 1a/1b → Video manager <NUM> → USB graphic driver <NUM> → HDMI <NUM> TV.

An example of Chromecast/Airplay protocol data flow via WIFI with PAE acceleration:
Chromecast/Airplay application 1a/1b on mobile/tablet→ WIFI HW → WIFI driver <NUM> Directpath driver <NUM> → Datapath API driver <NUM> → CBM <NUM> → PAE <NUM> → CBM <NUM>→ PAE <NUM>→ USB graphic driver <NUM><NUM> HDMI <NUM> TV.

An example of streaming server to TV data flow via xDSL WAN (Wide Area Network):
Media Stream Server 1c → xDSL WAN → xDSL Driver <NUM> Directpath driver <NUM><NUM> Datapath API Driver <NUM> → CBM <NUM> → PAE <NUM> → CBM <NUM> → Datapath API Driver <NUM> -> Directpath driver <NUM> xDSL Driver <NUM> Linux Network Stack <NUM><NUM> Streaming Service application 1c → Video manager <NUM> → USB graphic driver <NUM> → HDMI → TV.

An example of streaming server to TV data flow via xDSL WAN with PAE acceleration:
Media Stream Server 1c → xDSL WAN → xDSL Driver → Directpath driver <NUM> -> Datapath API Driver <NUM> → CBM <NUM><NUM> PAE <NUM><NUM> CBM <NUM> → PAE <NUM> → USB graphic driver <NUM><NUM> HDMI <NUM> TV.

It will be understood that when an element is referred to as being "connected" or "coupled" to another element, the elements may be directly connected or coupled via one or more intervening elements. If two elements A and B are combined using an "or", this is to be understood to disclose all possible combinations, i.e. only A, only B as well as A and B, if not explicitly or implicitly defined otherwise. An alternative wording for the same combinations is "at least one of A and B" or "A and/or B". The same applies, mutatis mutandis, for combinations of more than two elements.

Whenever a singular form such as "a", "an" and "the" is used and using only a single element is neither explicitly or implicitly defined as being mandatory, further examples may also use plural elements to implement the same functionality. It will be further understood that the terms "comprises," "comprising", "includes" and/or "including", when used, specify the presence of the stated features, integers, steps, operations, processes, acts, elements and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, processes, acts, elements, components and/or any group thereof.

The program may be stored on nontransitory or transitory machine readable media.

When functions described herein can be provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which or all of which may be shared. The term "processor" or "controller" can include, for example, digital signal processor (DSP) hardware, a network processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a read only memory (ROM) for storing software, a random access memory (RAM), and non-volatile storage.

Similarly, a flow chart, a flow diagram, a state transition diagram, a pseudo code, and the like may represent various processes, operations or steps, which may be substantially represented in computer readable medium and executed by a computer or processor. Methods disclosed in the specification or in the claims may be implemented by a device that can perform each of the respective acts of these methods.

It is to be understood that the disclosure of multiple acts, processes, operations, steps or functions disclosed in the specification or claims may not be construed as to be within the specific order, unless explicitly or implicitly stated otherwise, for instance for technical reasons. Therefore, the disclosure of multiple acts or functions will not limit these to a particular order unless such acts or functions are not interchangeable for technical reasons. Furthermore, in some examples a single act, function, process, operation or step may include or may be broken into multiple sub-acts, -functions, -processes, -operations or -steps, respectively. Such sub acts may be included and part of the disclosure of this single act unless explicitly excluded.

Claim 1:
An access point (<NUM>, <NUM>) for a home network (101b), comprising:
a processor circuit (<NUM>), wherein, when executing software (<NUM>), wherein the software (<NUM>) comprises at least one media source application (<NUM>) for streaming media content of a content provider, the processor circuit is configured to:
establish a connection to the media source (<NUM>) using the at least one media source application, wherein the media source (<NUM>) is a server accessible via a wide area network (<NUM>) and storing the media content;
receive media stream data (<NUM>) from the media source (<NUM>) external to the access point, wherein the media stream data (<NUM>) is at least in part received from the server;
determine an intended recipient of the media stream data (<NUM>) based on the received media stream data, and
generate output data (<NUM>) by encoding the media stream data (<NUM>) according to a predetermined data transmission standard, only if it is determined that a display device is the intended recipient, wherein the output data (<NUM>) is for the display device and the output data (<NUM>) is based on the received media stream data (<NUM>); and
an output interface (<NUM>) for connecting to the display device (<NUM>), wherein the output interface is configured to output the output data (<NUM>).