Patent application number | Description | Published |
20100011117 | VIDEO STREAMING USING MULTIPLE CHANNELS - Systems and methods for streaming video over multiple HTTP channels are provided. The client may have control over the channels, allowing the client to control the amount and source of data received. Data requested by the client may be separated into a set of layers, with each layer being assigned to a separate channel. The client may adjust the number of layers requested based on a variety of factors. Layers may be requested from multiple remote sources, providing the client with additional control over the specific bandwidth profile of received data. | 01-14-2010 |
20110149087 | Joint Bandwidth Detection Algorithm For Real-Time Communication - A video coding system and method for increasing a transmitted output bit rate of a video encoding system by altering the content of the bit stream. A video encoder may receive a coding mode signal from a computer application for coding source video data, the coding mode signal indicating a target bit rate having a risk factor related to transmission error associated to the target bit rate. The coded bitstream may be modified based on the risk factor indicated in the coding mode signal. A modified coded bitstream may be outputted at the target bit rate and at a reduced coding efficiency, and the channel may be tested for transmission errors. Based on the test results, a revised coding mode signal indicating the same target bit rate, but a revised risk factor may be provided. The coded bitstream may be revised by removing the modifications previously made to the coded bitstream and a revised coded bitstream having greater coding efficiency may be output at the target bit rate. | 06-23-2011 |
20110235709 | FRAME DROPPING ALGORITHM FOR FAST ADAPTATION OF BUFFERED COMPRESSED VIDEO TO NETWORK CONDITION CHANGES - A video coding and transmission system may employ techniques for adapting buffered video to network condition changes. Video data may be coded as reference data and non-reference data. According to the embodiments, non-reference frame may be detected in buffered video while awaiting transmission to a network. When network degradation is detected, one or more of the buffered non-reference frames may be dropped when network degradation is detected. Information about the dropped frames may be passed to an encoder for updating buffer parameters for future encoding. In this manner, a video coding system may provide faster responses to changing network conditions than systems without such buffer management techniques. | 09-29-2011 |
20110250909 | REGISTERING CLIENT COMPUTING DEVICES FOR ONLINE COMMUNICATION SESSIONS - Registering a client computing device for online communication sessions. A registration server receives a message that has a push token that is unique to the client computing device and a phone number of the client computing device from an SMS (Short Message Service) transit device, which received an SMS message having the push token from the client computing device and determined the phone number of the client computing device from that SMS message. The registration server associates the push token and the phone number and stores it in a registration data store, which is used for inviting users for online communication sessions. | 10-13-2011 |
20110252146 | ESTABLISHING ONLINE COMMUNICATION SESSIONS BETWEEN CLIENT COMPUTING DEVICES - A method and apparatus for assisting in establishing an online communication session between client computing devices. An online communication session invite request message is received from an initiating client computing device, the message includes connection data of the initiating computing device and an online communication session endpoint identifier for an intended recipient. A set of one or more push tokens that are associated with the identifier is determined, where each of the push tokens identifies a client computing device. An online communication session invite message that includes the connection data of the initiating client computing device is transmitted to a set of intended recipient client computing devices that correspond with the set of push tokens. An invite accepted message is received from at least one of the set of intended recipient client computing devices that includes connection data of that computing device. An invite accepted message is transmitted to the initiating computing device that includes the connection data of each accepting computing device to allow the initiating computing device and each accepting computing device to establish a direct peer-to-peer online communication session. | 10-13-2011 |
20120117250 | MULTIPLE CLIENT COMPUTING DEVICE INVITATIONS FOR ONLINE COMMUNICATION SESSIONS - An online communication session invitation request message for an online communication session is received from an initiating client computing device. The invitation request message includes connection data of the initiating client computing device and an online communication session endpoint identifier of an intended participant of the online communication session. The session endpoint identifier is associated with a plurality of push tokens that correspond to a plurality of recipient client computing devices respectively. An invitation request message is sent in the form of a push notification message to each of the plurality of recipient client computing devices using the corresponding push tokens. Each invitation request message includes the connection data of the initiating client computing device. | 05-10-2012 |
20130231146 | REGISTERING CLIENT COMPUTING DEVICES FOR ONLINE COMMUNICATION SESSIONS - Registering a client computing device for online communication sessions. A registration server receives a message that has a push token that is unique to the client computing device and a phone number of the client computing device from an SMS (Short Message Service) transit device, which received an SMS message having the push token from the client computing device and determined the phone number of the client computing device from that SMS message. The registration server associates the push token and the phone number and stores it in a registration data store, which is used for inviting users for online communication sessions. | 09-05-2013 |
Patent application number | Description | Published |
20110116409 | MULTI-PARTICIPANT CONFERENCE SETUP - 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. | 05-19-2011 |
20110205332 | HETEROGENEOUS VIDEO CONFERENCING - 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. | 08-25-2011 |
20120036192 | NAT Traversal for Media Conferencing - Methods for establishing a direct peer-to-peer (“P2P”) connection between two computers are disclosed. In particular, the methods are designed to work in cases where one or both of the computers are connected to a private network, such private networks being interconnected via a public network, such as the Internet. The connections between the private network and the public network are facilitated by network address translation (“NAT”). | 02-09-2012 |
20120036193 | NAT Traversal for Media Conferencing - Methods for establishing a direct peer-to-peer (“P2P”) connection between two computers are disclosed. In particular, the methods are designed to work in cases where one or both of the computers are connected to a private network, such private networks being interconnected via a public network, such as the Internet. The connections between the private network and the public network are facilitated by network address translation (“NAT”). | 02-09-2012 |
20120042027 | NAT Traversal for Media Conferencing - Methods for establishing a direct peer-to-peer (“P2P”) connection between two computers are disclosed. In particular, the methods are designed to work in cases where one or both of the computers are connected to a private network, such private networks being interconnected via a public network, such as the Internet. The connections between the private network and the public network are facilitated by network address translation (“NAT”). | 02-16-2012 |
20140052870 | NAT TRAVERSAL FOR MEDIA CONFERENCING - Methods for establishing a direct peer-to-peer (“P2P”) connection between two computers are disclosed. In particular, the methods are designed to work in cases where one or both of the computers are connected to a private network, such private networks being interconnected via a public network, such as the Internet. The connections between the private network and the public network are facilitated by network address translation (“NAT”). | 02-20-2014 |
Patent application number | Description | Published |
20100235523 | FRAMEWORK FOR SUPPORTING MULTI-DEVICE COLLABORATION - A framework for providing multi-device collaboration is described herein. In one embodiment, a method for providing multi-device collaboration between first and second devices can include transferring an initializing function call to create a session object. The function call specifies a mode of the session object, a service type, and a service name. The session object can include functions to discover the second device, connect with the second device, and provide data transport between the connected first and second devices. The service name can include a truncated name, a unique identification, and a state of service of a software application associated with the first device. The method can include detecting a network and advertising the service type and the service name via the network. The service type and service name can be advertised prior to establishing the connection between the first and second devices. | 09-16-2010 |
20110249073 | Establishing a Video Conference During a Phone Call - 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. | 10-13-2011 |
20110249074 | In Conference Display Adjustments - Some embodiments provide a method for modifying a composite display of a first mobile device that is engaged in a video conference with a second device. The method presents, on the first device, the composite display having a first video captured by the first device and a second video captured by the second device. The method receives, at the first device, an input for modifying the composite display during the video conference. The method modifies the composite display based on the received input. | 10-13-2011 |
20110249075 | Remote Control Operations in a Video Conference - Some embodiments provide a method for allowing a first device that is in a video conference with a second mobile device to remotely control the second mobile device. The method sends images captured by a camera of the first device to the second device. The method receives images captured by a camera of the second device. The method sends a command through a communication channel of a real-time communication session to the second device. The command is for instructing the second device to perform an operation that modifies the images captured by the camera of the second device. | 10-13-2011 |
20110249077 | Video Conference Network Management for a Mobile Device - Some embodiments provide a method for managing a video conference between a first device and a second device. The method identifies a first ceiling bit rate for transmitting video conference data to the second device through the communication channel. The method identifies a current bit rate that is less than the first ceiling bit rate. The method receives networking data regarding the communication channel from the second device. The method determines, from the received network data, that the communication channel will sustain an increase in the current bit rate. The method increments the current bit rate. The method iteratively performs the receiving, determining, and incrementing operations until a determination is made that the communication channel will not sustain the increase in the current bit rate. | 10-13-2011 |
20110249078 | Switching Cameras During a Video Conference of a Multi-Camera Mobile Device - Some embodiments provide a method for conducting a video conference between a first mobile device and a second device. The first mobile device includes first and second cameras. The method selects the first camera for capturing images. The method transmits images captured by the first camera to the second device. The method receives selections of the second camera for capturing images during the video conference. The method terminates the transmission of images captured by the first camera and transmits images captured by the second camera of the first mobile device to the second device during the video conference. | 10-13-2011 |
20110252090 | Dynamic Designation of a Central Distributor in a Multi-Participant Conference - Some embodiments dynamically designate one of several network nodes as a network hub of a star network, at the start of a network communication session among the several network nodes that is facilitated by a mesh network and the star network. Some embodiments dynamically designate a new network hub when the previously designated network hub leaves the communication session, which continues among the other network nodes. Different embodiments use different techniques to dynamically designate the network hub of the star network. For instance, some embodiments use communications transmitted along the mesh network to dynamically identify the network hub at the start of the network communication session or after the departure of a previously designated network hub. | 10-13-2011 |
20110252144 | Apparatus and Method for Establishing and Utilizing Backup Communication Channels - 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. | 10-13-2011 |
20110252157 | AUDIO PROCESSING OPTIMIZATION IN A MULTI-PARTICIPANT CONFERENCE - A first computing device distributes audio streams to several computing devices of participants in a communication session. Some embodiments establishes a star network with the first computing device as a central network hub for receiving audio streams from other computing devices, compositing the audio streams and distributing the composited audio streams to the other computing devices. Through the star network, the first computing device receives audio streams from the other computing devices. The first computing device generates at least two different composite audio streams for at least two different computing devices by (i) identifying a set of silent participants in the communication session, and (ii) eliminating redundant audio processing operations that produce the same composite audio streams for different computing devices because of the identified set of silent participants. The first computing device sends each computing device the composited audio stream for the device. | 10-13-2011 |
20110252238 | Apparatus and Method for Efficiently and Securely Exchanging Connection Data - An apparatus, method, and machine-readable medium are described for securely and efficiently exchanging connection data for a peer-to-peer (“P2P”) session on a network comprising. For example, in one embodiment, a connection data exchange (“CDX”) service can perform the function of a central exchange point for connection data. In one embodiment, the CDX service can perform the operations of receiving a connection data structure, sometimes referred to herein as a “ticket,” created by a matchmaker or an invitation service in response to requests from a group of mobile computing devices attempting to establish peer-to-peer (“P2P”) connections. The ticket can identify each of the group of mobile computing devices and can include encrypted NAT hole punch data associated with each of the mobile computing devices. The CDX service can authenticate the ticket and decrypt the NAT hole punch data contained in the ticket using a CDX ticket key used by the matchmaker service or the invitation service to encrypt the ticket. Once the ticket is authenticated and the hole punch data retrieved, the CDX service can send connection data to each of the mobile computing devices residing behind NAT devices using the NAT hole punch data. | 10-13-2011 |
20110252319 | MULTI-NETWORK ARCHITECTURE FOR MEDIA DATA EXCHANGE - Some embodiments use several different types of networks to relay several different types of media content among several different computing devices. The media content of some embodiments is data that a computing device can process in order to provide a presentation of the media content to a user of the device. Examples of types of such media content include audio data, video data, text data, picture data, game data, and/or other media data. In some embodiments, two different networks relay media content of two different types among multiple computing devices. Specifically, in some embodiments, a first network routes among the computing devices one type of media data content (e.g., game data), while a second network routes among the computing devices another type of media data content (e.g., audio and/or video data of game participants). The two networks differ in some embodiments based on their topology. | 10-13-2011 |
20120069134 | AUDIO PROCESSING IN A MULTI-PARTICIPANT CONFERENCE - A first computing device distributes audio signals to several computing devices of participants in a communication session. In some embodiments, the first computing device serves as a central distributor for receiving audio signals from other computing devices, compositing the audio signals and distributing the composited audio signals to the other computing devices. The first computing device prioritizes the received audio signals based on a set of criteria and selects several highly prioritized audio signals. The first computing device generates composite audio signals using only the selected audio signals. The first computing device sends each computing device the composited audio signal for the device. In some cases, the first computing device sends a selected audio signal to another computing device without mixing the signal with any other audio signal. | 03-22-2012 |
20120092991 | ADAPTING TRANSMISSION TO IMPROVE QOS IN A MOBILE WIRELESS DEVICE - A method and apparatus for adapting transmission to improve quality of service in a mobile wireless device that includes an application processor and a transceiver. An application service connection is established between the mobile wireless device and a remote device. The transceiver in the mobile wireless device monitors real time properties of a radio frequency access link that transports packets for the application service between the mobile wireless device and a wireless communication network. The transceiver provides local feedback to the application processor of updated values of the monitored real time properties. The application processor adjusts packet data generation and transmission in response to the updated values to manage quality of service for the application service connection. Packet data transmission adjustment includes active management of queues in the transceiver by the application processor, selectively dropping packets based on packet classifications and the local feedback information provided to the application processor. | 04-19-2012 |
20120246301 | APPARATUS AND METHOD FOR MANAGING PEER-TO-PEER CONNECTIONS BETWEEN DIFFERENT SERVICE PROVIDERS - In one embodiment of the invention, service providers generate bloom filters with the user ID codes of registered users and exchange the bloom filters with one another. In response to a request to locate a first user, a first service provider will query its own registration database to determine if the first user is registered with the first service provider. If the first user is not registered with the first service provider, then the first service provider will query its bloom filters to identify other service providers with which the first user may be registered. A positive response from a bloom filter indicates that the first user may or may not be registered with the service provider associated with that bloom filter, and a negative response indicates with certainty that the first user is not registered with the service provider associated with that bloom filter. | 09-27-2012 |
20120260145 | Per-Image Forward Error Correction - Some embodiments provide a method for encoding digital video. The method receives a digital video image. The method encodes the digital video image. The method generates error correction information for the encoded digital video image using only data from the encoded digital video image. The method transmits the generated error correction information with the encoded digital video image. In some embodiments, the method determines a level of error protection for the encoded digital video image based on an image type of the encoded digital video image. | 10-11-2012 |
20120281715 | ADAPTIVE BANDWIDTH ESTIMATION - Some embodiments provide a method of combining multiple streams of data packets into a single combined stream in a manner that facilitates accurate estimation of bandwidth of a connection over a network between two devices. When combining the streams into the combined stream, the method associates a set of packets from a first stream and a reference packet from a second stream to form a longer sequence of packets in the combined stream. The method sends the combined stream from a first device to a second device so that the second device can estimate the bandwidth of the connection between the first and second devices based on the inter-arrival times of the packets in the sequence of packets. | 11-08-2012 |
20130034146 | SELECTION OF ENCODER AND DECODER FOR A VIDEO COMMUNICATIONS SESSION - For a first device participating in a video communications session with a second device, some embodiments provide a method that receives sets of encoding features supported by each of one or more decoders of the second device. The method selects an encoder for the video communication session from several encoders available to the first device. The method selects a set of encoding features of the selected encoder based on the sets of encoding features received from the second device. The method transmits an encoded video bitstream to the second device along with information identifying the selected features in order for the second device to select a decoder to decode the bitstream. | 02-07-2013 |
20130265378 | Switching Cameras During a Video Conference of a Multi-Camera Mobile Device - Some embodiments provide a method for conducting a video conference between a first mobile device and a second device. The first mobile device includes first and second cameras. The method selects the first camera for capturing images. The method transmits images captured by the first camera to the second device. The method receives selections of the second camera for capturing images during the video conference. The method terminates the transmission of images captured by the first camera and transmits images captured by the second camera of the first mobile device to the second device during the video conference. | 10-10-2013 |
20130322626 | Network Stream Identification For Open FaceTime - A method and apparatus of a device that distinguishes multiplexed media and signaling data traffic is described. In an exemplary embodiment, the device receives, on a single port, a packet of the multiplexed data traffic, where the multiplexed data traffic includes a plurality of packets and each of the plurality of packets is one of a media packet and an encapsulated signaling packet. The device further examines an initial data element of a header of the received packet to determine if the received packet is one of a media packet and a signal packet. The device further forwards the packet to a corresponding module for further processing based on the examining. | 12-05-2013 |
20140047031 | Multi-Network Architecture for Media Data Exchange - Some embodiments use several different types of networks to relay several different types of media content among several different computing devices. The media content of some embodiments is data that a computing device can process in order to provide a presentation of the media content to a user of the device. Examples of types of such media content include audio data, video data, text data, picture data, game data, and/or other media data. In some embodiments, two different networks relay media content of two different types among multiple computing devices. Specifically, in some embodiments, a first network routes among the computing devices one type of media data content (e.g., game data), while a second network routes among the computing devices another type of media data content (e.g., audio and/or video data of game participants). The two networks differ in some embodiments based on their topology. | 02-13-2014 |
20140067405 | ADAPTIVE AUDIO CODEC SELECTION DURING A COMMUNICATION SESSION - A method for adaptive audio codec selection during a communication session is disclosed. The method can include negotiating a set of audio codecs for use during the communication session. The method can further include defining multiple audio tiers. Each audio tier can be associated with a network condition and can define an audio codec from the set of audio codecs for use in the associated network condition. The method can also include using a first audio codec during the wireless communication session. The method can additionally include determining a changed network condition selecting a second audio codec by determining the audio tier corresponding to the changed network condition. The method can further include, in response to the changed network condition, switching from the first audio codec to a second audio codec that is defined by an audio tier having an associated network condition corresponding to the changed network condition. | 03-06-2014 |
20140068084 | DETECTING AND RECOVERING FROM A TRANSMISSION CHANNEL CHANGE DURING A STREAMING MEDIA SESSION - A method for detecting and recovering from a transmission channel change during a streaming media session is disclosed. The method can include a wireless communication device detecting a stall condition resulting from a transmission channel change. The method can further include the wireless communication device capturing a snapshot of a current transmission parameter state of the streaming media session in response to detecting the stall condition. The method can also include the wireless communication device using the snapshot to restore the streaming media session to the transmission parameter state captured by the snapshot following completion of the transmission channel change. | 03-06-2014 |
20140269932 | CODEC TECHNIQUES FOR FAST SWITCHING - 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. | 09-18-2014 |
20140354759 | Establishing a Video Conference During a Phone Call - 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. | 12-04-2014 |
20140365770 | APPARATUS AND METHOD FOR EFFICIENTLY AND SECURELY EXCHANGING CONNECTION DATA - In the described embodiments, a connection data exchange (“CDX”) service serves as an exchange point for connection data for establishing peer-to-peer (“P2P”) connections between devices. During operation, the CDX service can receive a connection data structure (a “ticket”) that was created by a matchmaker or an invitation service in response to requests from devices attempting to establish P2P connections. Each ticket can identify a corresponding device and can include encrypted NAT hole-punch data associated with the corresponding device. The CDX service can authenticate each ticket and decrypt the NAT hole punch data from the ticket using a corresponding key. The CDX service can then use corresponding NAT hole punch data to send connection data to each of the devices that reside behind NAT devices. | 12-11-2014 |