Abstract:
Methods, systems, and apparatuses are provided for managing communication of data to/from a device. For example, multiple client applications running on the device can communicate to a second device through a same primary socket connection. A mux module can receive data from two different client applications over respective client connections. The received data can include header information identifying the second device as the destination. When the first data from a first client application is received at the mux module, the primary socket connection can be created; and when the second data from a second client application is received, the existing primary socket connection can be identified and re-used. The primary socket connection can be managed by a controller of the mux module.
Abstract:
Some embodiments provide a method for initiating a video conference using a first mobile device. The method presents, during an audio call through a wireless communication network with a second device, a selectable user-interface (UI) item on the first mobile device for switching from the audio call to the video conference. The method receives a selection of the selectable UI item. The method initiates the video conference without terminating the audio call. The method terminates the audio call before allowing the first and second devices to present audio and video data exchanged through the video conference.
Abstract:
Some embodiments relate to a device that transmits / receives encrypted communications with another device. A first device, such as a smart phone or smart watch, may generate a message associated with a certain data class, which may determine the security procedure used in the communication of the message (602). The first device may establish an encryption session for the purpose of communicating the message to a second device (610). Prior to sending the message, the first device may wait until encryption credentials are accessible according to certain conditions, which may be determined at least in part by the data class of the message. Similarly, after receiving the message, the second device may not be able to decrypt the message until encryption credentials are accessible according to certain conditions, which may be determined at least in part by the message data class (636).
Abstract:
A video streaming method for transitioning between multiple sequences of coded video data may include receiving and decoding transmission units from a first sequence of coded video data. In response to a request to transition to a second sequence of coded video data, the method may determine whether a time to transition to the second sequence of coded video data can be reduced by transitioning to the second sequence of coded video data via an intermediate sequence of coded video data. If the time can be reduced, the method may include receiving at least one transmission unit from an intermediate sequence of coded video data that corresponds to the request to transition, decoding the transmission unit from the intermediate sequence, and transitioning from the first sequence to the second sequence via the decoded transmission unit from the intermediate sequence.
Abstract:
An apparatus, method, and machine-readable medium are described for establishing, maintaining and utilizing backup channels in a peer-to-peer ("P2P") network. For example, in one embodiment, each mobile device can establish a primary P2P communication channel with one or more other mobile devices. Once the primary channel is established, each mobile device can use the primary channel to exchange secondary channel connection data and can subsequently open one or more secondary P2P communication channels with the other mobile devices. Upon detecting that the primary P2P communication channel has failed or has degraded below a specified threshold (e.g., a bandwidth or bitrate threshold), one of the secondary P2P communication channels can be automatically promoted to a primary P2P communication channel.
Abstract:
Some embodiments provide an architecture for establishing a multi-participant conference. This architecture has one participant's computer in the conference act as a central content distributor for the conference. The central distributor receives data (e.g., video and/or audio streams) from the computer of each other participant, and distributes the received data to the computers of all participants. In some embodiments, the central distributor receives A/V data from the computers of the other participants. From such received data, the central distributor of some embodiments generates composite data (e.g., composite image data and/or composite audio data) that the central distributor distributes back to the participants. The central distributor in some embodiments can implement a heterogeneous audio/video conference. In such a conference, different participants can participate in the conference differently. For instance, different participants might use different audio or video codecs. Moreover, in some embodiments, one participant might participate in only the audio aspect of the conference, while another participant might participate in both audio and video aspects of the conference.
Abstract:
Computing devices may implement dynamic display of video communication data. Video communication data for a video communication 5 may be received at a computing device where another application is currently displaying image data on an electronic display. A display location may be determined for the video communication data according to display attributes that are configured by the other application at runtime. Once determined, the video communication data may then be displayed in the determined location. In some embodiments, the video communication data may be integrated with other data displayed on the electronic display for the other application.
Abstract:
Computing devices may implement dynamic display of video communication data. Video communication data for a video communication may be received at a computing device where another application is currently displaying image data on an electronic display. A display location may be determined for the video communication data according to display attributes that are configured by the other application at runtime. Once determined, the video communication data may then be displayed in the determined location. In some embodiments, the video communication data may be integrated with other data displayed on the electronic display for the other application.