Sign In to Follow Application
View All Documents & Correspondence

Content Rendering Device

Abstract:

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
30 December 2014
Publication Number
36/2016
Publication Type
INA
Invention Field
COMMUNICATION
Status
Email
Parent Application

Applicants

SpeedFetch Pvt Ltd
D-69 Okhla Industrial Area Phase 1, New Delhi, India

Inventors

1. Dipank Sharma
S-328, Greater Kailash - II, New Delhi 110048

Specification

FIELD
[001] The present invention relates to communication systems, specifically, the
present invention relates to rendering encrypted content.
BACKGROUND
[002] While browsing on Internet, a user may wish to downlo!!!d C(mtent from a
website. The content includes without limitatio'n, text f!les, multimedia files,
movies, etc. The time taken for content to download varies depending upon a
number of factors including without limitation, the size of the content file to be
downloaded, the speed of the Internet connection, etc. Typically, to initiate
content download, a device of a user, for example, a laptop is connected to the
Internet via a wired or wireless connection. The wireless connection may be
facilitated via wireless access points (APs or WAPs) which are specially
configured devices on wireless local area networks (WLANs) and act as a central
transmitter and receiver of wireless radio signals, for example, Wi-Fi.
{003] The user may initiate download in home premises or public places like
cafes, restaurants, etc. In either of these places, APs may be used to support
public Internet hotspots to extend their Wi-Fi signal range. Once the Internet
connection is established via APs, the content can be downloaded. Currently,
access points are small, dedicated hardware devices featuring a built-in network
adapter, antenna, and radio transmitter. The APs facilitate the content which is
sourced from a content server. Due to this, in case a file size is large, it takes a
very long time to download the file. Also, if the same content is requested by
multiple users connected to the Internet via a common access point, each user
will need to source the file from the content server. This in turn increases the
workload of the content server and also blocks bandwidth of the requesting
network. Alternately, if a user tries to transfer the content locally, the user may
face limitations of bandwidth, availability of support protocols, etc.
1---"T·~.-..·--- ..i.: ;'• • li..:.P~N
2
, ..
SUMMARY
[004] In accordance with an embodiment of the invention, a content rendering
device present in a communication device is disclosed. The content rendering
device includes a stream controller for generating one or more streams of a
content, a cast controller for deciphering a protocol support by a local device,
the protocol tn hp used for streaming tlr~ une or more streams of content, and a
media renderer for rendering the one or more streams of content to the local
device using the deciphered protocol.
[005] In accordance with another embodiment of the invention, a method for
rendering a content from a communication device to one or more local devices is
disclosed. The method includes generating one or more streams of the content;
deciphering a protocol support by the one or more local devices, the protocol to
be used for rendering the one or more streams of the content; and rendering the
one or more streams of the content to the one or more local devices using the
deciphered protocol via a short-range communication network.
BRIEF DESCRIPTION OF THE DRAWINGS
[006] The summary above, as well as the following detailed description of
illustrative embodiments, is better understood when read in conjunction with
the appended drawings. For the purpose of illustrating the present disclosure,
exemplary constructions of the disclosure are shown in the drawings. However,
· the disclosure is not limited to specific methods and instrumentalities disclosed
herein. Moreover, those in the art will understand that the drawings are not to

scale. Wherever possible, like elements have been indicated by identical
numbers.
[007] FIG. lA shows an environment of a distributed system in accordance with
an embodiment of the present invention .
... ...
.J; l"
.. ~~
"''4,!;_;··~~ - 3
[008] FIG. 1B shows an environment of a distributed system in accordance with
an alternate embodiment of the present invention.
[009] FIG. 2A illustrates an exemplary single instance of a communication
device of FIG. 1A where the teachings of the present invention may be practiced.
[0010] FIG. 2B is an alternate exemplary instance of the communication. device
communicating with one or more local devices.
[0011] FIG. 2C illustrates an exemplary single instance of a communication
device of FIG. 1B where the teachings of the present invention may be practiced.
[0012] FIG. 3 is an exemplary illustration of a content rendering module present
on the communication device.
[0013] FIG. 4 illustrates an exemplary depiction of buttons provided on an
interface of the media renderer.
[0014] FIG. SA illustrates a flowchart depicting the steps for practicing the
teachings of the present invention in accordance with a first embodiment of the
present invention.
[0015] FIG. SB illustrates a flowchart depicting the steps for practicing the
teachings of the present invention in accordance with a second embodiment of
the present invention.
[0016] FIG. SC illustrates a flowchart depicting the steps for practicing the
teachings of the present invention in accordance with a third embodiment of the
present invention.
[0017] FIG. 6 is a general depiction of detailed step 502 in accordance with an
embodiment of the present invention.
[0018] FIG. 7 is a flow diagram showing casting functionality of the media player
in accordance with an embodiment of the present invention .
S.... 'J"' .:-
i.
t
l
[0019] FIG. 8 illustrates an exemplary flowchart for rendering content from a
communication device to a local device.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
[0020] Methods and systems for rendering video to multiple devices from a
handheld device are disclosed. The following description is prpc:;entild to enable
any person skilled in the art to make and use the invention. For purposes of
explanation, specific nomenclature is set forth to provide a thorough
understanding of the present invention. Descriptions of specific applications are
provided only as examples. Vario.us modifications to the preferred embodiments
will be readily apparent to those skilled in the art, and the general principles
defined herein may be applied to other embodiments and applications without
departing from the spirit and scope of the invention. Thus, the present invention
is not intended to be limited to the embodiments shown, but is to be accorded
the widest scope consistent with the principles and features disclosed herein.
[0021] Reference throughout this specification to "one embodiment," "an
embodiment," or similar language means that a particular feature, structure, or
characteristic described in connection with the embodiment is included in at
least one embodiment. Thus, appearances of the phrases "in one embodiment,"
"in an embodiment," and similar language throughout this specification may, but
do not necessarily, all refer to the same embodiment, but mean "one or more
but not all embodiments" unless expressly specified otherwise. The terms
"including," "comprising," "having," and variations thereof mean "including but
not limited to" unless expressly specified otherwise. An enumerated listing of
items does not imply that any or all of the items are mutually exclusive and/or
mutually inclusive, unless expressly specified otherwise. The terms "a," "an,"
and "the" also refer to "one or more" unless expressly specified otherwise.
[0022] Furthermore, the described features, advantages, and characteristics of
the embodiments may be combined in any suitable manner. One skilled in the
.
"
! t
~;. .
1••
" t
--
relevant art will recognize that the embodiments may be practiced without one
or more of the specific features or advantages of a particular embodiment. In
other instances, additional features and advantages may be recognized in certain
embodiments that may not be present in all embodiments.
[0023] These features and advantages of the embodiments will become more
fully apparent from the following description and appended claims, or may be
learned by the practice of embodiments as set forth hereinafter. As will be
appreciated by one skilled in the art, aspects of the present invention may be
embodied as a system, method, and/or computer program product. Accordingly,
aspects of the present invention may take the form-of an entirely logic hardware
embodiment, an entirely software embodiment (including firmware, resident
software, micro-code, or the like) or an embodiment combining software and
logic hardware aspects that may all generally be referred to herein as a "circuit,"
"module," or "system." Furthermore, aspects of the present invention may take
the form of a computer program product embodied in one or more computer
readable storage medium(s) having program code embodied thereon.
[0024] Many of the functional units described in this specification have been
labeled as modules, in order to more particularly emphasize their
implementation independence. For example, a module may be implemented as
a logic hardware circuit comprising custom VLSI circuits or gate arrays, off-theshelf
semiconductors such as logic chips, transistors, or other discrete
components. A module may also be implemented in programmable logic
hardware devices such as field programmable gate arrays, programmable array
logic, programmable logic devices or the like.
[0025] Modules may also be implemented in software for execution by various
types of processors. An identified module of program code may, for instance,
comprise one or more physical or logical blocks of computer instructions which
may, for instance, be organized as an object, procedure, or function.
6
, I
Nevertheless, the executables of an identified module need not be physically
located together, but may comprise disparate instructions stored in different
locations which, when joined logically together, comprise the module and
achieve the stated purpose for the module.
[0026] Indeed, a module of program code may be a single instruction, or many
instructions, and may even be distributed over several different code segments,
among different programs, and across several memory devices. Similarly,
operational data may be identified and illustrated herein within modules, and
may be embodied in any suitable form and organized within any suitable type of
data structure. The operational data may be collected as a single data set, or
may be distributed over different locations including over different storage
devices, and may exist, at least partially, merely as electronic signals on a syste.m
or network. Where a module or portions of a module are implemented in
software, the program code may be stored and/or propagated on in one or more
computer readable medium(s).
[0027] Aspects of the present invention are described herein with reference to
flowchart illustrations and/or block diagrams of methods, apparatus (systems),
and computer program products according to embodiments of the invention. It
will be understood that each block of the flowchart illustrations and/or block
diagrams, and combinations of blocks in the flowchart illustrations and/or block
diagrams, can be implemented by computer readable program instructions.
[0028] The schematic flowchart diagrams and/or schematic block diagrams in
the Figures illustrate the architecture, functionality, and operation of possible
implementations of apparatuses, systems, methods and computer program
products according to various embodiments of the present invention. In this
regard, each block in the schematic flowchart diagrams and/or schematic block
diagrams may represent a module, segment, or portion of code, which comprises
7
.,
one or more executable instructions of the program code for implementing the
specified logical function(s).
[0029] It should also be noted that, in some alternative implementations, the
functions noted in the block may occur out of the order noted in the Figures. For
example, two blocks shown in succession may, in fact, be executed substantially
concurrently, or the blocks may sometimes be executed in the reverse order,
depending upon the functionality involved. Other steps and methods may be
conceived that are equivalent in function, logic, or effect to one or more blocks,
or portions thereof, of the illustrated Figures.
[0030] Although various arrow types and line types may be employed in the
flowchart and/or block diagrams, they are understood not to limit the scope of
the corresponding embodiments. Indeed, some arrows or other connectors may
be used to indicate only the logical flow of the depicted embodiment. For
instance, an arrow may indicate a waiting or monitoring period of unspecified
duration between enumerated steps of the depicted embodiment. It will also be
noted that each block of the block diagrams and/or flowchart diagrams, and
combinations of blocks in the block diagrams and/or flowchart diagrams, can be
implemented by special purpose hardware-based systems that perform the
specified functions or acts, or combinations of special purpose hardware and
program code.
[0031] Applications, software programs or computer readable instructions may
be referred to as components or modules. Applications may be hardwired or
hard coded in hardware or take the form of software executing on a general
purpose computer such that when the software is loaded into and/or executed
by the computer, the computer becomes an apparatus for practicing the
invention, or they are available via a web service. Applications may also be
downloaded in whole or in part through the use of a software development kit or
a toolkit that enables the creation and implementation of the present invention.
·~ ..... J,;· ,_
8
In this specification, these implementations, or any other form that the invention
may take, may be referred to as techniques. In general, the order of the steps of
disclosed processes may be altered within the scope of the invention.
[0032] Referring to drawings, FIG. 1A shows an environment of a distributed
system 10 including a content server 20, a licensing server 30, a communication
hub 40 and various communication devices such as 01, 02 ... Dn. The content
server 20, licensing server 30, communication hub 40 and various
communication devices may communicate with each other via a network 80.
Such network 80 may include without limitation local area networks (LANs),
other wide area networks (WANs), and regional networks accessed over
telephone lines, such as commercial information services. Although a single
content server 20, licensing server 30 and communication hub 40 is depicted in
FIG. 1A for clarity purposes, it is possible that multiple such elements may be
used and communicate with each other via the network 80.
[0033] The content server 20 and the licensing server 30 may be respective
remote computer systems that may communicate with each other or be
accessible to the communication hub 40 over the network 80 such as the
Internet. They may comprise a hardware server including one or more
processors, memories, input/output devices, and a network interface,-such as a
modem. The content server 20 and the licensing server 30 may communicate
with one or more server processes of each other or a client process of for
example, the communication hub 40 or access point over the network 80 that
allows multiple servers/clients to take advantage of the information-gathering
capabilities of the content server 20. The content server 20 may contain content
that may be accessed by various clients and may thus, essentially acts as an
information provider for the communication hub 40. The licensing server 30 may
be responsible for encrypting the content to be provided by the content server
20. For example, before fetching the content to the communication hub 40, the
content server 20 may request licensing server 30 to encrypt the content using
an encryption algorithm for example, digital rights management (DRM), 128 bit
encryption, etc. Alternately, DRM encryption may use standard 128 bit
encryption to encrypt content. The content server 20 may provide unencrypted
content, pre-stored encrypted content or get the content encrypted on the fly by
the licensing server 30. In an embodiment, the functions of the content server 20
and the licensing server may be executed on a single server.
[0034] The communication hub 40 may be situated close to the client end, for
example, the communication hub may form the client side which may be
accessed by the communication devices 01, D2 .. Dn. The communication hub 40
includes without limitation one or more access points (AP)(50, 51, 52) with each
access point having a local storage such as cache (LC) (60, 61, 62) respectively
and a content distribution system (CDS) 70. Optionally, the communication hub
40 may have a hub storage as well. It may be noted that the components (AP, LC
and CDS) of the communication hub 40 can be implemented as separate blocks
and work in tandem with each other or may be assembled as a single block.
[0035] The access point (50, 51, or 52) may be a device configured on a wireless
local area network (WLAN) and act as a central transmitter and receiver of
wireless radio signals. The communication between the access point (SO, 51, or
52) and a communication device (Dl, 02 .. or Dn) may take place using shortrange
communication networks like Wi-Fi, Bluetooth, etc. In addition, each
access point (50, 51, or 52) may be configured to forward each communication
received from respective communication device to the content distribution
system 70.
[0036] The local storage (60, 61, 62) attached to the respective access point may
be a memory or a database which stores the content without any limitation of
the size of the co'ntent. The content may be the content downloaded from the
content server 20 or content provided via an external device for example, a hard
disk, a USB device, etc. The content inclu'des without limitation audio files, video
--
': ·,
files, multimedia files, text files, etc. Although in the diagram, it is depicted that
each access point has a local storage, in a variation as per the teachings of the
present disclosure, a single collective hub storage for all access points may be
provided for the communication hub 40.
[003/) The content distribution system 70 may act as the intelligence of the
access point (SO, 51, or 52). The content distribution system 70 may receive user
requests via the access points (50, 51, or 52) for content download. The content
distribution system 70 may maintain a list of content stored in the local storage
of each access point (SO, 51, or 52) and possess processing capability to analyze
and determine if the requested content is stored in the local storage of the
access point via which the request is received. If the content is not stored locally,
then the content distribution system 70 may facilitate the content via a nearest
access point having the content or obtain the content from the content server 20
and forward the same to the requesting access point. In an embodiment wherein
the communication hub 40 has the hub storage, it may check for the availability
of the requested content at the hub storage before forwarding the request to
the content server 20 or nearest access point. If the content is received from the
content server 20, the content distribution system 70 may store the content in
one or more local storages (60, 61 or 62} and/or hub storage.
[0038] The content distribution system 70 may be configured to determine
whether the received content (from the content server, local storage or hub
storage) is encrypted or unencrypted content. If the content is unencrypted, the
CDS 70 may generate a secure wrap using for example, digital rights
management (DRM) from the licensing server 30, to generate a protected
version of the content with usage based policy rules. The usage based policy
rules include without limitation, permission to play/view the content multiple
times, corrupt the content once the content is viewed/played, etc. For example,
DRM may have multiple algorithms like single view, multiple views, unlimited
views, etc. which may be programmable over-the-air (OTA). The secure wrap on
: G---9~
11
! •·•
\ .. '
J·'.
\,:; ..
the content may be generated on the fly or previously generated and stored in
the local storage (60, 61, or 62) and/or hub storage. Alternately, if the content is
encrypted (or protected), the content distribution system 70 may direct the
access point via which the request was received to send the requested content
to the respectivP communication device.
(0039] From the above, it may thus be seen that the content distribution system
substantially reduces the bandwidth requirement for content download from a
content server and facilitates content download to a communication device at a
very high speed. Further, an end user does not require an Internet connection to
access content available at an access point.
(0040] The communication devices (01, D2 ... Dn) may be user devices requesting
content download/display and include without limitation, a wired phone, a
wireless phone, a laptop, a tablet, a smartphone, a desktop or any other
communication device. Each communication device (01, 02 ... or Dn) may include
one or more processors, memories, input/output devices, and a network
interface. The communication device may be required to install an application
program which may contain one or more catalogues of content available with an
access point. For example, catalogues of all the access points of a service
provider may be the same at the time of download of the application program.
However, once the application program is installed or accessed, the application
program may synchronize the catalogue with the corresponding access point to
have an updated catalogue. Alternately, the application program downloaded by
a user may vary based upon the access point to which the communication device
of the user is connected.
(0041] In an embodiment, a user may have the option of browsing the catalogue
present in an application on the communication device to view the list of content
available at the access point before requesting for download of the content.
Alternately, the user may launch a browser and request for content that the user
.. •.
wishes to download. The browser forwards the request to the access point via
short range communication network for example, Wi-Fi protocol, Bluetooth, etc.
The application program further includes a media player that may be used to
render/stream media to other local devices which are connected to the
communication device. Details of the media player are explained in FIG. 3.
[0042] FIG. lB ilh rc;trates an <:JitcrMte dislrlbut:ed environment lOB consisting of
content server 20, access points 202 and communication devices such as Dl,
D2 ... Dn. The access point 202 may be a conventional access point without a local
storage while the description of content server 20 and communication devices
can be referred from the description of FIG. lA. In this depiction, the access
point 202 may receive the request from one of the communication device (DlDn)
and direct the request to the content server 20. The content server 20 may
provide encrypted or unencrypted content to the requesting access point 202 .
Optionally, the content server 20 may communicate with the licensing server 30
to provide encrypted content. The access point 202 does not include a local
storage.
[0043] FIG. 2A illustrates an exemplary single instance of the communication
device D1 where the teachings of the present invention may be practiced. In this,
the communication device D1 may be in communication with a plurality of local
devices (90, 91 and 92) via short range communication network for example, WiFi
protocol, Bluetooth, LiFi, Near field communication (NFC), Transfer Jet, etc.
One or more local devices (90, 91 and 92) may include a large screen. The local
devices (90, 91 and 92) may include without limitation a television, a mobile
phone, a laptop, a netbook, a gaming console, a portable media player, a
holographic display, etc. The communication device as per the teachings of the
present invention may be a device which is in direct communication with the
access point (51, 52, 53 or 202) while a local device may b~ a device that
communicates with the communication device and receives content rendered by
the communication device. Rendering includes without limitation streaming
and/or download of the content on a local device.
[0044] The device Dl may render content to one or more local devices (90, 91
and 92) once a connection is established between the devices. For this, the
device 01 may be required to launch a media player (explained in FIG. 3)
embedacd in a content rendering module 200 provided on the device. In an
embodiment, it may be required that the local devices (90, 91 and 92) also install
the content rendering module to enable content rendering via the
communication device Dl. The device Dl may be able to render same or
different content to one or more of the local devices (90, 91 and 92)
simultaneously. In an embodiment, the device Dl may be required to decrypt .
the content downloaded from the communication hub 40/access point (51, 52,
53 or 202) before rendering it to the one or more local devices (90, 91 and 92).
[0045] FIG. 2B is an alternate exemplary instance of the communication device Dl
communicating with one or more local devices (90, 91 and 92). In this
embodiment, the content rendering module 200 provided on the device Dl may
request content from conventional access point 202 which in turn may transmit
the request to the content server 20 to provide content. The content server 20
may communicate with the licensing server 30 to generate encrypted version of
the requested content and fetch the same to the AP 202. The AP 202 may
transfer this encrypted content to device Dl. Using the content rendering
module 200, the device Dl may render the content to one or more local devices
(90, 91 and 92) after decryption as explained below.
[0046] FIG. 2C is yet alternate exemplary instance of the communication device Dl
communicating with one or more local devices (90, 91 and 92). In this
embodiment, the content rendering module 200 provided on the device Dl may
request content from conventional access point 202 which in turn may transmit
the request to the content server 20 to provide the content. The content server
-;' 4f ... •"""\,. ·. ~.. ;'7;-1·· :.:;~
,;j· .,.i; - J.;· -.;;! - -- - -
14
:.· .. ,.
20 in turn checks the availability of the content and if available, sends the
requested unencrypted content to the AP 202. The AP 202 may transfer this
content to device 01.
[0047] It may be noted that though the teachings of the present invention have
been discussed via embodiment of FIG. 2A, the teachings of the content
rendering module 200 of the present invention can be equally applied to
embodiment of FIG. 2B and FIG. 2C and corresponding changes may be
accordingly incorporated in various steps.
[0048] FIG. 3 is an exemplary illustration of the content rendering module 200
present on a communication device, say 01. The content rendering module 200
may contain a download module 302, a catalogue module 304, a key acquisition
module 306, a content decryption module 308, and a media player 310. The
media player 310 may include without limitation a stream controller 312, a
media renderer 314 and a cast controller 316.
[0049] The download module 302 may be configured to communicate with the
access point (51, 52, 53 or 202) to send request for a content download.
Alternately, the download module 302 may download the content fetched by the
access point {51, 52, 53 or 202) and store the same in the memory of device 01.
[0050] The catalogue module 304 may contain one or more catalogues of
content available with a closest access point or the communication hub 40. For
example, catalogue module 304 of 01 may contain the catalogue of content
present at local storage 60 and/or hub storage of the communication hub 40.
Further, the catalogue module 304 may contain a list of content downloaded on
device 01. Optionally, the catalogue module 304 may scan the memory of the·
device 01 to add content on the device 01 in the catalogue. In an embodiment,
the catalogue module 304 may be updated after every content download by the
download module 302.
15
l.
;.
[0051] The key acquisition module 306 may obtain a key required for decrypting
the content downloaded from the access point (51, 52, 53 or 202). The key
acquisition module 306 may communicate with the licensing server 30 via the
access point (51, 52, 53 or 202) to obtain the required key. Alternately, the key
acquisition module 306 may directly communicate with the licensing server 30 via
Internet. In an embodiment, the key may be a DRM key. ThP. key m•y specify for
ex_ample, the number of free trials, full license of the content, or time based license,
etc. along with key validation & repudiation.
[0052] The content decryption module 308 may be responsible for decrypting the
content downloaded from the access point (51, 52, 53 or 202) using the key
obtained by the key acquisition module 306. In an embodiment, content
decryption may be done on the fly or near real-time. Alternately, once cpntent is
downloaded by the download module 302, it may be first decrypted by the
content decryption module 308 and then stored in the memory.
[0053] The media player 310 may be responsible for rendering content to the
local devices (90, 91, and/or 92 of FIG. 2). The content may be rendered on
receiving a request from a local device (90, 91 or 92 of FIG. 2) or rendering may
be initiated by the media player 310 once 01 is synced with the local device (90,
91 or 92 of FIG. 2). The media player may include a stream controller 312, a
media renderer 314 and a cast controller 316. Further, the media player 310 may
have the capability of handling DRM protected content including without
limitation movies, videos, audios, games, audio books, ebooks, applications, etc.
[0054] The stream controller 312 may enable creation of one or more content
streams of the content to be played on the device 01 or rendered to one or more
local devices (90, 91, or 92 of FIG. 2). The stream controller 312 may request
content from the access point (51, 52, 53 or 202) via the network 80 or use the
content stored in the device Dl. In an embodiment with the content being
encrypted, the stream controller 312 may integrate with the content decryption
I •'
I
module 308 to obtain decrypted content before creating one or more content
streams to be sent to the media renderer 3l4. Further, the stream controller 312
may generate a single content stream for each content to be rendered on a local
device. Alternately, the stream controller 312 may generate multiple content
streams for each content to be rendered on a local device. The stream controller
312 may support streaming protocol!i, for exa1111Jie, HLS (Http Live Streaming),
RTSP(Real Time Streaming Protocol), H.264, VP8, FLV (Flash Video), WebM, ASF
(Advanced System Format), !SMA (Inhibit Sense Multiple Access), MP4, etc. for
content sourced from the network 80.
[0055] T~e media renderer 314 in the media player 310 may render one or more
content streams created by the stream controller 312 to one or more local
devices (90, 91, or 92 of FIG. 2). The media renderer 314 may include an
interface displayed on the screen of the device D1 containing a content display
area along with one or more buttons for manipulating the content. FIG. 4
illustrates an exemplary depiction of buttons provided on the interface 402 of
the media renderer 314. The buttons include without limitation a pause button
404, a play forward button 406, a rewind button 408 and a casting button 410.
Depending upon input received via one of buttons, the media renderer 314 may
interact with the stream controller 312 to send modified streams. For example, if
input is received via the rewind button 408 (for example, by pressing or touching
the button), the media renderer 314 would communicate to the stream
controller 312 to resend the content stream from a previous requested timeline.
[0056] Referring again to FIG. 3, the cast controller 316 when invoked may first
scan a local network to determine if one or more local devices {90, 91, or 92 of
FIG. 2) are in vicinity. The cast controller 316 may handshake with the detected
local devices to establish a connection between them. The cast controller 316
may have the intelligence to determine the protocol supported by the local
device to which the content is to be rendered and accordingly, direct the media
renderer 314 to use the same protocol while streaming the content. The
17
.. '
' t .• ~-r
\-:
i
I.
I
protocols supported by the cast controller 316 include without limitation
Miracast, UPnP (Universal Plug and Play}, DLNS (Digital Living Network Alliance),
etc.
[0057] The content rendered by device D1 may be downloaded or streamed to
the local devices without the requirement of Internet. The device to device
streaming/downloading of content may be done in local proximity based local
area data network connections.
[0058] FIG. SA illustrates an exemplary flowchart depicting the steps for practicing
the teachings of the present invention relating to encrypted content. At step 502A,
the device D1 may request for content from the access point (51, 52, 53 or 202} to
which it is connected. Details of this step are provided in FIG. 6. At step 504A, the
download module of device D1 may receive the requested content from the access
point (51, 52, 53 or 202}. The requested content may be encrypted using one or
more of DRM, 128 bit encryption, etc. The download module may store the content
in the memory of device D1 and optionally, communicate with the catalogue
module of the downloaded content. The catalogue module may update the
catalogue of content present in the memory.
[0059] At step 506A, the media player may fetch the content from the memory (for
example, an external memory) and communicate with the content decryption
module to decrypt the content. The content decryption module may use the key
provided by the key acquisition module to decrypt the content. Before decrypting
the content, the decryption module may determine whether the content can be
played as per the key. In an embodiment, this determination may be conducted
locally on the device Dl without the need of verification from the licensing server.
For example, if the key permits that the video can be played 10 times and if the
video has already been played 9 times on the device Dl, the decryption module
decrypts the content.
18
[0060] At step 508A, the media player may direct the stream controller to create
or or more streams for the content to be played. The stream controller may use
the decrypted content and if views of content are available, it may create one or
more streams for the content to be rendered at step SlOA. In case, there are no
views available for the decrypted content, the media player may ask the viewer
to buy content at step 512A.
[0061] Once the streams are created, the streams are played on the device Dl or
rendered to one or more local devices at step 514A.
[0062] FIG. SB illustrates a flowchart for practicing the teachings of the present
invention relating to unencrypted content in accordance with an embodiment of
the present invention. At step 5028, the device Dl may request for content from
the access point to which it is connected. At step 5048, the download module of
device Dl may receive the requested content from the access point and store in the
memory of the device. The content may be unencrypted content.
[0063] At step 5068, the media player may fetch the content from the memory. At
step 5088, the media player may direct the stream controller to create streams
for the content to be played. Once the streams are created, they are played on
the device or rendered to one or more local devices at step SlOB.
[0064] FIG. SC illustrates an exemplary flowchart for playing content on the
communication device as per the teachings of the present invention. At step 502C,
the media player fetches content stored in its local storage. In an embodiment, the
content stored in the local storage is not downloaded either from the content
server or the hub storage or the local cache of the access point. At step 504C, the
media player may direct the stream controller to create streams of the content
to be played. The stream controller may create one or more streams for the
content which may be played on the device or streamed to one or more local
devices at step 506C.
19
[0065] FIG. 6 is a detailed depiction of step 502A of FIG. SA in accordance with an
embodiment of the present invention. It depicts how a request for download of
content from a communication device is received by the communication hub
having access points with caching capability. At step 602, the communication device
may request content from a nearby access point. The communication device may
be connected to the access point via short range communication networks like
Bluetooth, WiFi, etc. At step 604, the CDS may receive the request via the access
point. At step 606, the CDS may check if the requested content is present in the
local storage of the access point. If the content is absent in the local storage of the
access point, the CDS may check for the content in neighboring local storages of
corresponding access points or hub storage at step 608. If the content is available in
either of the two, the CDS may proceed to step 612. However, if the content is still
not found in either of these, the CDS may send the request to the content server
for the requested content at step 610.
[0066] At step 612, the CDS may check if the content is encrypted or not. If the
requested content stored in the local storage or neighboring local storage or the
hub storage or the content server is encrypted, then it may be transferred to the
communication device via the access point at step 614. However, if the content is
not encrypted, the content may be first encrypt the content using a key i.e. a
security wrap is provided around the content and the encrypted content is
transmitted to the communication device at step 614.
[0067] FIG. 7 is a flow diagram showing casting functionality of the media player in
accordance with an embodiment of the present invention. The casting option in the
media player allows the user to cast the content from the communication device to
one or more nearby local devices. At step 702, the cast controller may be enabled
by the user via for example, pressing or touching the casting button. The cast
controller at step 704 may scan for nearby one or more local devices via for
example, a Wi-Fi network. The cast controller may make a list of the local devices
detected during the scan and prompt the user to initiate connection with one or
20
more such local devices. For example, the connection may be a Wi-Fi peer-to-peer
(P2P) network connection. Therefore, it does not require any internet connection
for rendering content. In an embodiment, the communication device may connect
with three local devices simultaneously for content streaming.
[0068] At step 706, the cast controller may identify the protocol supported by the
local device for content transfer and accordingly, direct the media renderer to use
the protocol for content streaming. At step 708, the media renderer renders the
decrypted content to the local device using the protocol supported by the local
device. For example, if the content is to be streamed to an Apple television, the cast
controller may specify the corresponding supported protocol to be used by the
media renderer for rendering the content to Apple television. The cast controller
may maintain a look-up table for determining the protocol supported by different
devices.
[0069] In the event the cast controller receives a request from a local device, for
example, to rewind the content, the cast controller may communicate with the
media renderer to send the one or more streams to the requesting local device
from the previous requested timeline in real-time. Given that the content is
decrypted and the streams are ready with the stream controller, the media
player does not freeze even when the requesting local device seeks different
timelines of the content. Alternately, every time content from a previous
requested timeline is sought, decryption of the content may be fired again. Thus,
decryption may happen at every timeline of the content on the fly so the video
may be played without any jitter.
[0070] FIG. 8 illustrates an exemplary flowchart for rendering content from a
communication device, say Dl to a local device, say 90. At step 802, a user of the
local device 90 may access the content rendering device in its device. The user
may access the content list (namely, the catalogue) as explained above. It may be
noted that the user may be offline and still access the content list. At step 804,
·"!!: .,. .._ ,..... .--. •
...i.; ;'- .. ~-c.;-
21
the user may be given an option to select the content source, for example, local
or remote. Local content source may refer to content present on the device
while remote content source may refer to content on the communication device.
Upon selecting remote content source, namely Dl, the device 90 may be
connected to Dl at step 806. In this step, first the device 90 may check for an
available WiFi group and then provide the user an option to connect to the WiFi
group.
[0071] At step 808, once the device 90 is connected to Dl, a list of available
content from the device Dl may be displayed on 90. The cast controller on Dl
may determine the protocol supported by 90 for video rendering. On selecting
the video to play, the video may be rendered from device Dl to device 90 using
the protocol supported by device 90. The video may be rendered till a media
stream session between both the devices is established. The session may
discontinue when either of the two devices stop the connection.
[0072] With the above embodiments in mind, it should be understood that thf?
embodiments might employ various computer-implemented operations
involving data stored in computer systems. The embodiments also relate to a
device or an apparatus for performing these operations. The apparatus can .be
'
specially constructed for the required purpose, or the apparatus can be a
general-purpose computer selectively activated or configured by a computer
program stored in the computer. In particular, various general-purpose machines
can be used with computer programs written in accordance with the teachings
herein, or it may be more convenient to construct a more specialized apparatus
to perform the required operations.
(0073] The embodiments can also be embodied as computer readable code on a
computer readable medium. The computer readable medium is any data storage
device that can store data, which can be thereafter read by a computer system.
Examples of the computer readable medium include solid state drives, hard
22
I. i:f(
I· I
drives, SD cards, network attached storage (NAS), read-only memory, randomaccess
memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical
and non-optical data storage devices. The computer readable medium can also
be distributed over a network coupled computer system so that the computer
readable code is stored and executed in a distributed fashion. Embodiments
described herein may be practiced with various comrwter system configuratiu11::.
including hand-held devices, tablets, microprocessor systems, microprocessorbased
or programmable consumer electronics, minicomputers, mainframe
computers and the like. The embodiments can also be practiced in distributed
computing environments where tasks are performed by remote processing
devices that are linked through a wire-based or wireless network.
[0074] The foregoing description, for the purpose of explanation, has been
described with reference to specific embodiments. However, the illustrative
discussions above are not intended to be exhaustive or to limit the invention to
the precise forms disclosed. Many modifications and variations are possible in
view of the above teachings. The embodiments were chosen and described in
order to best explain the principles of the embodiments and its practical
applications, to thereby enable others skilled in the art to best utilize the
embodiments and various modifications as may be suited to the particular. use
contemplated. Also, that various presently unforeseen or unanticipated
alternatives, modifications, variations or improvements therein may be
subsequently made by those skilled in the art which are also intended to be
encompassed by the following claims.

Claims:
1. A content rendering device in a communication device, the content rendering
device comprising:
a. a stream controller for generntine one or more streams or a content;
b. a cast controller for deciphering a protocol support by one or more local
devices, the protocol to be used for rendering the one or more streams of
the content; and
c. a media re·nderer for rendering the one or more streams of the content to,
the one or more local devices using the deciphered protocol via a shortrange
communication network.
2. The device as claimed in claim 1 further comprising a content decryption
module to decrypt the content for the stream controller.
3. The device as claimed in claim 1 further comprising a catalogue module
containing a catalogue of one or more content present in the communication
device.·
4. The device as claimed in claim 1 wherein the content comprises one of an
encrypted content or unencrypted content.
5. The device as claimed in claim 1 wherein the content comprises one or more
of a movie, a video, an audio, a game, an audio book, an ebook, and an
application.
6. The device as claimed in claim 1 wherein the stream controller accesses the
content via one or more of a device memory, a local cache of an access point or a
content server.
7. The device as claimed in claim 1 wherein the cast controller scans the one or
more local devices in vicinity via the short-range communication network.
17-: G··G-
24
8. The device as claimed in claim 1 wherein the media renderer receives an input
from the one or more local devices for one or more of rewinding the content,
pausing the content, fastforwarding the content, and casting the content.
9. The device as claimed in claim 1 wherein the stream mntroller generales the
one or more streams of content from a previous requested timeline in real-time
on receiving a rewinding request to provide a jitter-free experience.
10. The device as claimed in claim 1 wherein the media renderer rendering the
one or more streams comprises streaming the one or more streams and
facilitating download of the one or more streams of the content on the one or
more local devices.
11. A method for rendering a content from a communication device to one or
more local devices, the method comprising:
a. generating one or more streams of the content;
b. deciphering a protocol support by the one or more local devices, the
protocol to be used for rendering the one or more streams of the content;
and
c. rendering the one or more streams of the content to the one or more local
devices using the deciphered protocol via a short-range communication
network.
12. The method for rendering as claimed in claim 11 further comprising
decrypting the content prior to generating the one or more streams.
13. The method for rendering as claimed in claim 11 further comprising scanning
the one or more local devices in vicinity via the short-range communication
network.
14. The method for rendering as claimed in claim 11 wherein the content
comprises one of an encrypted content or unencrypted content.
25
·.
15. The method for rendering as claimed in claim 11 wherein the content
comprises one or more of a movie, a video, an audio, a game, an audio book, an
ebook, and an application.
16. The method for rendering as claimed in claim 11 wherein the rendering the
one or more streams comprises streaming the one or more stream~ and
facilitating download of the one or more streams of content on the one or more
local devices.
17. The method for rendering as claimed in claim 11 further comprising
performing one or more actions including rewinding the content, pausing the
content, fastforwarding the content, and casting the content upon receiving a
request from the one or more local devices.
18. The method for rendering as claimed in claim 11 further comprising
generating on'e or more streams of the content from a previous requested
timeline in real-time upon receiving a rewinding request to provide a jitter-free
experience.

Documents

Application Documents

# Name Date
1 3827-DEL-2014-FORM 3 [21-02-2018(online)].pdf 2018-02-21
1 Provisional Specification-Final.pdf 2014-12-23
2 3827-DEL-2014-FORM 3 [09-08-2017(online)].pdf 2017-08-09
2 Form 5.pdf 2014-12-23
3 Form 3.pdf 2014-12-23
3 Form 3 [15-02-2017(online)].pdf 2017-02-15
4 Form 3 [04-11-2016(online)].pdf 2016-11-04
4 3827-del-2014-GPA-(06-08-2015).pdf 2015-08-06
5 3827-del-2014-Form-1-(06-08-2015).pdf 2015-08-06
5 3827-del-2014-Correspondence Others-(11-07-2016).pdf 2016-07-11
6 3827-del-2014-Form-1-(11-07-2016).pdf 2016-07-11
6 3827-del-2014-Correspodence Others-(06-08-2015).pdf 2015-08-06
7 OTHERS [21-12-2015(online)].pdf 2015-12-21
7 3827-del-2014-GPA-(11-07-2016).pdf 2016-07-11
8 OTHERS [28-06-2016(online)].pdf 2016-06-28
8 Marked Copy [21-12-2015(online)].pdf 2015-12-21
9 3827-del-2014-Form-2-(31-12-2015).pdf 2015-12-31
9 OnlinePostDating.pdf 2015-12-31
10 3827-del-2014-Form-5-(31-12-2015).pdf 2015-12-31
10 3827-del-2014-GPA-(31-12-2015).pdf 2015-12-31
11 3827-del-2014-Form-5-(31-12-2015).pdf 2015-12-31
11 3827-del-2014-GPA-(31-12-2015).pdf 2015-12-31
12 3827-del-2014-Form-2-(31-12-2015).pdf 2015-12-31
12 OnlinePostDating.pdf 2015-12-31
13 Marked Copy [21-12-2015(online)].pdf 2015-12-21
13 OTHERS [28-06-2016(online)].pdf 2016-06-28
14 3827-del-2014-GPA-(11-07-2016).pdf 2016-07-11
14 OTHERS [21-12-2015(online)].pdf 2015-12-21
15 3827-del-2014-Correspodence Others-(06-08-2015).pdf 2015-08-06
15 3827-del-2014-Form-1-(11-07-2016).pdf 2016-07-11
16 3827-del-2014-Correspondence Others-(11-07-2016).pdf 2016-07-11
16 3827-del-2014-Form-1-(06-08-2015).pdf 2015-08-06
17 3827-del-2014-GPA-(06-08-2015).pdf 2015-08-06
17 Form 3 [04-11-2016(online)].pdf 2016-11-04
18 Form 3.pdf 2014-12-23
18 Form 3 [15-02-2017(online)].pdf 2017-02-15
19 Form 5.pdf 2014-12-23
19 3827-DEL-2014-FORM 3 [09-08-2017(online)].pdf 2017-08-09
20 Provisional Specification-Final.pdf 2014-12-23
20 3827-DEL-2014-FORM 3 [21-02-2018(online)].pdf 2018-02-21