IP Library › Granted Patent US 9,569,097
Granted Patent B2
US 9,569,097 · App. 13/309,459 · Granted Feb 14, 2017

Video streaming in a web browser

Inventor: Vivek V. Ramachandran (Redmond, WA)
Assignee: Microsoft Technology Licesing, LLC
G06F3/04883G06F3/04842H04N21/2355H04N21/472
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,569,097
App. No.
13/309,459
Filed
Dec 1, 2011
Granted
Feb 14, 2017
Kind
B2
Art Unit
2174
USPC
715/719
Abstract

A video element of a browser can be moved, resized, etc. independently of the remainder of a browser page. In one embodiment, as the video element is moved, the remainder of the browser page is reformatted so as to change the page's layout. The renderer of the content can have a different video provider sourcing the video element than the remainder of the browser page. As a result, two different content streams can be provided to the renderer in parallel. In another embodiment, the video element can be docked, such as through a flick operation or a drag-and-drop operation. Once docked, the browser page can be scrolled while the docked video element remains at a fixed location relative to an edge of the browser page.

Claims (39)

1. A method of streaming video to a browser on a client device, comprising:

receiving, from a media engine, a decoded video stream displayable in a video element of the browser on the client device;

receiving content, separate from the decoded video stream, from a browser engine;

combining the decoded video stream and the content using a renderer;

displaying the decoded video stream and content in a same browser page using the renderer; and

in response to user input, moving the video element relative to the content so that a layout of the browser page changes;

wherein the browser engine has control of both of the video element and the content until a selection of the video element is received, and, in response to the selection, the browser engine passes control of the video element to the media engine for delivering the decoded video stream to the renderer.

2. The method of claim 1 , further including docking the video element relative to an edge of the browser page.

3. The method of claim 2 , further including scrolling the content, while the video element remains at a fixed location relative to an edge of the browser page.

4. The method of claim 1 , further including passing position coordinates of the video element to a user interface renderer.

5. The method of claim 1 , further including receiving an encoded video stream and the content from a network using a media engine on the client device, and further including decoding the encoded video stream and content using the media engine.

6. The method of claim 1 , wherein the user input includes a drag-and-drop operation or a flick operation.

7. The method of claim 1 , further including passing control of the video element from a browser engine to a media engine upon selection of the video element.

8. The method of claim 7 , wherein passing control includes passing a video element identifier from the browser engine to the media engine and passing the video element identifier from the browser engine to a renderer.

9. The method of claim 1 , further including receiving user input selecting the video element while the decoded video stream is playing and switching to a full-screen mode wherein only the decoded video stream from the media engine is rendered.

10. The method of claim 1 , wherein the layout of the page changing includes reformatting the content to account for movement of the video element.

11. The method of claim 10 , wherein reformatting includes resizing the content.

12. A computer-readable storage component having instructions thereon for implementing a method, comprising:

playing a video in a video element of a browser while displaying written content outside of the video element;

receiving user input to move the video element;

in response to the user input, moving the video element to a docked position; and

scrolling the written content, while maintaining the video element in the docked position, which is a fixed position relative to an edge of a user interface, wherein both the written content and the video element are controlled by a browser engine;

receiving a user selection of the video element;

in response to the user selection, passing coordinates of the video element from the browser engine to a media engine;

wherein the video is sourced from the media engine and the written content is sourced from the browser engine, so that a renderer displaying the video and written content simultaneously receives the video and written content in parallel streams and displays the video and written content in a single browser page.

13. The computer-readable storage component of claim 12 , further including reformatting the written content to account for a change in position of the video element relative to the written content as the written content is scrolled.

14. The computer-readable storage component of claim 12 , wherein the browser is located on a mobile phone and the video and the written content are displayed in a single browser page.

15. The computer-readable storage component of claim 12 , wherein the received user input is a flick operation or a drag-and-drop operation.

16. A method, comprising:

playing a video in a video element of a browser while displaying written content outside of the video element;

receiving user input to move the video element;

in response to the user input, moving the video element to a docked position; and

scrolling the written content, while maintaining the video element in the docked position, which is a fixed position relative to an edge of a user interface, wherein both the written content and the video element are controlled by a browser engine;

receiving a user selection of the video element;

in response to the user selection, passing coordinates of the video element from the browser engine to a media engine;

wherein the video is sourced from the media engine and the written content is sourced from the browser engine, so that a renderer displaying the video and written content simultaneously receives the video and written content in parallel streams and displays the video and written content in a single browser page.

17. The method of claim 16 , further comprising reformatting the written content to account for a change in position of the video element relative to the written content as the written content is scrolled.

18. The method of claim 16 , wherein the browser is located on a mobile phone and the video and the written content are displayed in a single browser page.

19. The method of claim 16 , wherein the received user input is a flick operation or a drag-and-drop operation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2012
From: RAMACHANDRAN, VIVEK V.
To: MICROSOFT CORPORATION
Reel/Frame 027715/0513 →
Continuity (1)
Related Publication 20130145267A1 · Jun 6, 2013