CROSS-REFERENCE TO RELATED APPLICATIONSThe present application is a continuation of U.S. application Ser. No. 13/045,646. The present application claims priority to US provisional patent application Ser. No. 61/421,681, filed Dec. 10, 2010, and owned in common herewith. Both of these applications are incorporated herein by reference.
TECHNICAL FIELDThe present disclosure relates to mobile devices and, in particular, to the use of mobile devices to interact with video receivers.
BACKGROUNDMobile devices have become ubiquitous, with most North American consumers having at least one mobile device. The trend in mobile devices is towards more advanced capable devices such as handheld mobile smartphones, netbooks and, more recently, tablet devices. Tablets in particular are lightweight and provide high resolution large touchscreen capabilities to enable large interactive graphical user interfaces.
Broadcast video, like digital television or IPTV, involves an in-home video receiver that tunes one of the channels broadcast over the cable or satellite network and outputs the tuned channel to a display device, like a TV. Such video receivers are usually controlled and operated by a handheld remote control device. The user interface for operating and controlling the video receiver tends to be rendered on the display device, like the TV. For example, the user interface may include displaying a title bar showing the channel number and program title, an electronic program guide, etc. Typically, the display of this user interface at least partly obscures the display of the program on the tuned channel. In some cases, the video program is rendered in a spatially compressed portion of the screen, such as in a window within the electronic program guide, to facilitate navigation of the electronic program guide while viewing the tuned channel.
It would be advantageous to leverage the features of mobile devices to control and facilitate the viewing of television programs.
BRIEF DESCRIPTION OF THE DRAWINGSEmbodiments will now be described, by way of example only, with reference to the attached Figures, wherein:
FIG. 1 illustrates an example system for controlling video programs;
FIG. 2 is a block diagram showing an example of a mobile device;
FIG. 3 is a block diagram showing an example of a gateway server;
FIG. 4 is an example signalling diagram for pairing a mobile device and a video receiver;
FIG. 5 graphically shows an example embodiment of a graphical user interface for remote control of a video receiver via a mobile device;
FIG. 6 shows a detailed portion of the graphical user interface ofFIG. 5;
FIG. 7 shows an example signalling diagram for controlling a video receiver using a mobile device;
FIG. 8 shows an example signalling diagram for retrieving related content; and
FIG. 9 shows an example signalling diagram for streaming video to a mobile device.
Like reference numerals are used throughout the Figures to denote similar elements and features.
DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTSThe present application describes and discloses a system, device and methods for pairing a mobile device and a video receiver. The mobile device includes a display that renders a graphical user interface (GUI) through which the user may control the video receiver, in the nature of a remote control. The GUI may also provide an interactive program guide (IPG), such as a display of available broadcast or on-demand programming, the channels available, and start times and duration. The IPG may further show images, animations or other visual indicia related to the program on each channel. In some cases the IPG may incorporate interactive applications associated with a selected program, such as games or online ordering applications. In some cases, such applications may be developed using the OpenCable Application Platform (OCAP) or other programming protocols.
In some embodiments, the mobile device is configured to receive an input selecting one of the programs displayed in the IPG. If the program is currently being broadcast the mobile device sends a message to the video receiver instructing the video receiver to tune the corresponding channel for the selected program. If the program is not current being broadcast, the mobile device may offer to instruct the video receiver to tune that channel at the start time for the program, to record the program for later viewing, to display additional information regarding the program, or to tune the channel immediately.
In some embodiments, the mobile device is configured to receive another input selecting one of the programs displayed in the IPG and, in response, to locate and display related content. The related content may include multimedia content, including pre-recorded videos, chat networks, biographical information, or any other media that is related in some manner to the selected program and/or its actors, director, subject-matter, or genre.
In accordance with one aspect, the present application describes a method of obtaining related content. The method includes displaying an electronic program guide including a plurality of tiles, each tile associated with a program; receiving an input command in association with one of the plurality of tiles; determining that the input command is a related content request and, in response, sending a related content request message to a gateway server over a wireless network connection, the related content request message including information identifying said one of the plurality of programs; and receiving and displaying related media content from the gateway server in reply to the related content request message, wherein the related media content is associated with said one of the plurality of programs.
In accordance with another aspect, the present application describes a method that includes displaying an electronic program grid on a display of a touchscreen device, the electronic program grid including a plurality of television-show interface elements, each television-show interface element being associated with a television show being broadcast on a distribution network, each interface element being associated with at least two input commands;
receiving an input command through one of the television-show interface elements on the touchscreen; determining whether the input command is of a first input command type and, if so, sending a command to a set-top box associated with a television to tune the television show associated with said one of the television-show interface elements; and determining whether the input command is of a second input command type and, if so, displaying related content on the touchscreen device, wherein the related content is associated with said one of the television-show interface elements.
In accordance with a further aspect, the present application describes a method of controlling a video receiver using a handheld device, the handheld device having a display screen. The method includes displaying on the display screen an electronic program guide including a plurality of tiles, each tile associated with a program; receiving an input command in association with one of the plurality of tiles; and determining that the input command is a channel change request and, in response, sending a channel change request message to a gateway server over a wireless network connection, whereby the gateway server is configured to send a channel change command to the video receiver over a private broadcast digital television network in response to the channel change request message.
In accordance with yet a further aspect, the present application describes a mobile device comprising a touchscreen, a processor, memory, a communications subsystem, and a remote control application executable by the processor. The remote control application, when executed, configures the processor to display an electronic program guide including a plurality of tiles, each tile associated with a program; receive an input command in association with one of the plurality of tiles; determine that the input command is a related content request and, in response, send a related content request message to a gateway server over a wireless network connection, the related content request message including information identifying said one of the plurality of programs; and receive and display related media content from the gateway server in reply to the related content request message, wherein the related media content is associated with said one of the plurality of programs.
In accordance with another aspect, the present application describes a mobile device comprising a touchscreen, a processor, memory, a communications subsystem, and a remote control application executable by the processor. The remote control application, when executed, configures the processor to display an electronic program grid on a display of a touchscreen device, the electronic program grid including a plurality of television-show interface elements, each television-show interface element being associated with a television show being broadcast on a distribution network, each interface element being associated with at least two input commands; receive an input command through one of the television-show interface elements on the touchscreen; determine whether the input command is of a first input command type and, if so, send a command to a set-top box associated with a television to tune the television show associated with said one of the television-show interface elements; and determine whether the input command is of a second input command type and, if so, display related content on the touchscreen device, wherein the related content is associated with said one of the television-show interface elements.
Reference is now made toFIG. 1, which diagrammatically shows asystem10 for controlling video programming. Thesystem10 includes avideo receiver12 connected to anoperator network14. Thevideo receiver12 may include a set-top box, a personal video recorder (PVR), or other such device. Thevideo receiver12 receives video signals from theoperator network14. The signals may include broadcast signals, which may include a plurality of frequency multiplexed channels. In some cases, the broadcast signals may include two or more channels time multiplexed. Theoperator network14 may include, for example, a cable television network (CATV), a satellite television network such as direct broadcast satellite (DBS) systems, or a telephone network using digital subscriber line (DSL) technology. Theoperator network14 may be configured to provide the broadcast signals over IPTV. In many embodiments, the IPTV service may be configured to provide multicast programming, such as pay-per-view (PPV), and video-on-demand (VOD) programming. In some embodiments, theoperator network14 provides both broadcast programming in the form of multiplexed broadcast channels and multicast and/or VOD programming.
Thevideo receiver12 includes atuner18, which may be broadly understood to include both conventional tuning devices for selecting a channel in a frequency multiplexed broadcast environment and an IP interface for subscribing to a multicast stream or requesting and receiving a VOD program. Thetuner18 outputs video for a selected channel or program to adisplay device20. The display device may include a television, a video monitor, a computer, or other visual display device. In some instances, thedisplay device20 andvideo receiver12 are an integrated unit. In some cases, thevideo receiver12 is integrated with other video system, such as a video disc player (e.g. DVD, Blu-ray, etc.).
Thevideo receiver12 may be controlled using aremote control22. Theremote control22 includes a number of buttons or other input devices that a user may activate to send commands to thevideo receiver12. Theremote control22 typically transmits commands using infrared signals. Thevideo receiver12 includes aninfrared sensor24 for receiving infrared signals from theremote control22.
Thevideo receiver12 has assigned a public orprivate IP address26. One ormore operator servers16 may send and receive messages with thevideo receiver12 over theoperator network14. Theoperator server16 may be configured to provide thevideo receiver12 with VOD programs, an electronic program guide (EPG), program metadata, and other such information. In some instances, theoperator server16 may be configured to receive request messages from thevideo receiver12 for a VOD or PPV program, login or passcode information, and to process billing associated with the VOD or PPV program.
In some situations, thevideo receiver12 may be equipped with a shortrange communication subsystem28, such as Bluetooth™ or WiFi (IEEE 802.11) functionality, to enable short range communications with other computing devices.
Referring still toFIG. 1, in accordance with one aspect of the present application thesystem10 includes amobile device50. Themobile device50 may, in some embodiments, include a handheld mobile smartphone, a laptop, a netbook, or a tablet. In the example embodiments described below, themobile device50 may be referred to and described as a tablet device, however the present application is not limited to tablet devices and may include any mobile device configured to have the functionality described herein.
Themobile device50 includes awireless communication subsystem52 for sending and receiving communications with awireless network32. Thewireless network32 may include wireless wide area networks (WWAN), including GSM, GPRS, EDGE/3GPP, UMTS, EvDO CDMA 2000, HSDPA, LTE (E-UTRA), WiMAX (802.16m), Mobile WiMAX (802.16e), or any other such mobile network protocol. Thewireless network32 may include wireless local area networks (WLAN), such as those conforming to one or more of the IEEE 802.11x standards (sometimes referred to as WiFi). Other wireless network protocols may also be used by thewireless network32.
Thewireless network32 connects to apublic network30, such as the Internet.
Agateway server60 is connected to both thepublic network30 and theoperator network14. Thegateway server60 is configured to communicate with thevideo receiver12 via theoperator network14 and with themobile device50 via thepublic network30 andwireless network32. In some instances, thewireless network32 may include an access point connected via cable modem or DSL to theoperator network14 and through a relay therein to thepublic network30; however, for ease of illustration, thewireless network32 is illustrated as being separate from theoperator network14 in this embodiment. As will be described in greater detail below, thegateway server60 stores an association or pairing between themobile device50 and thevideo receiver12.
Themobile device50 includes aremote control application54. Theremote control application54 provides a graphical user interface (GUI) on themobile device50 through which thevideo receiver12 may be controlled. In addition, the GUI provides additional feature-rich content associated with the programs available at thevideo receiver12. For example, the GUI may provide an interactive program guide (IPG) through which available programming may be browsed, selected, and searched. In some embodiments, the GUI may adapt the layout and content of the IPG to viewer preferences, usage patterns, content popularity, etc. The GUI enables channel change through selection of an icon, tile or other graphical element associated with a program or channel. In response, themobile device50 is configured to send a channel change request message to thegateway server60 which then relays the channel change request message to the pairedvideo receiver12. Theremote control application54 further enables integration of content from multiple providers; for example, it may enable related content search and display. In the latter example, a request for related content associated with one of programs may be received through the GUI. Themobile device50 sends a related content message to thegateway server60, which then formats and sends a request to one or more content servers in thepublic network30. The content servers respond with search results, which thegateway server60 then relays to themobile device50. It will be appreciated that thegateway server60 may act as a proxy server for themobile device50 in receiving and sending related content requests.
Reference is now made toFIG. 2, which shows, in block diagram form, an example embodiment of themobile device50. Themobile device50 includes at least one processor100 (such as a microprocessor) which controls the overall operation of themobile device50 and the execution of computer-readable instructions. Theprocessor100 interacts with device subsystems such as a thewireless communication subsystem52 for exchanging radio frequency signals with thewireless network32 to perform communication functions. Theprocessor100 interacts with additional device subsystems including adisplay116 such as a liquid crystal display (LCD) screen, andmemory102. Thedisplay116 may be a touchscreen display with a touchsensitive input surface118.
Themobile device50 may, in some embodiments, also include aspeaker120, one ormore input devices122 including buttons, hotkeys, a trackball, a trackpad, a keyboard or other such input devices. In some embodiments, themobile device50 may include one or more accelerometers, gyroscopes or other gravitational or inertial sensors through which theprocessor100 may be configured to receive movement-based inputs, such as gesture-based commands. In some cases, themobile device50 may includeauxiliary input ports124, such as HDMI ports, USB ports, or other data communication ports.
Themobile device50 may include one or more shortrange communication subsystems126, such as a Bluetooth™ module, an infrared transmitter and/or sensor, etc.
Theprocessor100 operates under stored program control and executes computer-readable instructions stored inmemory102. Thememory102 may storeoperating system software104 andsoftware applications106, which may include, for example, a web browser and a messaging application.
Thememory102 stores theremote control application54. In some embodiments theremote control application54 may include achat component108, asearch component110, and a relatedcontent search component112. Although, for ease of illustration, these are described as components they may be integrated within theremote control application54 and may not be readily identifiable as separate components of theremote control application54 in some embodiments. The components may also be standalone components or part of another application, in some embodiments. For example, thechat component108 may be implemented as a standalone or separate component or module and may be integrated within the GUI of theremote control application54 using suitable APIs.
Thememory102 furtherstores IPG data114. TheIPG data114 may be updated, refreshed and replaced from time to time based upon the current time and the timespan of IPG data theremote control application54 is configured to maintain available. In one embodiment, theIPG data114 is obtained by themobile device50 from thegateway server60, which in turn obtains IPG data from theoperator server16. Thegateway server60 may maintain full IPG data and may send the mobile device50 a subset of the data, such as three hours of IPG data from the current time onwards. The subset may include a subset of channels based upon a current channel to which thevideo receiver12 is tuned. As a user browses or searches the IPG through the GUI, further requests for IPG data are sent from themobile device50 to thegateway server60, and thegateway server60 provides theadditional IPG data114 for scrolling, panning or otherwise navigating the IPG on screen.
Reference is now made toFIG. 3, which shows, in simplified block diagram, an example embodiment of thegateway server60. Thegateway server60 may include one ormore processors62 andmemory64. Thememory64 stores IPG data for responding to requests from mobile devices for additional IPG data. Thegateway server60 further includes aprivate network interface63 for exchanging communications with the operator network14 (FIG. 1), and apublic network interface61 for exchanging communications with the public network30 (FIG. 1).
Thememory64 in thegateway server60 further includes pairinginformation68. Thepairing information68 associates a mobile device with a video receiver. In this manner, messages received from the mobile device, such as a channel change request, may be routed appropriately to the associated video receiver through the operator network. The association may include an identifier for the mobile device and an identifier for the video receiver. For example, the association may include the public IP address of the mobile device and the private IP address of the video receiver. The association may also or alternatively include other higher layer unique address information for the mobile device and the video receiver, such as a SIP URI or other identifier.
FIG. 4 shows an example signalling diagram for establishing an association between amobile device50 and a video receiver12 (FIG. 1). In this embodiment, themobile device50 initiates creation of the association. This may occur, for example, when a mobile device user decides that he or she would like to control a video receiver, such as a set top box, using his or her mobile device. Using the remote control application54 (FIG. 2), the user requests that themobile device50 be paired with the video receiver. As shown in the signalling diagram, themobile device50 sends apairing request message1020 to thegateway server60.
Thepairing request message1020, and all other messages in the signalling diagram, may be formatted in accordance with any protocol used for communications between themobile device50 and thegateway server60. For example, in one embodiment Java Script Object Notation (JSON) may be used for messaging communications. In other embodiments, other protocols may be used.
Thepairing request message1020 includes at least an identifier for themobile device50. The identifier may include a mobile device address, such as an IP address, a phone number, a SIM number, a SIP URI, or other unique identifier. More than one identifier may be present in thepairing request message1020.
In some cases, thepairing request message1020 may include information identifying the video receiver to which themobile device50 wished to be associated. The information identifying the video receiver may include an IP address or serial no. In some cases, the information identifying the video receiver may only be associated with the receiver, such as a telephone number associated with the premises, network operator billing account number, or other such identifier.
In some embodiments, thegateway server60 may send aprompt message1040 soliciting identification or login information, so as to authenticate themobile device50. Themobile device50 may respond with login or identifyinginformation1060 which thegateway server60 may then authenticate. For example, the video receiver or a billing account associated with the video receiver may have a password, passcode, or other authentication data stored at or accessible to thegateway server60. In short, through this authentication thegateway server60 may ensure that themobile device50 user is authorized to control the video receiver by confirming that the user can provide the authentication data associated with the video receiver. Otherwise, third parties could assume control over another person's video receiver without authorization.
In some embodiments, the identification and login information provided inmessage1060 may be provided in thepairing request message102, or later in the signalling sequence, such as after selection of a particular video receiver, as will be described below.
In some embodiments, thegateway server60 may not require login or identifying information in circumstances where there is an apparent authorization. For example, if themobile device50 provides the video receiver IP address, serial number, or international mobile equipment identity (IMEI) in thepairing request message1020, that may indicate a sufficient relationship and authority to pair themobile device50 to the receiver.
Referring still toFIG. 4, having received thepairing request message102 and identification or login information (if any) then thegateway server60 identifies the video receiver(s) to which the mobile device may be paired inoperation1080. In some instance, a single video receiver may be identified. For example if thepairing request message1020 includes an IP address or receiver serial no., then a unique video receiver may be identified. Similarly, if thepairing request message1020 provides a phone number or billing account number with which a single video receiver is associated, then thegateway server60 identifies that single video receiver. In other situations, more than one video receiver may be identified. For example, a phone number or billing account number may be associated with premises that have two or more video receivers. Accordingly, thegateway server60 identifies all such video receivers that may be paired to themobile device50.
Inmessage1100, thegateway server60 may send themobile device50 the identities of the one or more video receivers identified. Themobile device50 may be configured to present, graphically or otherwise, the video receivers and to receive a selection of one of the receivers. The GUI on themobile device50 may request confirmation of the intention to pair themobile device50 to the selected video receiver. In some embodiments,message1100 may include model, make, or type of receiver, and the GUI may display icons corresponding to the model, make or type of receiver. In some cases, individual receivers may be named or otherwise identified, such as “Family Room Set Top Box”. Names may have been assigned to the receivers upon installation and configuration, for example using the remote control and a receiver interface screen. Inmessage1120, themobile device50 sends the identity of the selected video receiver to thegateway server60. Thegateway server60 then stores the association between the selected video receiver and themobile device50, and sends aconfirmation message1140 to themobile device50.
After creation of the association themobile device50 and, in particular, theremote control application54, is capable of controlling the selected video receiver by sending command messages to thegateway server60, which then relays those commands to the video receiver based upon the stored association.
It will be appreciated that aspects of the pairing process may be varied from the example described above without materially affecting the creation of an association at thegateway server60 between themobile device50 and a selected video receiver.
Reference is now made toFIGS. 5 and 6, which show aspects of anexample GUI200 for the remote control application54 (FIG. 1). In this example illustration, themobile device50 is presumed to be a touchscreen tablet device, however the present application is not necessarily limited to touchscreen devices in particular, or to tablet devices.FIG. 5 illustrates theGUI200 on the display screen of atablet device202.
TheGUI200 includes aheader bar204 in this example. Theheader bar204 providesnavigational icons206 and, in this example,category tabs208. The remainder of theGUI200 displays IPG program information in a tile format. Eachindividual tile210 indicates a program on a particular channel. The location and length of eachtile210 may represent the start time and duration of the program in some embodiments. In the present embodiment, theGUI200 may be navigated using touchscreen movements such as swipes to left or right, up or down, to scroll through the channels and time slots of the IPG. Thecategory tabs208 in theheader bar204 may be selected to cause display of a subset of the channels or programs based upon the category. For example, one of the categories may be for “sports”, in which case selection of thatcategory tab208 would result in display of only the programs and channels that relate to sports content. The GUI may also include an overlay sidebar (not shown) for displaying shortcuts for particular channels or operations.
In some embodiments, other gestures or movements on the touchscreen may cause other operations. For example, tapping or otherwise selecting one of the tiles may initiate transmission of a channel change message from themobile device50 to thevideo receiver12. In some cases, pinching or spreading movements may cause zoom operations to occur. In some example embodiments, pinching or spreading or other such touchscreen gesture movements in connection with a tile may initiate live streaming of the program to themobile device50.
FIG. 6 graphically illustrates anexample tile210. Theexample tile210 includes achannel number212 andstation identifier214. Thetile210 further includes thetitle216 of the program andtime data215 related to the program. Thetime data215 may include a start time, duration, and other such data.Details218 regarding the program, such as actors, plot synopsis, overview information, episode details, etc., may also be provided on thetile210.
Thetile210 may also include agraphic image220. Thegraphic image220 is related to the program and may include a logo or photo related to the program. In some instances thegraphic image220 may include an animation, such as an animated GIF or other such video, related to the program. In one embodiment, thegraphic image220 may appear as a still image (i.e. PNG, GIF, JPEG, BMP, or other image format) in all thetiles210, but may be selectable in theGUI200. When thegraphic image220 is selected, themobile device50 may be configured to display a short preview video or animated clip in place of thegraphic image220. In some instances, the preview video or animated clip may be shown in a window or display tiled on top of theGUI200. In some cases, the preview video or animated clip may be a small video shown within thegraphic image220 area in thetile210. Selection of thegraphic image220 to initiate display of the video or clip may include themobile device50 sending a video request message to thegateway server60 and receiving the video data in response, whether streamed or downloaded.
TheGUI200 operates as an IPG and a remote control for the video receiver with which the mobile device is associated. Accordingly, selection of one of thetiles210 on theGUI200 causes theremote control application54 to generate a channel change request message to thegateway server60, which relays the message to the video receiver, which then tunes the requested channel. In one example embodiment, theGUI200 is configured to operate as a “one-click” remote control, meaning that a single tap on one of thetiles210 causes a channel change to that program or channel. In some embodiments, theGUI200 may be configured to recognize another type of selection of one of tiles, through a different touchscreen movement, like a double-tap versus a single-tap, or other gestures, that results in a request for related content. Requests for related content are described in greater detail below.
In one embodiment, theGUI200 may be configured to modify the display based upon information from thegateway server60 regarding viewership statistics. For example, thegateway server60 may provide themobile device50 with data regarding current viewership for channels. The GUI may indicate the relative popularity of currently live channels some manner. For example, in one embodiment theGUI200 may display the channels in order of increasing or decreasing popularity. In one example theGUI200 may offer a button or other input which, when selected, displays a list of the current most popular channels. In another example, theGUI200 may be configured to only highlight channels that have above a present threshold of viewership as a way of highlighting live currently popular programs or events. In yet another example, the colours of the tiles associated with the programs may be modified based upon their relative popularity. For example, the top five programs with the most current viewers may be highlighted or displayed in different colours so as to draw attention to them. In yet a further example, viewership statistics may be displayed on the tiles for current live programs. The viewership statistics may include a total number of viewers on theoperator network14, or a percentage share, or a relative ranking based upon total number of viewers. In another example, theGUI200 may distinguish between standard definition, high definition and3D channels, such as through use of different colours, fonts, backgrounds, or symbols. Yet other example implementations are also contemplated.
In another embodiment, theGUI200 andgateway server60 may provide chat functionality in connection with current live programs. For example, theGUI200 may permit launch of an embedded or stand alone chat application on themobile device50. The chat application may be part of theremote control application54 in some implementations. The chat application may connect to thegateway server60 to establish a chat session. The chat session may be associated with a program selected on themobile device50. In this manner, the user of themobile device50 is provided with access to live chat regarding a program currently being viewed on thevideo receiver12.
Reference is now made toFIG. 7, which shows an example signalling diagram300 for changing channels and searching programs. Themobile device50 receives selection of a program via the GUI. For example, in one embodiment the use may single tap the tile corresponding to the desired program. If the program is currently available, i.e. it is a live broadcast on that channel, then themobile device50 may initiate a channel change request. In some instances, the program may not be live: it may be scheduled for broadcast at some time in the future or it may be a video-on-demand offering. In these circumstances, themobile device50 may prompt for additional input, such as whether the user wishes to switch to that channel now despite the fact that the program is not currently available, or whether the user wishes to configure thevideo receiver12 to record that program when it airs, or whether the user wishes to order that VOD offering if it is available in that format.
A channelchange request message304 is sent from themobile device50 to thegateway server60. The channelchange request message304 includes an identifier for the program or the channel or both. Thegateway server60 receives the channelchange request message304 and, at306, identifies the video receiver associated with themobile device50. In other words, based on the identity of themobile device50 that sent the channelchange request message304, thegateway server60 locates the stored association that pairs themobile device50 to aparticular video receiver12. Once the associatedvideo receiver12 has been identified thegateway server60 sends arelay request message308 to thevideo receiver12 via the operator network14 (FIG. 1). Therelay request message308 passes the channel change request; that is, therelay request message308 identifies the requested channel or program or both and includes a command or instruction that thevideo receiver12 is configured to interpret as a channel change instruction. Therelay request message308 may, in some instances, be in a proprietary format.
In one example embodiment, communications from thegateway server16 to thevideo receiver12 may include UDP messages addressed to a particular port on thevideo receiver12. The UDP message may include command instructions that thevideo receiver12 is configured to recognize and interpret appropriately. In particular, thevideo receiver12 may include an agent or other software module configured to receive command instructions and to cause associated hardware in thevideo receiver12 to implement the command. In one example, the agent may be a “SARA Resident Application”, which is proprietary to Cisco Systems, Inc. of San Jose, Calif. In other example implementations other agents may be used. The agent may, in some cases, be developed using the OCAP platform using the OCAP API remote control operations. Communications between thegateway server16 andvideo receiver12 may be implemented using XML, SOAP, RPC, REST, JSON, or any other such communications protocol.
Thevideo receiver12, on receiving therelay request message308, tunes the requestedchannel310.
Also shown inFIG. 7 is a signalling sequence for the circumstance in which the user selects recordal of a program. This may include a live program or a scheduled future program. Through the GUI, themobile device50 receives an instruction or command to record a selected program. This may include an instruction to establish multiple recordings, such as regularly scheduled recordings of a time slot, program, etc. Themobile device50 generates and sends arecord request message312 to thegateway server60. Therecord request message312 includes details of the program, channel or schedule for the recordings.
As described above, thegateway server60 identifies thevideo receiver12 associated with themobile device50 and relays the recordal request in a relayrecord request message314 addressed to the video receiver. Thevideo receiver12, on receiving the relayrecord request message314 is configured to implement the record instruction by recording a channel or scheduling the future recording of a channel.
FIG. 7 further illustrates a signalling sequence relating to a search within the IPG. Through the GUI, themobile device50 may receive asearch command320. Thesearch command320 may include a search term or phrase input by a user through the GUI, for example through a search input field. Thesearch command320 may be one of a number of preconfigured selectable searches for related programs or programs from the same genre or with one or more of the same actors, director, or other commonalities.
Themobile device50 generates and sends asearch request message322 to thegateway server60. Thegateway server60 performs thesearch324 of the IPG based on the search parameters in thesearch request message322. In some implementations, thegateway server60 may instruct theoperator server16 to perform the search and may receive results from theoperator server16. In any case, thegateway server60 obtains search results. The search results include programs or channels that meet the search parameters. The search results are packaged and provided to themobile device50 in a search resultsmessage326. In some implementations, the search resultsmessage326 may include a list of programs or associated identifiers. The list may be ordered, perhaps for a measure of relevance to the search query. The search resultsmessage326 may further include, either together with the list or separately, even in a separate message, IPG data that themobile device50 may require to display the search results. The IPG data that thedevice50 may want might include logos or images, details, and time sltos for the programs, to the extent that they have not already been provided to themobile device50 in the IPG data114 (FIG. 2) stored on themobile device50. Other IPG related data for displaying the search results may also be included.
Themobile device50 displays the search results328 on the display. The display of the search results may include providing a ranked list of programs, where each program is represented by a tile such as the tile210 (FIG. 6). The display may include display of the GUI200 (FIG. 5) with the programs identified in the search results highlighted or marked in some manner. For example, the tiles of those programs identified in the search results may be rendered in a different background color than the other tiles. Other mechanisms for displaying the search results are also contemplated herein.
Reference is again made toFIG. 1. Thepublic network30 may include one ormore content providers70.Content providers70 include sites that offer multimedia content, such as music, video, games, news, or other content. Examples include Youtube™, Rogers On-Demand Online™ (RODO™), Hulu™, Netflix™, Metacafe™, Cineplex™, etc. Some content providers, like Youtube™, aggregate content from a number of sources and may include content that is related to programming available through thevideo receiver12. Accordingly, theremote control application54 is configured to enable related content retrieval to themobile device50 via the GUI200 (FIG. 6).
Reference is now made toFIG. 8, which shows a signalling diagram400 for retrieving related content. Through the GUI200 (FIG. 6) themobile device50 receives arelated content request402. Therelated content request402 is made in association with one of the programs displayed in theGUI200. For example, therelated content request402 may be detected by themobile device50 on the basis of receiving a predefined touchscreen gesture in association with the tile for a particular program. In one embodiment, the gesture may be a double tap on the tile associated with a program. In another embodiment, the gesture may be a swipe, pinch, or other gesture. TheGUI200 may be configured to interpret other gestures, touches, or inputs as requests for related content.
Themobile device50 generates and sends a relatedcontent request message404 to thegateway server60. The relatedcontent request message404 identifies the program with which the request is associated. For example, it may include the title of the program, a program identification number, a channel number, or other such identifiers.
Thegateway server60 then sends asearch query406 to thecontent provider70. Thesearch query406 may include one or more terms or phrases associated with the program identifies in the relatedcontent request message404. These search terms and phrases may be preconfigured in thegateway server60 in association with particular programs. The search terms may include the title of the program, the names of one or more actors, the genre of the program, an episode number or identifier, or other such data. In some cases, thegateway server60 may receive and include additional search terms or parameters from themobile device50. Historical data may be used to identify more relevant content by utilizing usage statistics for a particular event or program. In many embodiments, thecontent provider70 may provide an API or other interface through which it can receive search queries.
Thecontent provider70 returns a search resultsmessage408. In some cases, thegateway server60 may parse the search resultsmessage408 to extract search results and provide them to themobile device50. In other embodiments, thegateway server60 may forward the search resultsmessage408 without modification to themobile device50. In any event, a relayedsearch results message410 is sent from thegateway server60 to themobile device50. Themobile device50 then displays the search results and, in some instance, the related content identified in the search results.
In one example embodiment themobile device50 andremote control application54 may be configured to perform related content searching directly using content providers' APIs, bypassing thegateway60.
TheGUI200 is configured to display content received in the search results or as a results of selection of one of the search results. For example, theGUI200 may be configured to display related Youtube™ videos associated with a selected program. In another example, theGUI200 may be configured to display iTunes™ music available for purchase and download that is associated with the program, perhaps due to its use in the soundtrack. In yet another example, theGUI200 may be configured to launch a chat interface hosted on by thecontent provider70, where the chat relates to the selected program. In yet a further example, theGUI200 may be configured to provide the latest Twitter™ feeds, blog entries, or news items relating to the program.
It will be appreciated that in many implementations thegateway server60 is acting as a proxy server for related content searching on behalf of themobile device50. In some respects, thegateway server60 may perform enhanced proxy services, in that thegateway server60 may be configured to generate thesearch query message406 based on the identity of the program selected for related content searching. In some implementations, depending on the nature of thecontent provider70 and the related content, thegateway server60 may perform other proxy services, such as establishing a session between themobile device50 and thecontent provider70. SIP signalling or similar such protocols may be used by thegateway server60 to set-up, monitor, and tear-down such real-time related content sessions.
Although the term “message” is used herein when describing signalling between elements, it should be understood that message may include a wide variety of signals and protocols and is not intended to be limiting.
Reference is now made toFIG. 9, which shows an example signalling diagram500 for viewing a program on themobile device50. In this example, themobile device50 andvideo receiver12 are configured to permit viewing of program content on themobile device50. In this particular example, thevideo receiver12 andmobile device50 are both equipped with short range wireless communication capabilities, such as Bluetooth™, WiFi, etc., such that thevideo receiver12 is capable of streaming program content to themobile device12. In another example, themobile device50 may receive the program content from thegateway server50 via thewireless network32.
In this example, themobile device50 receives an on-device program selection502 identifying the selected program. This selection may be received via the GUI200 (FIG. 6). Themobile device50 sends the on-device program request504 to thegateway server60, which then relays the request as a relayed on-device program request506 to the associatedvideo receiver12. Thevideo receiver12 may tune the selectedchannel508, and then streams the channel to themobile device50. It will be appreciated that thevideo receiver12 may be configured to send or stream the selected channel in its undecoded compressed format, provided themobile device50 is configured with a suitable decoder for viewing the program. The streamed program may be transmitted over a short range link from thevideo receiver12 to themobile device50. In some embodiments, thevideo receiver12 is equipped with the capability of tuning more than one channel, thereby enabling display of one program on itsdisplay device20 and a different program on themobile device50.
The above-described embodiments of the present disclosure are intended to be examples only. Alterations, modifications and variations may be effected to the particular embodiments by those skilled in the art having the benefit of the present disclosure without departing from the scope of the disclosure, which is defined by the claims appended hereto.