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:
The subject technology provides a messaging application in which an image can be captured and supplemented with supplemental content such as stickers, animations, etc., from within an active messaging thread. In this manner, a user participating in a messaging conversation with a remote user can add stickers, animations, and/or adaptive content to an image captured by the user, without having to locally cache/store the captured image before editing and without having to leave the messaging conversion (or the messaging application) to access an image editing application.
Abstract:
A quick relay communication protocol is used by an initiating communication device (such as a wearable electronic device, e.g., a smart watch) and/or a recipient communication device (such as a companion electronic device to the wearable electronic device, e.g., a smart phone, a tablet computer or a laptop computer) to selectively communicate messages via different communication channels. Based on available connections and a communication constraint associated with a message, a processor executing a program module in an application layer in the initiating communication device provides transmission instructions to an interface circuit in the initiating communication device, which transmits a message to the recipient communication device based on the transmission instructions. When there are currently no available connections and the message is eligible to be communicated through a cloud-based relay server, the processor establishes a cloud-based connection with the recipient communication device via the relay server.
Abstract:
The subject technology provides a video conferencing application in which a live incoming or outgoing video stream can be supplemented with supplemental content, such as stickers, animations, etc., from within the video conferencing application. In this manner, a user participating in a video conferencing session with a remote user can add stickers, animations, and/or adaptive content to an outgoing video stream being captured by the device of the user, or to an incoming video stream from the device of the remote user, without having to locally cache/store a video clip before editing, and without having to leave the video conferencing session (or the video conferencing application) to access a video editing application.
Abstract:
A device implementing the subject technology may include at least one processor configured to receive a plurality of buffer reports from a plurality of other devices, each of the plurality of buffer reports indicating a current target buffer level for a respective one of the plurality of other devices. The at least one processor may be further configured to determine a group target buffer level based at least in part on the current target buffer levels of the plurality of other devices and a current target buffer level of the at least one buffer. The at least one processor may be further configured to transmit the group target buffer level to the plurality of other devices. The at least one processor may be further configured to manage an occupancy of the at least one buffer based at least in part on the group target buffer level.
Abstract:
A device implementing a system for multiway audio-video conferencing includes a processor configured to receive, from a first device, indication of a first channel and a second channel for communicating content for an audio-video conference session. The first channel and the second channel correspond to different types of communication interfaces. The processor is further configured to receive, from the first device, a first request to subscribe to a first content stream for the audio-video conference session via the first channel, and to subscribe to a second content stream for the audio-video conference session via the second channel, and in response to receiving the first request, forward, to the first device, the first content stream via the first channel.
Abstract:
A device implementing the subject technology may include at least one processor configured to transmit an allocation request requesting allocation of a group communication session with a plurality of devices and receive an allocation response in response to the allocation request, the allocation response including credential information for the device to use to join the group communication session. The at least one processor may be further configured to transmit an allocation bind request with the credential information to join the group communication session using the credential information and receive an allocation bind success response in response to the allocation bind request, the allocation bind success response indicating that the device has joined the group communication session. The at least one processor may be further configured to provide a join notification to the plurality of devices via an intermediary device to notify that the device has joined the group communication session.
Abstract:
When direct communication between devices, such as via Bluetooth, is unavailable, a communication protocol is used by an initiating communication device and/or a recipient communication device to establish a communication session via a cloud-based relay server. This communication protocol efficiently allocates (or binds) the initiating communication device, the recipient communication device, and the relay server together for the communication session. The communication protocol may include handshaking messages that specify a transport type and channel used for connections in the communication session, as well as an address of the relay server. After the communication session is confirmed, the communication protocol allows the initiating communication device and the recipient communication device to share messages even when physically separated from each other.
Abstract:
A device implementing the subject technology may include at least one processor configured to establish a group communication session for two or more electronic devices utilizing a first communication modality. The at least one processor may be further configured to determine to utilize a second communication modality for the group communication session. The at least one processor may be further configured to transition the group communication session from the first communication modality to the second communication modality.
Abstract:
Systems, methods and non-transitory computer readable media for allowing a user to switch between wearable items that have been paired or associated with an electronic device, such as a smartphone, are described. In one embodiment, the wearable items automatically detect a removal of a first wearable item from a user's body and an attachment of a second wearable item to the user's body. Messages from the wearable items are transmitted to the electronic device to allow the electronic device to switch the active wearable item from the first wearable item to the second wearable item. The switch can occur while the electronic device is in a locked state, and the electronic device can synchronize the second wearable item with data received from the first wearable item. Other embodiments are also described.