Patent Description:
This disclosure is generally directed to streaming video and audio data to a display device.

Users use mobile devices such as smartphones, laptops, tablets, and the like to video chat with their family and friends. However, the screens of mobile devices are often too small for this purpose. For example, in the event a user is attempting to video chat with their family, the user can find it difficult to view all their family members in a small display of a mobile device. Conventional systems do not provide the capability of seamlessly connecting the mobile device to a larger display device to stream the video chat. Therefore, the process of connecting the mobile device to a larger display device can be cumbersome.

<CIT> discloses a system in which an information processing apparatus is caused to function as a user image acquisition unit which acquires a user image captured by using a camera of a portable information processing apparatus, a communication partner image acquisition unit which acquires a communication partner image via a network, and a display control unit which causes the user image to be displayed on at least one of a display of the portable information processing apparatus and an external display, and which causes the communication partner image to be displayed on at least one of the display of the portable information processing apparatus and the external display.

<CIT> discloses a multi-site, multi-location, three dimensional video conferencing system that incorporates at least one conferencing apparatus that is operatively coupled with a server (say in the cloud), wherein the conferencing apparatus enables user's own smartphones and/or tablets to be inserted/detected therein to enable conferencing to take place.

Provided herein are system, apparatus, device, method and/or computer program product embodiments, and/or combinations and sub-combinations thereof, for streaming a video chat from a mobile device on a display device.

According to a first aspect of the present invention there is provided a method as specified in claim <NUM>.

According to a second aspect of the present invention there is provided a system as specified in claim <NUM>.

According to a third aspect of the present invention there is provided a rotating base as specified in claim <NUM>.

According to a fourth aspect of the present invention there is provided a non-transitory computer-readable medium as specified in claim <NUM>.

As indicated above, a user can desire to view a display of a video chat on a larger display device. As such, the user can desire to stream the display of the video chat on a larger display. Conventional methods for attaching a display device to a mobile device are cumbersome and complicated.

In a given embodiment, a first user can use a first mobile device to transmit a video chat request to a server to initiate a video chat with a second user using a second mobile device. The server can enable communication between the first and second mobile devices in response to receiving the video request. The communication can include audio and video data. The audio data can be received through the microphones of the first and second mobile devices, and the video data can be received through the cameras of the first and second video devices.

The first user can couple the first mobile device to a rotating base to stream the video chat on a display device, such as a television. The rotating base can include a rotatable unit coupled to a coupling unit, a motor coupled to the rotatable unit, and a controller coupled to the motor. The rotating base can also include a communication device coupled to the controller. The mobile device can be communicatively coupled to the rotating base using the communication device. Furthermore, the mobile device can be physically coupled to the rotating device using the coupling unit. In response to the first mobile device being communicatively coupled to the rotating base, a streaming request can be transmitted to the server. The server can form a connection between the display device and the first mobile device. The incoming audio and video data received by the first mobile device can be output by the display device.

An application executing on the first mobile device can use the camera of the first mobile device to determine whether the first mobile device needs to be moved based on the movement of the first user to keep the first user is within the field of view of the camera. The camera of the first mobile device can capture the movement of the first user (e.g., an object) in the field of view of the camera. The application determines an amount that the first mobile device needs to be moved to keep the first user within the field of view. The application transmits an instruction to the rotating base to rotate the rotatable unit the determined amount. In response to receiving the instruction, the controller can instruct the motor to move the rotatable unit by the determined amount. By doing so, the rotatable unit can move the coupling unit holding the first mobile device.

The above configuration allows for seamlessly streaming audio and video data of a video chat on a display device, such as a television, to name just one example. Furthermore, this configuration allows for a hands-free experience while the user is participating in the video chat.

<FIG> is a block diagram of a system for streaming a video chat from a mobile device to a display device. In an embodiment, the system can include a server <NUM>, first mobile device <NUM>, display device <NUM>, rotating base <NUM>, and second mobile device <NUM>. Server <NUM>, first mobile device <NUM>, and second mobile device <NUM> can be connected through wired connections, wireless connections, or a combination of wired and wireless connections. Furthermore, server <NUM> and display device <NUM> can be connected through wired connections, wireless connections, or a combination of wired and wireless connections.

As an example, server <NUM>, first mobile device <NUM>, and second mobile device <NUM> can be connected through a network. Server <NUM> and display device <NUM> can also be connected through the network. The network can be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a wireless network, a WiFi network, a WiMax network, any other type of network, or a combination of two or more such networks.

Rotating base <NUM> can include communication device <NUM>. First mobile device <NUM> can be communicatively coupled to communication device <NUM> of rotating base <NUM> through a wired or wireless connection. For example, a data cable coupled to a data port of first mobile device <NUM> can be connected to communication device <NUM>. In some embodiments, communications device <NUM> can be a Near Field Communication (NFC) device, such as a Bluetooth® device. Therefore, first mobile device <NUM> can be wirelessly coupled to communication device <NUM>.

Server <NUM> can include streaming system <NUM> and video chat system <NUM>. Streaming system <NUM> can be configured to stream incoming video and audio data to display device <NUM>. Video chat system <NUM> can be configured to facilitate a video chat between first mobile device <NUM> and second mobile device <NUM>. In this regard, first mobile device <NUM> and second mobile device <NUM> can transmit and receive audio and video data to and from one another through video chat system <NUM>.

First mobile device <NUM> can include a first display <NUM>, first speaker <NUM>, first microphone <NUM>, application <NUM>, first camera <NUM>, and first video chat application <NUM>. First microphone <NUM> can be configured to receive and capture audio input. First speaker <NUM> can output audio data. First speaker <NUM> may be built-in to first mobile device <NUM> or be external to first mobile device <NUM>. If first speaker <NUM> is external to first mobile device <NUM>, it may be coupled to first mobile device using a wired or wireless connection. First camera <NUM> can be configured to receive and capture image data, including still image data and video data. First camera <NUM> can also include sensor <NUM>. Sensor <NUM> can be an optical sensor configured to track the movement of an object within the field of view of first camera <NUM>.

First video chat application <NUM> can be a video chat platform or Voice-over-IP (VOIP) system configured to allow first mobile device <NUM> to transmit and receive audio and video data to and from another mobile device, such as second mobile device <NUM>. First video chat application <NUM> can communicate with another mobile device (e.g., second mobile device <NUM>), through video chat system <NUM>. Alternatively, first video chat application <NUM> can be a third-party video chat platform configured to communicate with the other mobile device using a third-party video chat system, such as Zoom®, WebEX ®, GOOGLE Hangouts®, Microsoft Teams ®, or the like. Furthermore, first video chat application <NUM> can be a third-party Voice-over-IP (VoIP), such as Skype®, Messenger®, WhatsApp®, FaceTime®, or the like.

Application <NUM> can be a streaming application. Application <NUM> can be configured to transmit a request to server <NUM> to stream audio and video data of a video chat from first mobile device <NUM> to display device <NUM>. Display device <NUM> can output the audio and video data. Application <NUM> can also be configured to track a user's movement within the field of view of first camera <NUM>, using sensor <NUM>.

Second mobile device <NUM> can include a second display <NUM>, second speaker <NUM>, second microphone <NUM>, second camera <NUM>, and second video chat application <NUM>. The second microphone <NUM> can be configured to receive and capture audio input. Second speaker <NUM> can output audio data. Second speaker <NUM> may be built-in to second mobile device <NUM> or be external to second mobile device <NUM>. If second speaker <NUM> is external to second mobile device <NUM>, it may be coupled to first mobile device using a wired or wireless connection. Second camera <NUM> can be configured to receive and capture image data, including still image data and video data. Second video chat application <NUM> can be a video chat platform or Voice-over-IP (VOIP) system configured to allow second mobile device <NUM> to transmit and receive audio and video data to and from another mobile device, such as first mobile device <NUM>.

Display device <NUM> can include a display <NUM>, display speaker <NUM>, and application <NUM>. Display <NUM> can output still and moving image data (e.g., video data). Display speaker <NUM> can be configured to output audio data. Application <NUM> can be a streaming application configured to receive audio and video data from first mobile device <NUM> to be output by display <NUM> and display speaker <NUM>. Display device <NUM> can be a television, monitor, projector screen, or the like.

Rotating base <NUM> can be a base configured to hold, support, and rotate a mobile device (e.g., first mobile device <NUM>). Rotating base <NUM> can include a rotatable unit, a coupling unit, communication device <NUM>, motor <NUM>, and controller <NUM>. The rotatable unit and coupling unit will be described in further detail with respect to <FIG>. Controller <NUM> can be coupled to communication device <NUM> and motor <NUM>. Furthermore, motor <NUM> can be coupled to the rotatable unit, and the rotatable unit can be coupled to the coupling unit.

Rotating base <NUM> can be physically coupled to first mobile device <NUM> using the coupling unit. The coupling unit can include an attachment mechanism to hold and support first mobile device <NUM>. The attachment mechanism can include clasps, latches, magnets, or the like.

In some embodiments, rotating base <NUM> can be configured to provide power to first mobile device <NUM> in response to physically coupling to the fist mobile device <NUM>. The power can be provided through a cord forming a connection between rotating base <NUM> and first mobile device <NUM>. The cord may receive power through a power outlet. Alternatively, the cord may receive power from rotating base <NUM>'s or display device <NUM>'s power source through a USB port.

In some embodiments, the rotating base <NUM> or display device <NUM> may also wirelessly provide power to first mobile device <NUM> using the Qi Standard.

As described above, the coupling unit can be coupled to the rotatable unit. The rotatable unit can be an arm or ball, configured to rotate around a rotational axis. The rotatable unit can rotate the coupling unit and, in turn, rotate first mobile device <NUM>, which is physically coupled to the coupling unit. The rotatable unit can also traverse along the x-axis and z-axis. Motor <NUM> can control the operation (e.g., rotation) of the rotating unit.

Rotating base <NUM> can be communicatively coupled to first mobile device <NUM> using communication device <NUM>. Communication device <NUM> can be a data port configured to form a connection with first mobile device using a data cable. Alternatively, communication device <NUM> can be an NFC device such as a Bluetooth® device, configured to connect with first mobile device <NUM> wirelessly.

In response to receiving first mobile device <NUM> being physically and communicatively coupled with rotating base <NUM>, controller <NUM> can receive instructions from first mobile device <NUM> to rotate the rotatable unit a predetermined amount. Controller <NUM> can instruct the motor to rotate the rotatable unit the predetermined amount.

<FIG> is a block diagram illustrating a data flow of the system for streaming a video chat from a mobile device to a display device. In a given embodiment, a first user of first mobile device <NUM> can attempt to initiate a video chat with a second user of second mobile device <NUM> using first video chat application <NUM> of first mobile device <NUM> and second video chat application <NUM> of second mobile device <NUM>. As an example, first video chat application <NUM> and first video chat application <NUM> can be a video chat platform or VoIP platform. In the event first video chat application <NUM> and second video chat application <NUM> are VoIP platforms, first video chat application <NUM> can convert the audio and video data into a digital signal. This way, the audio, and video data can be transmitted over a network.

First mobile device <NUM> can launch first video chat application <NUM>. First, mobile device <NUM> can retrieve an identifier associated with second mobile device <NUM> (e.g., phone number, user identifier, username, screen name, or the like). First mobile device <NUM> can transmit request <NUM>-<NUM> to video chat system <NUM> for initiating a video chat with second mobile device <NUM>. Request <NUM>-<NUM> can include the identifier associated with second mobile device <NUM>.

Server <NUM> can receive request <NUM>-<NUM> and video chat system <NUM> can identify second mobile device <NUM> using the identifier in request <NUM>-<NUM>. Video chat system <NUM> can transmit request <NUM>-<NUM> to initiate the video chat with second mobile device <NUM>. Request <NUM>-<NUM> can include an identifier of first mobile device <NUM>.

In response to receiving request <NUM>-<NUM>, second mobile device <NUM> can launch second video chat application <NUM>. Second video chat application <NUM> can generate an alert indicating that request to initiate a video chat with first mobile device <NUM>. The alert can be audible, haptic, visual, or a combination of both. The second user can accept the request to initiate the video chat by providing an input (e.g., selecting an "accept" button). In response to the second user accepting the request to initiate the video chat, second video chat application <NUM> can transmit response <NUM>-<NUM> to video chat system <NUM>. Response <NUM>-<NUM> can include an instruction to initiate the video chat with first mobile device <NUM>.

Server <NUM> can receive response <NUM>-<NUM>, and video chat system <NUM> can generate response <NUM>-<NUM>. Response <NUM>-<NUM> can enable audio and video data transmissions between first mobile device <NUM> and second mobile device <NUM>. Video chat system <NUM> can transmit response <NUM>-<NUM> to first video chat application <NUM> of first mobile device <NUM>. In some embodiments, the audio and video transmissions may also allow for screen sharing capabilities. As such, the video data may include image data of a first mobile device <NUM> or second mobile device <NUM> corresponding to image data being displayed on first display <NUM> or second display <NUM>.

At the time the video chat is initiated, first video chat application <NUM> of first mobile device <NUM> and second video chat application <NUM> of second mobile device <NUM> can negotiate a format for compressing, encoding, decoding, and syncing the outgoing audio and video data. The negotiated format can be a format accepted by first and second mobile devices <NUM> and <NUM> as well as the network connection. This way, first video chat application <NUM> can compress, encode, and sync audio and video in a format that can be decompressed and decoded by second video chat application <NUM>. Similarly, second video chat application <NUM> can compress, encode, and sync audio and video in a format that can be decompressed and decoded by first video chat application <NUM>. Furthermore, the compression, encoding, decoding, and syncing formats can be updated during the video chat using adaptive streaming based on the network connection, quality of the video, or the like.

In response to receiving response <NUM>-<NUM>, first video chat application <NUM> can make first camera <NUM> and first microphone <NUM> operational. First camera <NUM> can receive and capture outgoing video data within a field of view of first camera <NUM>. First microphone <NUM> can receive and capture outgoing audio data within a given proximity of first mobile device <NUM>. First video chat application <NUM> can transmit the captured outgoing video and audio data to second video chat application <NUM> of second mobile device <NUM>, through video chat system <NUM>.

In some embodiments, first mobile device <NUM> and second mobile device <NUM> may form a peer-to-peer connection after the initiation of the video chat. In this regard, first and second mobile devices <NUM>, <NUM> may directly transmit audio and video data to each other over a network using first and second video chat application <NUM> and <NUM>.

Second video chat application <NUM> of second mobile device <NUM> can receive the incoming audio, and video data from first video chat application <NUM> of first mobile device <NUM>. Second video chat application <NUM> can cause display of the incoming video data on second display <NUM> and output the incoming audio data through a second speaker <NUM> of second mobile device <NUM>. Speaker <NUM> can be built-in second mobile device <NUM> or can be externally connected to second mobile device <NUM>.

Second camera <NUM> can receive and capture outgoing video data within a field of view of second camera <NUM>. Second microphone <NUM> can receive and capture outgoing audio data within a given proximity of second mobile device <NUM>. Second video chat application <NUM> can transmit the captured outgoing video and audio data to first video chat application <NUM> of first mobile device <NUM> through video chat system <NUM>. As stated above, first and second mobile device <NUM>, <NUM> may also transmit audio and video communication directly to one another over a peer-to-peer connection.

First video chat application <NUM> of first mobile device <NUM> can receive the incoming audio and video data from second video chat application <NUM> of second mobile device <NUM>. First video chat application <NUM> can cause display of the incoming video data on first display <NUM> and output the incoming audio data through a first speaker <NUM> of first mobile device <NUM>. First speaker <NUM> can be built-in first mobile device <NUM> or can be externally connected to first mobile device <NUM>. The audio and video data transmissions and output between first mobile device <NUM> and second mobile device <NUM> can be in (near) real-time.

In some embodiments, first video chat application <NUM> of first mobile device <NUM> and second video chat application <NUM> of second mobile device <NUM> can be a third-party video chat platform, such as Zoom®, CISCO Webex®, GOOGLE Hangouts®, MICROSOFT Teams®, or the like. Alternatively, first video chat application <NUM> of first mobile device <NUM> and second video chat application <NUM> of second mobile device <NUM> can be a third-party VOIP platform such as SKYPE, MESSENGER, FACETIME or WHATSAPP. In the event, first video chat application <NUM> of first mobile device <NUM> and second video chat application <NUM> of second mobile device <NUM> are third-party video chat platforms or third-party VoIP platform, first video chat application <NUM> of first mobile device <NUM> and second video chat application <NUM> of second mobile device <NUM> can communicate through a third-party server.

In some embodiments, first and second mobile device may transmit or stream audio and video data directly to one another using first video chat application <NUM> and second video chat application <NUM>. That is, first mobile device <NUM> can launch first video chat application <NUM>. First video chat application <NUM> may transmit a request to initiate a video chat to second video chat application <NUM> of second mobile device <NUM>.

In response to receiving the video chat request, second video chat application <NUM> can generate an alert indicating that request to initiate a video chat with first mobile device <NUM>. In response to the second user accepting the request to initiate the video chat, second video chat application <NUM> can transmit a response to first video chat application <NUM> including an instruction to initiate the video chat with first mobile device <NUM>.

First video chat application <NUM> can make first camera <NUM> and first microphone <NUM> operational. First camera <NUM> can receive and capture outgoing video data within a field of view of first camera <NUM>. First microphone <NUM> can receive and capture outgoing audio data within a given proximity of first mobile device <NUM>. First video chat application <NUM> can transmit the captured outgoing video and audio data to second video chat application <NUM> of second mobile device <NUM>.

Second video chat application <NUM> of second mobile device <NUM> can receive the incoming audio, and video data from first video chat application <NUM> of first mobile device <NUM>. Second video chat application <NUM> can cause display of the incoming video data on second display <NUM> and output the incoming audio data through the second speaker <NUM> of second mobile device <NUM>. The speaker can be built-in second mobile device <NUM> or can be externally connected to second mobile device <NUM>.

Second camera <NUM> can receive and capture outgoing video data within a field of view of second camera <NUM>. Second microphone <NUM> can receive and capture outgoing audio data within a given proximity of second mobile device <NUM>. Second video chat application <NUM> can transmit the captured outgoing video and audio data to first video chat application <NUM> of first mobile device <NUM> through video chat system <NUM>.

First video chat application <NUM> of first mobile device <NUM> can receive the incoming audio and video data from second video chat application <NUM> of second mobile device <NUM>. Second video chat application <NUM> can cause display of the incoming video data on first display <NUM> and output the incoming audio data through first speaker <NUM> of first mobile device <NUM>. The speaker can be built-in first mobile device <NUM> or can be externally connected to first mobile device <NUM>. The audio and video data transmissions and output between first mobile device <NUM> and second mobile device <NUM> can be in (near) real-time.

The first user can desire to view the incoming video data on display device <NUM>. As indicated above, display device <NUM> can be a television, monitor, projection screen, or the like. First mobile device <NUM> can transmit request <NUM>-<NUM> to rotating base <NUM> to communicatively couple with rotating base <NUM>. In some embodiments, request <NUM>-<NUM> can be generated in response to forming a connection with rotating base <NUM> by inserting one end of a data cable in a data port of first mobile device <NUM> and inserting the other end of the data cable in a data port of rotating base <NUM>. The data port of rotating base <NUM> can be communication device <NUM> of rotating base <NUM>. In other embodiments, request <NUM>-<NUM> can be generated in response to wirelessly connecting to communication device <NUM> of rotating base <NUM>.

In response to receiving request <NUM>-<NUM>, rotating base <NUM> can generate response <NUM>-<NUM>. Response <NUM>-<NUM> can include an instruction for first mobile device <NUM> to launch application <NUM> and transmit a request through application <NUM> to stream the audio and video data being received by first mobile device <NUM> to display device <NUM>. Rotating base <NUM> can transmit response <NUM>-<NUM> to first mobile device <NUM>.

As indicated above, communications device <NUM> can be an NFC device. First mobile device <NUM> can be connected with communications device <NUM> using wireless radio waves. For example, request <NUM>-<NUM> can be a request to pair with communications device <NUM>. Request <NUM>-<NUM> can include an identifier of first mobile device <NUM> (e.g., MAC address, phone number, IMEI number, or the like). Rotating base <NUM> can confirm the identifier of first mobile device <NUM> and confirm the request to pair with first mobile device <NUM>. The confirmation can be transmitted in response <NUM>-<NUM>. Request <NUM>-<NUM> and response <NUM>-<NUM> can form an electronic handshake.

In response to receiving response <NUM>-<NUM>, first mobile device <NUM> can launch application <NUM>. Application <NUM> can transmit request <NUM>-<NUM> to server <NUM>. Request <NUM>-<NUM> can include a request to stream the audio and video data received by first mobile device <NUM> to display device <NUM>. Request <NUM>-<NUM> can include an identifier of display device <NUM>. The identifier can be a MAC address.

In response to receiving request <NUM>-<NUM>, streaming system <NUM> can transmit request <NUM>-<NUM> to display device <NUM>. Request <NUM>-<NUM> can be a request to form a connection with display device <NUM>. Request <NUM>-<NUM> can include the identifier of display device <NUM>, an identifier of server <NUM>, and an identifier of first mobile device <NUM>. In response to receiving request <NUM>-<NUM> application <NUM> of display device <NUM> can initiate a connection with server <NUM> and transmit a confirmation of initiation of the connection. The connection can also initiate a session that allows server <NUM> to transmit streams of video and audio data to display device <NUM>. The connection can allow streaming system <NUM>, to stream video and audio data to display device <NUM> to be output by display <NUM> and display speaker <NUM>.

In some embodiments, streaming system <NUM> can receive a stream <NUM>-<NUM> of incoming audio and video data received by first mobile device <NUM>. The incoming audio and video data can be received by first mobile device <NUM> from second mobile device <NUM> as part of the video chat, through video chat system <NUM> or a third-party server. The audio and video data in stream <NUM>-<NUM> can be encoded, synced, and ready to be output. Alternatively, streaming system <NUM> can capture incoming audio and video data being transmitted through video chat application <NUM>, from second mobile device <NUM>, before it's been received by first mobile device <NUM>. Therefore, streaming system <NUM> can encode, sync, and format the incoming audio and video data. Furthermore, streaming system <NUM> can format the incoming audio and video data to transmit the incoming audio and video data via a streaming protocol.

A streaming protocol governs how incoming audio and video data can be transmitted to display device <NUM> over the network. The streaming protocol can be Transmission Control Protocol (TCP), User Datagram Protocol (UDP), HTTP, HDS, MPEG-DASH, RTSP, RTP, RTCP, SCTP (Stream Control Transmission Protocol), and RTMP. Streaming system <NUM> can transmit stream <NUM>-<NUM> to display device <NUM>. Stream <NUM>-<NUM> can include encoded, synced, and incoming formatted audio and video data to be output by display device <NUM>. Streaming system <NUM> can transmit the incoming audio and video data in chunks in stream <NUM>-<NUM>. The incoming audio and video data can need to be reassembled at display device <NUM>.

In some embodiments, display device <NUM> may display the same stream received through <NUM>-<NUM>. Stream <NUM>-<NUM> may be transmitted as a pass-through. In other embodiments, stream <NUM>-<NUM> may be a transport stream such as MPEG or DASH. The transport stream may include chunks of audio and video data encoded or transcoded in formats such as AAC, AC3, HEVC, MPEG4.

In some embodiments, streaming system <NUM> and display device <NUM> can negotiate encoding, decoding, and syncing formats at the time when the connection is formed. The negotiated format can be determined based on formats accepted by first mobile device <NUM>, second mobile device <NUM>, and display device <NUM> as well as the network connection. For example, second video chat application <NUM> of second mobile device <NUM> can compress, encode, and sync outgoing audio and video data in a predetermined format. The outgoing audio and video data can be transmitted to first mobile device <NUM> via video chat system <NUM>. Streaming system <NUM> can receive compressed, encoded, and synced incoming audio and video data from first mobile device <NUM>. In particular, the compressed, encoded, and synced incoming audio and video data can be in a format supported by first and second mobile devices <NUM> and <NUM>. Streaming system <NUM> can format the incoming audio and video data so that the audio and video data is compressed, encoded, and synced in a format accepted by display device <NUM>. The format can be the format agreed upon when forming the connection with server <NUM>. Furthermore, the compression, encoding, decoding, and syncing formats can be updated during the video chat using adaptive streaming based on the network connection, quality of the video, or the like.

Display device <NUM> can receive stream <NUM>-<NUM>. Application <NUM> of display device <NUM> can format the incoming video data to be output on display <NUM>. For example, application <NUM> can format the size, resolution, color, brightness, or the like, of the incoming video data, based on the settings of display <NUM>. Application <NUM> can also reassemble the incoming audio and video data when received in chunks in stream <NUM>-<NUM>. Application <NUM> can also format the incoming audio data to be output by display speaker <NUM>. Application <NUM> can cause display of the incoming video data on display <NUM> and cause the output of the incoming audio data through display speaker <NUM>.

Stream <NUM>-<NUM> and <NUM>-<NUM> can provide a continuous flow of incoming audio and video data, as received by first mobile device <NUM> from second mobile device <NUM>, during the video chat. This way, display device <NUM> can output the incoming audio and video data in (near) real-time. In some embodiments, first mobile device <NUM> can output the incoming audio and video data while display device <NUM> is also outputting the audio and video data concurrently.

In some embodiments, stream <NUM>-<NUM> and <NUM>-<NUM> can also include outgoing video data captured by first camera <NUM>. Display device <NUM> can display the incoming video data as well as the outgoing video data. For example, the incoming video data can be displayed on display <NUM> as an expanded display, while the outgoing video data can be a smaller display.

In some embodiments, in the event first and second mobile devices <NUM> and <NUM> transmitting audio and video directly to one another using first and second video chat application <NUM> and <NUM>, application <NUM> can transmit a request to first video chat application <NUM> to stream the incoming audio and video data received by first mobile device <NUM> to display device <NUM>. Furthermore, display device <NUM> may be communicatively coupled with first mobile device <NUM>. Specifically, display device <NUM> may be coupled to first mobile device <NUM> through a wired or wireless connection. As a result, in response to receiving the request to stream the incoming audio and video data to display device <NUM>, first video chat application <NUM> can encode, sync, and format the incoming audio and video data. Furthermore, first video chat application <NUM> can format the incoming audio and video data to transmit the incoming audio and video data via a streaming protocol. Furthermore, first video chat application <NUM> may directly transmit or stream the incoming audio and video data to display device <NUM> over the wired or wireless connection using the streaming techniques described above. Application <NUM> may receive the audio and video data from first video chat application <NUM>. Display device <NUM> may output the video data using display <NUM> and the audio data using display speaker <NUM>.

In some embodiments, application <NUM> may be incorporated in first video chat application <NUM>. As such, in response to receiving response <NUM>-<NUM>, first video chat application <NUM> may form a connection with display device <NUM> and stream the incoming audio and video data received by first mobile device <NUM> to display device <NUM> using the streaming techniques described above.

First mobile device <NUM> can also be physically coupled to a coupling unit of rotating base <NUM>. Furthermore, application <NUM> can be configured to track the movement of an object within the field of view of first camera <NUM>, using sensor <NUM>. Sensor <NUM> can be an optical sensor configured to track movements of the object within the field of view of first camera <NUM>. The object can be the first user. As an example, first camera <NUM> can be configured to capture a physical scene within the field of view of first camera <NUM>. Sensor <NUM> can identify various objects within the physical scene. As first mobile device <NUM> moves, the field of view of first camera <NUM> can change, and in turn, the objects within the field of view can change. Sensor <NUM> can generate outlines around the edges of each detected object within the field of view.

In some embodiments, application <NUM> can identify an object out of multiple objects as the person speaking. For example, application <NUM> can detect whether a user is speaking based on the audio of the user received by first microphone <NUM>. Application <NUM> may instruct the first camera <NUM> to follow the user who is speaking, until the user stops speaking. In some embodiments, application <NUM> may implement image recognition technology to detect a user from multiple objects.

Application <NUM> may also control a zoom or panning functionality of first camera <NUM> based on the audio of the user received by first microphone <NUM>. For example, application <NUM> may zoom into the user if the user is the only object producing audio within the field of view of first camera <NUM>. However, if other audio is detected from another user or object, application <NUM> may instruct first camera <NUM> to zoom out to capture both the other user or object.

Application <NUM> may also use machine-learning algorithms to control the zoom or pan functionality. For example, application <NUM> may use natural language processing (NLP) to understand when a user speaking is addressing other people within the same room. In response to determining the user is addressing other people within the same room, application <NUM> may control the zoom functionality of first camera <NUM> to capture the other people in the same room.

In some embodiments, application <NUM> may use machine-learning algorithms to identify a main presenter or user, based on the amount a presenter, or user is speaking. In this regard, while other people may speak, application <NUM> may instruct first camera <NUM> to keep the main presenter or user in the field of view or in-focus.

In some embodiments, application <NUM> may instruct first camera <NUM> to zoom and pan as part of a scripted pattern. For example, application <NUM> may instruct first camera <NUM> to zoom out every <NUM> minutes and zoom in every <NUM> minutes.

As a non-limiting example, application <NUM> can use a real-time computer vision application, such as OpenCV, to track objects in the field of view of first camera <NUM>. Real-time computer visions can use the real-time image being captured by first camera <NUM> to track an object, such as a first user within the field of view of the camera. The real-time computer vision application can be configured to perform object video tracking and object recognition. In particular, the real-time computer vision application can use target representation and localization, and filtering and data association to identify the first user in the field of view of the camera. Target representation and localization can include locating and tracking a moving object (e.g., first user) within the field of view of first camera <NUM>. The real-time computer vision application can use kernel-based tracking or contour tracking to implement target representation and localization. Furthermore, the real-time computer vision application can use edge detection to identify the first user in the field of view of first camera <NUM>. Once identified, the real-time computer vision application can track the first user, as the first user moves within the field of view of first camera <NUM>.

Application <NUM> can distinguish the first user from the detected objects. For example, while first mobile device <NUM> is physically coupled to the coupling unit of rotating base <NUM>, and the first user is providing audio input (e.g., speaking), which is being captured by first microphone <NUM>, application <NUM> can recognize the first user from the detected objects. Application <NUM> can assign identifiers to all the detected objects. Application <NUM> can receive movement data of the detected objects from sensor <NUM>. The movement data can be an amount an object as moved and an identifier of the detected object.

The first user can move in all directions with respect to rotating base <NUM> and first mobile device <NUM>. For example, the movements can include but are not limited to a combination of, up or down, and left or right of rotating base <NUM> and first mobile device <NUM>, behind rotating base <NUM> and first mobile device <NUM>, farther away from rotating base <NUM> and first mobile device <NUM>, and closer to rotating base <NUM> and first mobile device <NUM>. Therefore, the movement data can include the first user's location with respect to first camera <NUM>.

Application <NUM> can determine that the first user has moved more than a given amount, such that the first user is no longer in focus within the field of view of first camera <NUM>, based on the movement data received from sensor <NUM>. Application <NUM> can transmit request <NUM>-<NUM> to rotating base <NUM> to move the rotatable unit of rotating base <NUM> the given amount so that the first user is in focus within the field of view of the first camera <NUM>.

In response to receiving request <NUM>-<NUM>, controller <NUM> of rotating base <NUM> can instruct motor <NUM> to rotate the rotatable unit the given amount, so that the first user is in focus within the field of view of the first camera <NUM>. By rotating the rotatable unit, the motor also rotates the coupling unit, which supports and holds first mobile device <NUM>.

In some embodiments, the first user can be continuously moving for a period of time and, therefore, continuously moving out of focus from the field of view of first camera <NUM>. Application <NUM> can recalculate a given amount to move the rotatable unit to keep the first user in focus in the field of view of first camera <NUM>, each time the first user moves more than a threshold amount. In this regard, request <NUM>-<NUM> can continuously provide updated instructions to move the rotatable unit a given amount to rotating base <NUM>. Controller <NUM> can instruct the motor to rotate the rotatable unit the given amount based on the updated instructions.

In some embodiments, application <NUM> can control the zoom of first camera <NUM>. The zoom functionality may be made up of a combination of algorithms, such as optical zoom using the camera lenses, or digital zoom by applying imaging algorithms and by cropping the image within the field of view of first camera <NUM>. For example, if the first user moves farther away from first camera <NUM>, the first user can still be within the center of the field of view of the camera; however, it can be out of focus. As such, application <NUM> can determine an amount to adjust the zoom to bring the first user into focus. Application <NUM> can control the operation of the zoom of first camera <NUM> to bring the first user into focus.

<FIG> is a block diagram illustrating an example rotating base and display device, according to example embodiments. In a given embodiment, rotating base <NUM> can include a base <NUM>, a rotatable unit <NUM>, and a coupling unit <NUM>. Base <NUM> can be coupled to rotatable unit <NUM>, and rotatable unit <NUM> can be coupled to coupling unit <NUM>.

Base <NUM> can be disposed at a first end of rotating base <NUM> and can be configured to support rotatable unit <NUM> and coupling unit <NUM> and keep rotatable unit <NUM> and coupling unit <NUM> upright. An interior of base <NUM> can include a controller (e.g., controller <NUM> as shown in <FIG>), motor (e.g., motor <NUM> as shown in <FIG>), and communication device (e.g., communication device <NUM> as shown in <FIG>). The interior of base <NUM> can also include a power supply to power the controller, motor, and communication device.

Rotatable unit <NUM> can include a first hinge <NUM> and a second hinge <NUM>. Rotatable unit can be coupled to base <NUM> at the first hinge <NUM>. The motor can control rotatable unit <NUM> to rotate around first hinge <NUM>. First hinge <NUM> can be represented by rotational axis <NUM>. The motor can also cause the rotatable unit <NUM> to traverse along second hinge <NUM>. The x and y-axis can represent the second hinge <NUM>. Rotatable unit <NUM> can be shaped like an arm. However, rotatable unit <NUM> can be in any shape, and it can be with or without hinges, as long as rotatable unit <NUM> is configured to rotate about rotational axis <NUM> and traverse along the x, y, and z-axes.

Coupling unit <NUM> can be connected to rotatable unit <NUM> at a second end of rotatable base <NUM>. Coupling unit <NUM> can include clasps <NUM>-<NUM> and <NUM>-<NUM> to hold and support first mobile device <NUM>. Clasps <NUM>-<NUM> and <NUM>-<NUM> can be the attachment mechanisms to attach the first mobile device <NUM> to coupling unit <NUM>. Claps <NUM>-<NUM> and <NUM>-<NUM> can expand or contract to hold and support mobile devices of various sizes. While the attachment mechanisms of coupling unit <NUM> are clasps <NUM>-<NUM> and <NUM>-<NUM>, attachment mechanisms can also include a magnet, horizontal clasps, adhesive material, clips, or the like.

In a given embodiment, the controller can receive instructions from the server (e.g., server <NUM>, as shown in <FIG>) to move rotatable unit <NUM> a given amount. The controller can determine an amount the rotatable unit <NUM> needs to be rotated around first hinge <NUM>, and an amount rotatable unit <NUM> needs to traverse along second hinge <NUM>, based on the given amount. The controller can instruct the motor to rotate rotatable unit <NUM> and to cause the rotatable unit <NUM> to traverse along second hinge <NUM> based on the determined amounts. The motor can rotate rotatable unit <NUM> around first hinge <NUM> or cause rotatable unit to traverse along second hinge <NUM> based on the controller's instructions. Rotating rotatable unit <NUM> and causing rotatable unit <NUM> to traverse along second hinge <NUM> can cause coupling unit <NUM> to rotate and traverse along second hinge <NUM>.

First display <NUM> of first mobile device <NUM> can output video data corresponding to a video chat as well as video data being captured by the camera (e.g., first camera <NUM> as shown in <FIG>) of first mobile device <NUM>. Display <NUM> can also output video data corresponding to the video chat, as well as the video data being captured by the camera of the mobile device <NUM>.

In some embodiments, rotatable base <NUM> may be a clip or clamp that may be attached to the display device such as a television or may also be attached to a support structure such as a wall.

<FIG> is a flowchart illustrating a process for streaming audio and video data from a mobile device to a display device, according to some embodiments. Method <NUM> can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps can be needed to perform the disclosure provided herein. Further, some of the steps can be performed simultaneously, or in a different order than shown in <FIG>, as will be understood by a person of ordinary skill in the art.

Method <NUM> shall be described with reference to <FIG>. However, method <NUM> is not limited to that example embodiment.

In <NUM>, server <NUM> receives a chat request from first mobile device <NUM> to initiate an audio and video chat with second mobile device <NUM>. The chat request can be transmitted from first video chat application <NUM> of first mobile device <NUM>. The chat request can include a unique identifier of second mobile device <NUM>. The unique identifier can be a phone number, username, MAC address, or the like. A first user can operate first mobile device <NUM>, and a second user can operate second mobile device <NUM>.

In <NUM>, video chat system <NUM> transmits a chat request to second mobile device <NUM>. The chat request can include a request from first mobile device <NUM> to initiate an audio and video chat. The chat request can be transmitted to second video chat application <NUM> of second mobile device <NUM>. Second mobile device <NUM> can generate a combination of an audio, haptic, and visual alert, in response to receiving the chat request.

In <NUM>, server <NUM> can receive a confirmation from second video chat application <NUM> of second mobile device <NUM> to initiate an audio and video chat with first mobile device <NUM>. The confirmation can be transmitted by second video chat application <NUM> in response to a second user of second mobile device <NUM> accepting the request from first mobile device <NUM>.

In <NUM>, video chat system <NUM> enables first and second mobile devices <NUM> and <NUM> to transmit audio, and video data to one another using the first video chat application <NUM> of first mobile device <NUM> and second video chat application <NUM> of second mobile device <NUM>. First microphone <NUM> of first mobile device <NUM> can capture audio data. Moreover, first camera <NUM> of first mobile device <NUM> can capture video data. First video chat application <NUM> of first mobile device <NUM> can transmit the audio data to video chat system <NUM>. Similarly, second microphone <NUM> of second mobile device <NUM> can capture audio data.

Moreover, second camera <NUM> of second mobile device <NUM> can capture video data. Second video chat application <NUM> of second mobile device <NUM> can transmit the audio data to video chat system <NUM>. Video chat system <NUM> can encode and sync the audio and video data received from first and second mobile devices <NUM> and <NUM>, respectively. Video chat system <NUM> can transmit the encoded and synced audio and video data received from first mobile device <NUM> to second mobile device <NUM>. Furthermore, video chat system <NUM> can transmit the encoded and synced audio and video data received from second mobile device <NUM> to first mobile device <NUM>. First display <NUM> of first mobile device <NUM> can output the received video data, and a speaker of first mobile device <NUM> can output the received audio data. Second display <NUM> of second mobile device <NUM> can output the received video data, and a speaker of the second mobile device <NUM> can output the received audio data.

In <NUM>, server <NUM> receives a streaming request to stream incoming audio and video data received by first mobile device <NUM> from second mobile device <NUM>, on display device <NUM>. The request can be transmitted by application <NUM> in response to first mobile device <NUM>, forming a connection with rotating base <NUM>. First mobile device <NUM> can form a connection with rotating base <NUM> via a wired or wireless connection. First mobile device <NUM> can be communicatively and physically coupled to rotating base <NUM>.

In <NUM>, streaming system <NUM> establishes a connection with display device <NUM>. Streaming system <NUM> can transmit a request to stream audio and video data intended to be received by first mobile device <NUM> on display device <NUM>. Display device <NUM> can include display <NUM>, display speaker <NUM>, and application <NUM>. The application <NUM> can be used to establish a connection with streaming system <NUM>. The connection can be established in response to application <NUM>, confirming the connection.

In <NUM>, streaming system <NUM> receives a stream of incoming audio and video data transmitted by second mobile device <NUM> to first mobile device <NUM>. Streaming system <NUM> can capture the audio and video data prior to when first mobile device <NUM> receiving the audio and video data or after first mobile device <NUM> receives the audio and video data. The audio and video data can be part of the video chat between first and second mobile devices <NUM> and <NUM>.

In <NUM>, streaming system <NUM> formats the audio and video data transmitted by second mobile device <NUM> to first mobile device <NUM>, so that the audio and video data can be streamed and output by display device <NUM>. Streaming system <NUM> can format audio and video data by encoding and syncing the audio and video data. Furthermore, streaming system <NUM> can format the audio and video data so the audio and video data can be transmitted to display device <NUM> via a streaming protocol.

In operation <NUM>, streaming system <NUM> streams the incoming formatted audio and video data to display device <NUM>. Application <NUM> can receive the audio and video data. Application <NUM> can further format the audio and video data. For example, the audio data can be formatted so that the audio data can be output using display speaker <NUM>. Furthermore, application <NUM> can format the video data so that display device <NUM> can output video data using display <NUM>. Formatting can include resizing the video data, adjusting the resolution, color, brightness, or the like. Display speaker <NUM> can output the audio data and display <NUM> can output video data. This way, the first user can view the video chat on display <NUM> and listen to the audio of the video chat using display speaker <NUM>.

<FIG> is a flowchart illustrating a converting data tracking a user within the field of view of a camera of the mobile device. Method <NUM> can be performed by processing logic that can comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It is to be appreciated that not all steps can be needed to perform the disclosure provided herein. Further, some of the steps can be performed simultaneously, or in a different order than shown in <FIG>, as will be understood by a person of ordinary skill in the art.

In <NUM>, first video chat application <NUM> of first mobile device <NUM> transmits a chat request to initiate a video chat with second mobile device <NUM> to server <NUM>. The request can include an identifier of second mobile device <NUM>. Video chat system <NUM> can transmit a request to second mobile device <NUM> to initiate a video chat with first mobile device <NUM>. Second mobile device <NUM> can transmit a confirmation to initiate the video chat with first mobile device <NUM> to server <NUM>. In response to receiving a confirmation from second mobile device <NUM>, video chat system <NUM> can enable video and audio transmissions between first and second mobile device <NUM> and <NUM>.

In <NUM>, application <NUM> forms a connection with rotating base <NUM>. Application <NUM> can form a wired or wireless connection with rotating base <NUM>. In response to forming the connection, application <NUM> can communicate with rotating base <NUM>. Rotating base <NUM> can include communication device <NUM>, motor <NUM>, and controller <NUM>. Application <NUM> can form a connection with first mobile device <NUM> using communication device <NUM>. Furthermore, first mobile device <NUM> can be physically coupled with rotating base <NUM>.

In <NUM>, application <NUM> transmits a streaming request to stream incoming audio and video data of the video chat received by first mobile device <NUM> on display device <NUM> in response to forming a connection with rotating base <NUM>. The streaming request can be transmitted to server. Video chat system <NUM> can establish a connection with display device <NUM> in response to receiving the streaming request. In response to establishing a connection with display device <NUM>, streaming system <NUM> can stream audio and video data received by first mobile device <NUM> from second mobile device <NUM> as part of the video chat to display device <NUM>. Display device <NUM> can output the audio and video data.

In <NUM>, application <NUM> receives or calculates movement data associated with a first object, indicating movement of an object within the field of view of first camera <NUM>. Application <NUM> can use a real-time computer vision application to track the object. Alternatively, sensors <NUM> can be optical sensors configured to detect movement of objects in the field of view of first camera <NUM>. The movement data can include an identifier associated with the object that moved and the amount of movement. The object can be the first user. Application <NUM> can also use image recognition algorithms to identify the first object amongst multiple objects in a given area.

In <NUM>, application <NUM> determines an amount first mobile device <NUM> needs to be moved to maintain the object within the field of view of first camera <NUM>. Application <NUM> can determine how much the mobile device needs to be moved based on the amount of movement of the object.

In <NUM>, application <NUM> transmits instructions to rotating base <NUM> to rotate first mobile device <NUM> the determined amount. As described above, first mobile device <NUM> can be physically coupled to rotating base <NUM>. In particular, a coupling unit of rotating base <NUM> can be configured to hold, support and also power the first mobile device <NUM>. Rotating base <NUM> may act as a power supply to first mobile device <NUM> so that first mobile device is configured to operate for longer periods of time. The power may be provided through the coupling unit or wirelessly. The coupling unit can be coupled to a rotatable unit. The rotatable unit can be coupled to motor <NUM>, and motor <NUM> can be coupled to controller <NUM>. Controller <NUM> can receive instructions from application <NUM>. Controller <NUM> can instruct motor <NUM> to move the rotatable unit the determined amount. As a result, the coupling unit and first mobile device <NUM> can also move a determined amount.

<FIG> illustrates an example block diagram <NUM> of an example embodiment of the mobile device <NUM>. Mobile device <NUM> may be an embodiment of first and/or second mobile device <NUM> and <NUM>. Mobile device <NUM> (e.g., a mobile phone, tablet, laptop, etc.) may be generally configured to enable or allow users to conduct video chats. It is to be appreciated that while <FIG> illustrates one example embodiment of mobile device <NUM>, the example embodiment is not limited to this context.

In one embodiment, mobile device <NUM> may be generally arranged to provide mobile computing and/or mobile communications and may include, but are not limited to, memory <NUM>, communications component <NUM>, motion component <NUM>, and orientation component <NUM>, acoustic input/output component <NUM>, haptic component <NUM>, mobile processor component <NUM>, touch-sensitive display component <NUM>, location component <NUM>, internal power component <NUM>, and image acquisition component <NUM>, where each of the components and memory <NUM> may be operatively connected via interconnect <NUM>.

In one embodiment, the memory <NUM> may be generally arranged to store information in volatile and/or nonvolatile memory, which may include, but is not limited to, read-only memory (ROM), random-access memory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) flash memory, polymer memory such as ferroelectric polymer memory, ovonic memory, phase change or ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, solid state memory devices (e.g., USB memory, solid state drives SSD, etc.), and/or any other type of storage media configured for storing information.

In one embodiment, the memory <NUM> may include instruction information arranged for execution by the mobile processor component <NUM>. In that embodiment, the instruction information may be representative of at least one operating system <NUM>, one or more applications, which may include, but are not limited to, first video chat application <NUM>, second video chat application <NUM>, and application <NUM>. In an embodiment, the memory <NUM> may further include device datastore <NUM> which may be configured to store information.

In one embodiment, the mobile operating system <NUM> may include, without limitation, mobile operating systems (e.g., Apple® iOS®, Google® Android®, Microsoft® Windows Phone®, Microsoft® Windows®, etc.) generally arranged to manage hardware resources (e.g., one or more components of mobile device <NUM>, etc.) and/or software resources (e.g., one or more applications of the first and second mobile device <NUM> and <NUM>, etc.).

In one embodiment, the communications component <NUM> may be generally arranged to enable mobile device <NUM> to communicate, directly and/or indirectly, with various devices and systems. The communications component <NUM> may include, among other elements, a radio frequency circuit (not shown) configured for encoding and/or decoding information and receiving and/or transmitting the encoded information as radio signals in frequencies consistent with the one or more wireless communications standards (e.g., Bluetooth, Wireless IEEE <NUM>, WiMAX IEEE <NUM>, Global Systems for Mobile Communications (GSM), Enhanced Data Rates for GSM Evolution (EDGE), Long Term Evolution (LTE), Bluetooth standards, Near Field Communications (NFC) standards, etc.).

In one embodiment, the mobile processor component <NUM> may be generally arranged to execute instruction information, which may generally include one or more executable and/or interpretable instructions. In an embodiment, the processor component <NUM> may be a mobile processor component or system-on-chip (SoC) processor component. The processor component <NUM>, may comprise, among other elements, processor circuit, which may further include, but is not limited to, at least one set of electronic circuits arranged to execute one or more instructions. Examples of mobile processor components <NUM> may include, but is not limited to, Qualcomm® Snapdragon®, NVidia® Tegra®, Intel® Atom®, Samsung® Exynos, Apple® A7®-A13®, or any other type of mobile processor(s) arranged to execute the instruction information including the one or more instructions stored in memory <NUM>.

In one embodiment, the touch sensitive display component <NUM> may be generally arranged to receive and present visual display information and provide touch input information based on detected touch based or contact based input. Moreover, the touch sensitive display component <NUM> may include, among other elements, display device (e.g., liquid-crystal display, light-emitting diode display, organic light-emitting diode display, etc.) for presenting the visual display information and touch sensor(s) (e.g., resistive touch sensor, capacitive touch sensor, etc.) associated with the display device <NUM> to detect and/or receive touch or contact based input information associated with the display device of the first and second mobile device <NUM> and <NUM>. Additionally, the touch sensor(s) may be integrated with the surface of the display device, so that a user's touch or contact input may substantially correspond to the presented visual display information on the display device, such as, for example, one or more user interface (UI) views and elements discussed and illustrated herein.

In one embodiment, the location component <NUM> may be generally arranged to receive positioning signals representative of positioning information and provide location information (e.g., approximate physical location of the first and second mobile device <NUM> and <NUM>) determined based at least partially on the received positioning information. Moreover, the location component <NUM> may include, among other elements, positioning circuit (e.g., a global positioning system (GPS) receiver, etc.) arranged to determine the physical location of the mobile device <NUM>. In some embodiments, the location component <NUM> may be further arranged to communicate and/or interface with the communications component <NUM> in order to provide greater accuracy and/or faster determination of the location information.

In one embodiment, the internal power component <NUM> may be generally arranged to provide power to the various components and the memory of the first and second mobile device <NUM> and <NUM>. In one embodiment, the internal power component <NUM> may include and/or be operatively coupled to an internal and/or external battery configured to provide power to the various components (e.g., communications component <NUM>, motion component <NUM>, memory <NUM>, etc.). The internal power component <NUM> may also be operatively coupled to an external charger to charge the battery.

Various embodiments can be implemented, for example, using one or more computer systems, such as computer system <NUM> shown in <FIG>. Computer system <NUM> can be used, for example, to implement method <NUM> of <FIG>, <NUM> of <FIG>. Furthermore, computer system <NUM> can be at least part of server <NUM>, as shown in <FIG>. For example, computer system <NUM> can stream audio and video data of a video chat to display device <NUM> from first mobile device <NUM>. Computer system <NUM> can be any computer capable of performing the functions described herein.

Computer system <NUM> can be any well-known computer capable of performing the functions described herein.

One or more processors <NUM> can each be a graphics processing unit (GPU). In an embodiment, a GPU is a processor that is a specialized electronic circuit designed to process mathematically intensive applications. The GPU can have a parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images, videos, etc. In some embodiments, computer system may also include specialized processors for implementing machine learning or artificial intelligence algorithms. For example, processors such as Intel ® Neural Compute Stick, field programmable gate arrays (FPGA), Intel ® Movidius Vision, Tesla ® AI chip, or the like.

Computer system <NUM> also includes a main or primary memory <NUM>, such as random access memory (RAM). Main memory <NUM> can include one or more levels of cache. Main memory <NUM> has stored therein control logic (i.e., computer software) and/or data.

Computer system <NUM> can also include one or more secondary storage devices or memory <NUM>. Secondary memory <NUM> can include, for example, a hard disk drive <NUM> and/or a removable storage device or drive <NUM>. Removable storage drive <NUM> can be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.

Removable storage drive <NUM> can interact with a removable storage unit <NUM>. Removable storage unit <NUM> can be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/ any other computer data storage device.

According to an exemplary embodiment, secondary memory <NUM> can include other means, instrumentalities, or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system <NUM>. Such means, instrumentalities, or other approaches can include, for example, a removable storage unit <NUM> and an interface <NUM>. Examples of the removable storage unit <NUM> and the interface <NUM> can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

Computer system <NUM> can further include a communication or network interface <NUM>. For example, communication interface <NUM> can allow computer system <NUM> to communicate with remote devices <NUM> over communications path <NUM>, which can be wired and/or wireless, and which can include any combination of LANs, WANs, the Internet, etc. Control logic and/or data can be transmitted to and from computer system <NUM> via communication path <NUM>.

In an embodiment, a tangible, non-transitory apparatus or article of manufacture comprising a tangible, non-transitory computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system <NUM>, main memory <NUM>, secondary memory <NUM>, and removable storage units <NUM> and <NUM>, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system <NUM>), causes such data processing devices to operate as described herein.

Claim 1:
A method comprising:
receiving, by one or more computing devices, a streaming request to stream incoming audio data and incoming video data received by a first mobile device (<NUM>) from a second mobile device (<NUM>) on a display device (<NUM>), from the first mobile device;
establishing, by the one or more computing devices, a connection with the display device;
capturing, by the one or more computing devices, the incoming audio data and the incoming video data transmitted by the second mobile device to the first mobile device;
formatting, by the one or more computing devices, the incoming audio data and the incoming video data to be output by the display device;
streaming, by the one or more computing devices, the incoming formatted audio data and the incoming formatted video data to the display device, wherein the display device outputs the incoming formatted audio data and the incoming formatted video data in response to receiving the incoming formatted audio data and the incoming formatted video data;
using natural language processing to determine when a user speaking is addressing other people within a same room, based on audio of the user received by a microphone (<NUM>) of the first mobile device; and
in response to determining that the user is addressing other people within the same room, controlling a camera (<NUM>) of the first mobile device to capture the other people in the same room.