USPatent publicationPublished

Channel tuning with synthesized key codes

Published 11 Feb 2016 · application patented

Application
14/455,352
filed 8 Aug 2014
Publication· this page
US 20160044359 A1
published 11 Feb 2016
Patent
US 9,729,929
granted 8 Aug 2017
11 Feb 2016
Published
US pre-grant publication
20
Claims as published
3 independent
6
Classifications
H04N21/462, H04N21/458
3
Inventors
Krishna Prasad Panje
Patented
Application status
granted 8 Aug 2017
58
File wrapper
transactions

Life of the application

24 dated events
⤢ drag to zoom20142016201820202022202420262028203020322034ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

Methods, systems, and computer readable media can be operable to facilitate integrating and coordinating content requests received by a STB from multiple devices. The methods, systems, and apparatuses described in this disclosure enable the integration and coordination of content requests received from different devices by associating a content request with a key code and generating a synthesized key code. The synthesized key code can be customized according to a status of a corresponding STB.

Description

8 parts
›TECHNICAL FIELD

This disclosure relates to requesting and receiving content from a set-top box through a client device.

›BACKGROUND

Typically, a set-top box (STB) is designed to tune to a channel and playback content in response to a subscriber request for content, the request being received from a subscriber via a remote control. For example, the subscriber enters a channel number or otherwise selects content associated with a specific channel using a remote control; the remote control transmits a key code (e.g., a command recognized by the STB) associated with the channel or content selection to the STB; the STB tunes to a frequency associated with the specific channel, or retrieves a packet stream associated with the requested content; and the STB outputs content associated with the specific channel to a display device. Generally, a key code is transmitted from a remote control to a STB via an infrared (IR), radio frequency (RF), ultra high frequency (UHF) (e.g., Bluetooth communication), or other wireless communication.

The advent of networked client devices (e.g., devices that are connected to a common network), such as Digital Living Network Alliance (DLNA) devices, within the home has created a mixture of different interfaces through which subscribers may consume multimedia. Once connected to a network, networked client devices can communicate and interact with each other, and networked client devices can be capable of providing a user interface that allows a user to cause a STB to tune to a specific channel according to a request from the user. In embodiments, networked client devices transmit a request to a STB by sending a uniform resource identifier (URI) (e.g., a character string identifying a specific web and/or network resource) instead of a key code. Generally, user interfaces for networked client devices and user interfaces for STBs are not integrated and are not cooperative, thus conflicts for tuner access at a STB can occur. Therefore, a need exists for improving methods and systems for facilitating communications between networked client devices and STBs.

›BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an example network environment operable to facilitate the tuning of a STB using a synthesized key code.

FIG. 2 is a block diagram illustrating an example component operable to generate a synthesized key code based upon a request received from a networked client device.

FIG. 3 is a flowchart illustrating an example process operable to facilitate the tuning of a STB using a synthesized key code.

FIG. 4 is a block diagram of a hardware configuration operable to facilitate the tuning of a STB using a synthesized key code.

Like reference numbers and designations in the various drawings indicate like elements.

›DETAILED DESCRIPTION · 1 of 5

It is desirable to improve upon methods and systems for processing a request for content received at a STB from a networked client device. Methods and systems are described herein for synthesizing a key code based upon a request received from a networked client device and resolving conflicts arising between the networked client device request and subscriber input received through an interface at the STB. The synthesized key code can be received by an interface of the STB, and the synthesized key code can be treated as a communication carrying a standard key code.

FIG. 1 is a block diagram illustrating an example network environment 100 operable to facilitate the tuning of a STB using a synthesized key code. In embodiments, one or more customer premise equipment (CPE) devices (e.g., STB 110 , gateway 120 , other devices that are not shown such as a modem, a wireless router including an embedded modem, digital subscriber line (DSL) modem, voice over internet protocol (VOIP) terminal adapter, video game console, digital versatile disc (DVD) player, communications device, hotspot device, etc.) provide video and/or data services to a subscriber by communicating with a wide area network (WAN) 130 through a connection to a network 140 (e.g., a local area network (LAN), a wireless local area network (WLAN), a personal area network (PAN), etc.). For example, a subscriber can receive and request video and/or data services through a STB 110 , or through a television 150 connected to a STB 110 , and can receive and request video and/or data services from networked client devices 160 a - d (e.g., computer, tablet, television, mobile device, etc.) through a connection to a gateway 120 . In embodiments, a gateway 120 can communicate with a STB 110 over a wired or a wireless connection. While the components shown in FIG. 1 are shown separate from each other, it should be understood that the various components can be integrated into each other (e.g., the gateway 120 can be integrated into a STB 110 ).

In embodiments, networked client devices 160 a - d communicate with each other and with other devices that are connected to the same network 140 as the gateway 120 . For example, networked client devices 160 a - d can request and receive content from the STB 110 . Content available on the STB 110 (e.g., live channels, stored content, etc.) can be exposed to and identified by networked client devices 160 a - d using a channel or content directory (e.g., content directory service). A networked client device 160 a - d can receive a channel or content directory and a subscriber can browse the directory for available channels or content. Content can be delivered to and received by client devices 160 a - d via one or more frequencies associated with a program and/or one or more Internet protocol (IP) packet streams.

In embodiments, a plurality of devices using various interface applications can exist in the same network, and conflicts can arise when different devices having different interface applications attempt to communicate with each other. For example, one or more of the networked client devices 160 a - d can use different interface applications than a STB 110 . The STB 110 can have a user interface application that accepts key codes input by a subscriber and tunes to a channel associated with the key code, and one or more networked client devices 160 a - d can request channels or content from the STB 110 by transmitting URI requests to the STB 110 , the URI requests being associated with specific channels or content available on the STB 110 . For example, a channel or content within a channel or content directory can be selected at a networked client device 160 a - d , and a URI request (e.g., Hypertext Transfer Protocol (HTTP) “get” request) identifying the selected channel or content can be output to a STB 110 .

In embodiments, the STB 110 associates a URI request with a channel number and a corresponding key code. For example, the STB 110 can use a channel or content directory (e.g., content directory service) to identify a channel number and/or key code associated with a received URI request, and the STB 110 can translate the received URI request into a corresponding key code (e.g., a synthesized key code or key code sequence). In embodiments, the synthesized key code is a sequence of key codes associated with a content source (e.g., a content location such as a channel, internal storage location, external sever location, etc.) and/or one or more commands to be carried out by a STB 110 . The STB 110 can then process the URI request as a key code (e.g., the STB 110 can process the synthesized key code), and key codes that are translated from URI requests can be coordinated with other key codes. For example, the same conflict resolution procedures can be applied to requests for content and/or channels received by a STB 110 as URI requests and those received by the STB 110 as key codes.

FIG. 2 is a block diagram illustrating an example component 200 operable to generate a synthesized key code based upon a request received from a client device. The component 200 can include a user interface 210 , a network interface 220 , a key code synthesizing module 230 , a conflict resolution module 240 , and one or more tuners 250 . In embodiments, the component 200 is within a STB 110 .

In embodiments, the component 200 can receive a subscriber request for content through the user interface 210 . For example, the subscriber request can be received from a controller 260 as a key code embodied in an RF, IR, UHF, or other signal. In embodiments, a key code is associated with a specific channel or specific content location.

In embodiments, each of one or more tuners 250 can be tuned to a frequency associated with a downstream channel and can be used to receive content associated with the downstream channel. It should be understood that each of the one or more tuners 250 can be tuned to a different channel. In embodiments, a tuner 250 can tune to a channel in response to a subscriber request received from a controller 260 or a client device 160 a - d . In embodiments, a subscriber request can cause a tuner 250 to reserve a period of time during which the tuner 250 is to be tuned to a channel specified in the subscriber request (e.g., where a subscriber schedules a program to be recorded on a STB 110 ).

›DETAILED DESCRIPTION · 2 of 5

In embodiments, the network interface can be used to receive a command (e.g., a content request such as a request for live or stored content received from a designated channel or received in an IP packet stream) from and/or to output content to a networked client device 160 a - d . For example, a subscriber request for content can be received from a client device 160 a - d as a URI request. In embodiments, the URI request is a character string identifying a network resource, a channel, specific content, and/or content sources. For example, the URI request can identify a channel and/or content within a channel and/or content directory.

In embodiments, the key code synthesizing module 230 can determine a channel or content location associated with a received URI request. For example, the key code synthesizing module 230 can identify a channel and/or content associated with a resource, channel or content identified by a received URI request. The association between a received URI request and a channel and/or content can be based upon a channel and/or content directory (e.g., content directory service).

In embodiments, the key code synthesizing module 230 can determine a key code associated with a channel or content location. For example, the key code synthesizing module 230 can identify a key code associated with the specific channel or content location associated with the received subscriber request and can output the identified key code to the user interface 210 . In embodiments, the key code synthesizing module 230 generates a key code corresponding to a resource, channel or content identified by a received URI. In embodiments, the synthesized key code is passed to the user interface 210 .

In embodiments, the key code synthesizing module 230 can add key codes associated with commands to the synthesized key code, the commands being associated with actions to be undertaken by a corresponding STB 110 . For example, key codes associated with a number of commands for exiting out of a user guide or menu can be placed before the key code associated with the requested channel or content location in the synthesized key code. As another example, one or more key codes associated with a command for exiting out of a power-saving mode can be placed in the synthesized key code before the key code associated with the requested channel or content location. A key code associated with exiting out of a power-saving state can be added to a synthesized key code when the determination is made that a corresponding STB 110 is in a power-saving state.

In embodiments, a STB 110 executes one or more commands within the synthesized key code in the order that they are received. For example, when a STB 110 receives a synthesized key code having one or more “exit” commands before key codes associated with a channel request, the STB 110 can execute the one or more “exit” commands before causing a tuner to be tuned to a frequency associated with the requested channel. As another example, when a STB 110 receives a synthesized key code having a command to exit out of a power-saving state, the STB 110 can exit out of a power-saving state before causing a tuner to be tuned to a frequency associated with the requested channel.

In embodiments, the user interface 210 can receive key codes from a controller 260 and/or the key code synthesizing module 230 and can output received key codes to the conflict resolution module 240 . In embodiments, the conflict resolution module 240 can resolve conflicts between commands (e.g., content requests) received as key codes (e.g., requests received from the remote 260 ) and those received as URIs (e.g., key codes received by the user interface 210 from the synthesizing module 230 ). For example, the conflict resolution module 240 can change the frequency to which a tuner is tuned, stop or cancel a recording of content received through a tuner, and/or reject a content request. In embodiments, decisions made at the conflict resolution module 240 can be made based upon a priority level given to the device requesting content. For example, content requests (e.g., request to change a channel or to record content from a channel) received from a subscriber through a controller 260 can be given higher priority than content requests received from a networked client device 160 a - d . In embodiments, the conflict resolution module 240 can resolve content requests for content or channels that are blocked or otherwise unavailable to the subscriber.

FIG. 3 is a flowchart illustrating an example process 300 operable to facilitate the tuning of a STB using a synthesized key code. The process 300 can begin at 305 , when a STB 110 of FIG. 1 receives a request for content from a client device (e.g., networked client device 160 a - d of FIG. 1 ). For example, a STB 110 can receive a request for content from a networked client device 160 a - d through a network interface 220 of FIG. 2 . In embodiments, the request for content is a request for content from a specific channel or content location with the identification of the specific channel or content location being embodied in a URI.

At 310 , a content source identifier associated with the requested content can be determined. A content source identifier (e.g., a channel number or storage location) associated with the requested content can be determined, for example, by a key code synthesizing module 230 of FIG. 2 . For example, when the content request is embodied in a URI, a channel number or storage location associated with the requested content can be identified from the URI.

At 315 , a key code associated with the content source identifier can be determined. A key code associated with the content source identifier can be determined, for example, by a key code synthesizing module 230 of FIG. 2 . For example, a key code associated the content source identifier can comprise a command for a corresponding STB 110 to tune a tuner (e.g., tuner 250 of FIG. 2 ) to a channel identified by a received URI request or a command to output content from storage associated with the STB 110 .

›DETAILED DESCRIPTION · 3 of 5

At 320 , a synthesized key code associated with the content source identifier can be generated. A synthesized key code can be generated, for example, by a key code synthesizing module 230 of FIG. 2 . In embodiments, the synthesized key code may include the key code associated with the requested content. In embodiments, the synthesized key code can include one or more key codes associated with commands, the commands being associated with actions to be undertaken by a corresponding STB 110 . For example, key codes associated with a number of commands for exiting out of a user guide or menu, or a command for exiting out of a power-saving state can be placed within the synthesized key code before the key code associated with the requested content.

At 325 , the synthesized key code can be output to a user interface application. The synthesized key code can be output, for example, to the user interface 210 of FIG. 2 . In embodiments, the user interface 210 receives subscriber content requests from the key code synthesizing module 230 of FIG. 2 as well as a subscriber controller (e.g., controller 260 of FIG. 2 ).

At 330 , a determination can be made whether a conflict exists between content requests (e.g., requests for a tuner to be tuned to a specific channel during a specific period of time). In embodiments, a STB 110 may have one or more tuners (e.g., tuners 250 of FIG. 2 ), and each tuner can be tuned to a different frequency associated with a different channel. When a content request is received and there are no free tuners available to be tuned to the requested channel, the determination can be made that a conflict between content requests exists. If the determination is made that a conflict between content requests exists, the process 300 can proceed to 335 .

At 335 , the conflict between content requests can be resolved. The conflict between content requests can be resolved, for example, by the conflict resolution module 240 of FIG. 2 . In embodiments, a conflict between content requests can be resolved based upon a comparison of priority levels associated with the sources of the content requests. For example, a content request received from a controller 260 of FIG. 2 can be given higher priority than a content request received from a networked client device 160 a - d of FIG. 1 , thus a conflict arising between a content request received from a controller 260 and a request received from a client device 160 a - d can be resolved in favor of the content request received from the controller 260 . In embodiments, a conflict between content requests can be resolved based upon various other factors such as, timing of the received content requests, whether the content request is for content that is to be recorded or content that is to be viewed live, and others. In embodiments, a conflict can arise between a content request received from a client device 160 a - d and settings associated with the STB 110 that block content associated with the content request (e.g., parental control settings, content unavailable due to a subscription level, content requiring a purchase, etc.). Based upon the outcome of the conflict resolution, the conflict resolution module 240 can take a variety of actions. For example, if the received content request does not have priority over any of one or more content requests occupying one or more tuners, the conflict resolution module 240 can deny the received content request and can cause a message to be output to the requesting subscriber, the message informing the requesting subscriber that other, higher priority content requests are occupying the available one or more tuners. In embodiments, the message to the requesting subscriber can provide the subscriber with the option to override the determination of the conflict resolution module 240 and to alter the priority levels of the conflicting content requests. Further input can then be received by the STB 110 from the subscriber, the input informing the STB 110 to either change the priority levels of the conflicting content requests or to maintain the priority levels of the conflicting requests. As another example, if the received content request does have priority over any of one or more content requests occupying one or more tuners, the conflict resolution module 240 can cause one of the one or more tuners to be adjusted to receive a frequency corresponding with a requested channel, the tuner having been tuned to a channel associated with a content request over which the received content request has priority.

Returning to 330 , if the determination is made that no conflicts between content requests exist, the process 300 can proceed to 340 . At 340 , a tuner (e.g., tuner(s) 250 of FIG. 2 ) can be adjusted to receive a frequency associated with the requested channel.

FIG. 4 is a block diagram of a hardware configuration 400 operable to facilitate the tuning of a STB using a synthesized key code. The hardware configuration 400 can include a processor 410 , a memory 420 , a storage device 430 , and an input/output device 440 . Each of the components 410 , 420 , 430 , and 440 can, for example, be interconnected using a system bus 450 . The processor 410 can be capable of processing instructions for execution within the hardware configuration 400 . In one implementation, the processor 410 can be a single-threaded processor. In another implementation, the processor 410 can be a multi-threaded processor. The processor 410 can be capable of processing instructions stored in the memory 420 or on the storage device 430 .

The memory 420 can store information within the hardware configuration 400 . In one implementation, the memory 420 can be a computer-readable medium. In one implementation, the memory 420 can be a volatile memory unit. In another implementation, the memory 420 can be a non-volatile memory unit.

In some implementations, the storage device 430 can be capable of providing mass storage for the hardware configuration 400 . In one implementation, the storage device 430 can be a computer-readable medium. In various different implementations, the storage device 430 can, for example, include a hard disk device, an optical disk device, flash memory or some other large capacity storage device. In other implementations, the storage device 430 can be a device external to the hardware configuration 400 .

›DETAILED DESCRIPTION · 4 of 5

The input/output device 440 provides input/output operations for the hardware configuration 400 . In one implementation, the input/output device 440 can include one or more of a network interface device (e.g., an Ethernet card), a serial communication device (e.g., an RS-232 port), one or more universal serial bus (USB) interfaces (e.g., a USB 2.0 port), one or more wireless interface devices (e.g., an 802.11 card), and/or one or more interfaces for outputting video and/or data services to a subscriber device (e.g, television 150 of FIG. 1 , client devices 160 a - d of FIG. 1 , etc.). In another implementation, the input/output device can include driver devices configured to send communications to, and receive communications from one or more networks (e.g., network 140 of FIG. 1 ).

Those skilled in the art will appreciate that the invention improves upon methods and systems for integrating and coordinating content requests received by a STB from multiple devices. The methods, systems, and apparatuses described in this disclosure enable the integration and coordination of content requests received from different devices by associating a content request with a key code and generating a synthesized key code. The synthesized key code can be customized according to a status of a corresponding STB.

The subject matter of this disclosure, and components thereof, can be realized by instructions that upon execution cause one or more processing devices to carry out the processes and functions described above. Such instructions can, for example, comprise interpreted instructions, such as script instructions, e.g., JavaScript or ECMAScript instructions, or executable code, or other instructions stored in a computer readable medium.

Implementations of the subject matter and the functional operations described in this specification can be provided in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus.

A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification are performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output thereby tying the process to a particular machine (e.g., a machine programmed to perform the processes described herein). The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks (e.g., internal hard disks or removable disks); magneto optical disks; and CD ROM and DVD ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

›DETAILED DESCRIPTION · 5 of 5

Particular embodiments of the subject matter described in this specification have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results, unless expressly noted otherwise. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some implementations, multitasking and parallel processing may be advantageous.

Claims as published

20 claims

Log in to read the claims of this publication.

Log in to unlock

Classifications

6 codes
IPC · International Patent Classification
Section H — Electricity
  • H04N21/462
  • H04N21/458
  • H04N21/422
  • H04N21/482
  • H04N21/438
  • H04N7/16

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this publication are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJul 2014Jan 2015Jul 2015Jan 2016Jul 2016Jan 2017Jul 2017USPTOApplicantNon-final rejectionResponse after non-finalFinal rejectionAdvisory actionResponse after non-finalNotice of allowance
USPTOApplicanthover for detail · click to open
Pendency
3.0 y
1,096 days filing → grant
Office actions
3
non-final + final
Responses
3
1 RCE
Examiner
Pankaj Kumar
art unit 2424 · TC 2400
Citations: 30 back · 3 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20142016201820202022202420262028203020322034Owner 1Owner 2Owner 3liens, releases & corrections
TitleLienReleasehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock