IP Library Granted Patent US 9,755,847
Granted Patent B2
US 9,755,847 · App. 14/134,240 · Granted Sep 5, 2017

Method and system for sharing and discovery

Inventors: Philippe Clavel (San Francisco, CA); Timophey Zaitsev (San Francisco, CA); Stefan Birrer (San Francisco, CA); Alexandre Francois (San Francisco, CA)
Assignee: Rabbit, Inc.
H04L12/1822
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,755,847
App. No.
14/134,240
Granted
Sep 5, 2017
Kind
B2
Abstract

A method for sharing media within a chat room system, including: in response to receipt of a sharing selection from a user at a device, rerouting an audio output from a default audio output of the device to a virtual audio output, capturing a primary audio stream generated by an application executed on the device with the virtual audio output, sending the primary audio stream to an external server for distribution to secondary user devices, receiving a secondary audio stream from the external server and concurrently playing the primary audio stream and secondary audio stream at an audio output of the device.

Claims (47)

1. A method for sharing media within a chat group at a user device, comprising:

in response to receipt of a sharing selection from a user at a device, routing an audio output from a default audio output of the device to a virtual audio module;

receiving a primary audio stream generated by an application executed on the device at the virtual audio module;

sending the primary audio stream to an external server system by the virtual audio module for distribution to secondary user devices;

receiving a secondary audio stream from the external server system;

mixing the primary audio stream and the secondary audio stream into a final audio stream; and

playing the final audio stream at the default audio output of the device.

2. The method of claim 1 further comprising processing the secondary audio stream to meet audio settings selected based on a priority associated with the secondary audio stream, wherein mixing the primary audio stream and the secondary audio stream into a final audio stream comprises mixing the primary audio stream and the processed secondary audio stream into a final audio stream.

3. The method of claim 2 , wherein receiving the secondary stream comprises receiving an ambient audio stream and the participant audio streams from the server, the participant audio streams received from the secondary devices, wherein the participant audio streams are each associated with one of a plurality of chat groups, wherein each chat group comprises a chat group priority for the user, wherein mixing the primary audio stream and secondary audio stream comprises processing each participant audio stream based on the respective chat group priority and mixing the participant audio streams with the primary audio stream into the final audio stream.

4. The method of claim 3 , wherein processing each participant audio stream based on the respective chat group priority comprises increasingly attenuating the participant audio stream with decreasing chat group priority.

5. The method of claim 3 , wherein each chat group further comprises a virtual position within a virtual space, wherein processing each participant audio stream further comprises mixing the participant audio streams to have aural positions corresponding with the respective chat group virtual position, wherein the final audio stream comprises a stereophonic audio stream.

6. The method of claim 1 , further comprising delaying primary audio stream playback by a delay period.

7. The method of claim 6 , further comprising determining the delay period at the device based on a substantially instantaneous timestamp of the device and a timestamp of the received secondary audio stream.

8. The method of claim 6 , further comprising receiving a delay period from the server, the delay period estimated from network connectivity parameters of the secondary user devices.

9. The method of claim 1 , further comprising:

at the device, capturing a primary video stream rendered by the application executed on the device; and

sending the primary video stream to the external server for distribution to the secondary user devices.

10. The method of claim 9 , further comprising:

receiving a secondary video stream from the external server, the secondary video stream corresponding to a subset of the secondary audio stream;

synchronizing the secondary video stream and the secondary audio stream; and

concurrently displaying the primary video stream and secondary video stream at a display of the device.

11. The method of claim 10 , wherein synchronizing the secondary video stream and the secondary audio stream comprises skipping video frames until a timestamp of an instantaneous video frame substantially matches a timestamp of a given audio frame.

12. The method of claim 9 , wherein capturing the primary video stream rendered by the application comprises extracting the primary video stream from the application through an application programming interface for the application.

13. The method of claim 9 , wherein capturing the primary video stream rendered by the application comprises accessing graphics rendering instructions for the application at the graphics card.

14. The method of claim 1 , further comprising in response to detection of a shutoff event, restoring the audio output to the default audio output.

15. A method for sharing media at a user device, comprising:

receiving a reference to media stored on an external media server at a primary user device;

sending the reference to a chat server;

receiving, from the chat server, a media timestamp corresponding to a given time;

within a threshold period from the given time, streaming an audio and video frame of the referenced media corresponding to the media timestamp from the external media server;

receiving a chat group audio stream from the chat server;

processing the chat group audio stream to meet audio settings selected based on a chat group priority associated with the chat group audio stream;

mixing the audio frame with the processed chat group audio stream into a final audio stream; and

playing the final audio stream at the primary user device.

16. The method of claim 15 , wherein the media timestamp and the given time comprise a start time and a timestamp of a first audio and video frame of the media.

17. The method of claim 15 , further comprising:

recording a substantially instantaneous timestamp of the media and the substantially instantaneous time at the primary user device; and

sending the recorded timestamp and time to the chat server at a predetermined frequency.

18. The method of claim 15 , wherein processing the chat group audio stream comprises dampening the chat group audio stream.

19. The method of claim 15 , further comprising receiving a secondary video stream from the chat server and concurrently displaying the secondary video stream with video of the referenced video.

20. A method for sharing media at a user device, comprising:

in response to receipt of a sharing selection from a user at a device, rerouting an audio output from a default audio output of the device to a virtual audio module;

capturing a primary audio stream generated by an application executed on the device with the virtual audio module;

extracting a primary video stream generated by the application with a video module;

sending the primary audio stream and the primary video stream to an external server from the virtual audio module and the video module, respectively, for distribution to secondary user devices;

receiving a secondary audio stream and a secondary video stream from the external server; and

concurrently playing the primary audio stream, primary video stream, secondary audio stream, and secondary video stream at an audio output of the device.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2019
From: RABBIT, INC.
To: RABBIT (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 050506/0024 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2019
From: RABBIT (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
To: RABBIT ASSET PURCHASE CORP.
Reel/Frame 050529/0396 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2015
From: CLAVEL, PHILIPPE; ZAITSEV, TIMOPHEY; BIRRER, STEFAN; FRANCOIS, ALEXANDRE RALPH JEAN
To: RABBIT, INC.
Reel/Frame 036466/0631 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2014
From: CLAVEL, PHILIPPE; ZAITSEV, TIMOPHEY; BIRRER, STEFAN; FRANCOIS, ALEXANDRE
To: RABBIT, INC.
Reel/Frame 032079/0178 →
Continuity (3)
Provisional Application 61739544 · Dec 19, 2012
Provisional Application 61777275 · Mar 12, 2013
Related Publication 20140173430A1 · Jun 19, 2014