Abstract:
A system and method for conducting a video call between an originating device and a terminating device by establishing a peer-to-peer (P2P) connection between the devices. The originating and terminating devices exchange candidate information through a P2P server, except that the candidate information for the terminating device is altered before arriving at the originating device. The altering includes changing the IP address and corresponding port for each candidate. The originating device uses the altered candidate information to derive new candidate pairs that are sent to the terminating device, which uses the new candidate pairs to also derive a second candidate list. If the candidate pairs match, a P2P connection is established between the devices.
Abstract:
Apparatus and methods to evaluate connectivity between a primary device and a secondary device to support a connection for a real-time application to a remote device are disclosed. The primary device receives a connection request from the remote device and sends invitations to one or more secondary devices to connect with the remote device, the invitations sent through a first communication path. A secondary device that receives the invitation sends a connectivity evaluation packet to the primary device through a second communication path. When a connectivity response is received from the primary device through the second communication path and a user accepts the invitation, the secondary device sends an invitation response to the primary device and subsequently establishes a connection to the primary device through the second communication path. In some embodiments, the first communication path includes a cloud-based server that provides a guaranteed delivery message service.
Abstract:
A unified message delivery between multiple devices is disclosed. Sending messages through a local communications link, such as but not limited to at least one of a Bluetooth connection and a peer-to-peer WiFi connection, can lead to faster transmission times and reduced server load. When the local communications link is unavailable or not suitable, the messages can be sent through a network and a push server. In some examples, messages can be sent through both the local communications link and through the network and the push server. Duplicates of a received message can be avoided by utilizing indicators. In some examples, one or more devices can include queue(s) to ensure ordered delivery of a plurality of messages when a local communications link and network connection become unavailable.
Abstract:
Coded video data may be transmitted between an encoder and a decoder using multiple FEC codes and/or packets for error detection and correction. Only a subset of the FEC packets need be transmitted between the encoder and decoder. The FEC packets of each FEC group may take, as inputs, data packets of a current FEC group and also an untransmitted FEC packet of a preceding FEC group. Due to relationships among the FEC packets, when transmission errors arise and data packets are lost, there remain opportunities for a decoder to recover lost data packets from earlier-received FEC groups when later-received FEC groups are decoded. This opportunity to recover data packets from earlier FEC groups may be useful in video coding and other systems, in which later-received data often cannot be decoded unless earlier-received data is decoded properly.
Abstract:
A device implementing cellular communication protocol aware multimedia streaming may include at least one processor configured to establish a link for communicating with another device, wherein the link utilizes at least one of a first cellular communication protocol or a second cellular communication protocol. The at least one processor may be configured to determine a bit rate for a video stream to be provided to the other device based at least in part on whether the link utilizes the first cellular communication protocol or the second cellular communication protocol, wherein a first bit rate is determined when the link utilizes the first cellular communication protocol and a second bit rate is determined when the link utilizes the second cellular communication protocol. The at least one processor may be configured to provide, for transmission over the link to the other electronic device, the video stream at the determined bit rate.
Abstract:
Some embodiments provide an architecture for establishing multi-participant video conferences. This architecture has a central distributor that receives video images from two or more participants. From the received images, the central distributor generates composite images that the central distributor transmits back to the participants. Each composite image includes a set of sub images, where each sub image belongs to one participant. In some embodiments, the central distributor saves network bandwidth by removing each particular participant's image from the composite image that the central distributor sends to the particular participant. In some embodiments, images received from each participant are arranged in the composite in a non-interleaved manner. For instance, in some embodiments, the composite image includes at most one sub-image for each participant, and no two sub-images are interleaved.
Abstract:
A unified message delivery between multiple devices is disclosed. Sending messages through a local communications link, such as but not limited to at least one of a Bluetooth connection and a peer-to-peer WiFi connection, can lead to faster transmission times and reduced server load. When the local communications link is unavailable or not suitable, the messages can be sent through a network and a push server. In some examples, messages can be sent through both the local communications link and through the network and the push server. Duplicates of a received message can be avoided by utilizing indicators. In some examples, one or more devices can include queue(s) to ensure ordered delivery of a plurality of messages when a local communications link and network connection become unavailable.
Abstract:
A system and method for conducting a video call between an originating device and a terminating device by establishing a peer-to-peer (P2P) connection between the devices. The originating and terminating devices exchange candidate information through a P2P server, except that the candidate information for the terminating device is altered before arriving at the originating device. The altering includes changing the IP address and corresponding port for each candidate. The originating device uses the altered candidate information to derive new candidate pairs that are sent to the terminating device, which uses the new candidate pairs to also derive a second candidate list. If the candidate pairs match, a P2P connection is established between the devices.
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.