A network client aggregates media items available in a media system. The network consists of a plurality of nodes, including at least two media server nodes. A client node generates an internal request to obtain a list of media items available in the media system. In response, the client node generates a request for a list of media items from each individual media server node on the network. Each media server node sends their list of media items to the client node. The client node aggregates the lists of media items from each of the media server nodes. Thus, a list of media items available on the media system is aggregated to a requesting client node in the media system.
|
1. A method for aggregating media in a media system comprising network devices coupled through a network, the network devices comprising a first storage device, a second storage device, and a client device that communicate with each other through the network by using network protocols, the method comprising:
receiving though the network, at the client device, first and second state information from the first and second storage devices respectively, each state information specifying a network protocol and a content service supported by the respective storage device configured to store digital media files, the content service for allowing other network devices to access digital media files or information regarding the digital media files stored on the respective storage device, first and second network protocols associated with the first and second storage devices respectively being different;
upon the client device being coupled to the network, sending third state information from the client device to the first and second storage devices, the third state information specifying at least one network protocol and at least one service supported by the client device, wherein the media system utilizes a peer-to-peer architecture, wherein the network devices communicate with each other through the network by using network protocols specified in the state information for each network device, and a request sent to a network device is translated to the network protocol specified in the state information for the network device, the request invoking a service specified in the state information for the network device;
receiving, at the client device, a first list of digital media files from the first storage device and a second list of digital media files from the second storage device;
aggregating, at the client device, an overall list of digital media files comprising the first and second lists, wherein a digital media file found on both the first list and the second list is only listed once on the overall list; and
in response to user input, playing, at the client device, at least a portion from the overall list of digital media files.
11. A media system for aggregating media, the media system comprising:
a network coupling network devices comprising a first storage device, a second storage device, and a client device that communicate with each other through the network by using network protocols;
the first storage device configured for storing digital media files;
the second storage device configured for storing digital media files;
the client device configured for:
receiving though the network first and second state information from the first and second storage devices respectively, each state information specifying a network protocol and a content service supported by the respective storage device, the content service for allowing other network devices to access digital media files or information regarding the digital media files stored on the respective storage device, first and second network protocols associated with the first and second storage devices respectively being different;
upon the client device being coupled to the network, sending third state information from the client device to the first and second storage devices, the third state information specifying at least one network protocol and at least one service supported by the client device, wherein the media system utilizes a peer-to-peer architecture, wherein the network devices communicate with each other through the network by using network protocols specified in the state information for each network device, and a request sent to a network device is translated to the network protocol specified in the state information for the network device, the request invoking a service specified in the state information for the network device;
receiving a first list of digital media files from the first storage device and a second list of digital media files from the second storage device;
aggregating an overall list of digital media files comprising the first and second lists, wherein a digital media file found on both the first list and the second list is only listed once on the overall list; and
in response to user input, playing at least a portion from the overall list of digital media files.
21. A non transitory computer readable medium comprising a plurality of instructions, which when executed by the computer, aggregate media in a media system, the media system comprising network devices coupled through a network, the network devices comprising a first storage device, a second storage device, and a client device that communicate with each other through the network by using network protocols, the instructions causing the computer to perform the steps of:
receiving through the network, at the client device, and second state information from the first and second storage devices respectively, each state information specifying a network protocol and a content service supported by the respective storage device configured to store digital media files, the content service for allowing other network devices to access digital media files or information regarding the digital media files stored on the respective storage device, first and second network protocols associated with the first and second storage devices respectively being different;
upon the client device being coupled to the network, sending third state information from the client device to the first and second storage devices, the third state information specifying at least one network protocol and at least one service supported by the client device, wherein the media system utilizes a peer-to-peer architecture, wherein the network devices communicate with each other through the network by using network protocols specified in the state information for each network device, and a request sent to a network device is translated to the network protocol specified in the state information for the network device, the request invoking a service specified in the state information for the network device;
receiving, at the client device, a first list of digital media files from the first storage device and a second list of digital media files from the second storage device;
aggregating, at the client device, an overall list of digital media files comprising the first and second lists, wherein a digital media file found on both the first list and the second list is only listed once on the overall list; and
in response to user input, playing, at the client device, at least a portion from the overall list of digital media files.
2. The method of
exposing, at the client device, each service specified in the third state information to the first and second storage devices; and
requesting an exposed service of the client device by using a network protocol specified in the third state information.
3. The method of
sending the first state information from the first storage device to the client device, the first state information further specifying a plurality of services supported by the first storage device;
exposing, at the first storage device, each service specified in the first state information to the other network devices; and
requesting, at the client device, an exposed service of the storage device by using the first network protocol specified in the first state information.
4. The method of
receiving, at the client device, a user request to play a first digital media file stored on the first storage device;
sending, from the client device to the first storage device, a request invoking a first content service on the first storage device for accessing the first digital media file stored on the first storage device, the request being translated to the first network protocol by the client device; and
receiving, at the client device, the first digital media file for play back.
5. The method of
digital media files comprise audio media files, video media files, or image media files stored on the first and second storage devices;
the client device is configured to playback audio media files; and
aggregating the overall list of digital media files comprises aggregating a list of only audio media files stored on the first and second storage devices.
6. The method of
digital media files comprise audio media files, video media files, or image media files stored on the first and second storage devices;
the client device is configured to playback video media files; and
aggregating the overall list of digital media files comprises aggregating a list of only video media files stored on the first and second storage devices.
7. The method of
digital media files comprise audio media files, video media files, or image media files stored on the first and second storage devices;
the client device is configured to playback image media files; and
aggregating the overall list of digital media files comprises aggregating a list of only image media files stored on the first and second storage devices.
8. The method of
determining whether each digital media file on the overall list is unique from other digital media files on the overall list.
9. The method of
10. The method of
12. The media system of
exposing each service specified in the third state information to the first and second storage devices; and
receiving a request for an exposed service, the request by using a network protocol specified in the third state information.
13. The media system of
sending the first state information to the client device, the first state information further specifying a plurality of services supported by the first storage device;
exposing each service specified in the first state information to the other network devices; and
receiving a request for an exposed service, the request by using a network protocol specified in the first state information.
14. The media system of
the client device comprises a media player device; and
the client device is further configured for:
receiving a user request to play a first digital media file stored on the first storage device;
sending, to the first storage device, a request invoking a first content service on the first storage device for accessing the first digital media file stored on the first storage device, the request being translated to the first network protocol by the client device; and
receiving the first digital media file for play back.
15. The media system of
digital media files comprise audio media files, video media files, or image media files, stored on the first and second storage devices;
the client device is further configured to playback audio media files; and
aggregating the overall list of digital media files comprises aggregating a list of only audio media files stored on the first and second storage devices.
16. The media system of
digital media files comprise audio media files, video media files, or image media files stored on the first and second storage devices;
the client device is further configured to playback video medial files; and
aggregating the overall list of digital media files comprises aggregating a list of only video media files stored on the first and second storage devices.
17. The media system of
digital media files comprise audio media files, video media files, or image media files stored on the first and second storage devices;
the client device is further configured to playback image media files; and
aggregating the overall list of digital media files comprises aggregating a list of only image media files stored on the first and second storage devices.
18. The media system of
determining whether each digital media file on the overall list is unique from other digital media files on the overall list.
19. The media system of
20. The media system of
22. The computer readable medium of
exposing, at the client device, each service specified in the third state information to the first and second storage devices; and
requesting an exposed service of the client device by using a network protocol specified in the third state information.
23. The computer readable medium of
sending the first state information from the first storage device to the client device, the first state information further specifying a plurality of services supported by the first storage device;
exposing, at the first storage device, each service specified in the first state information to the other network devices; and
requesting, at the client device, an exposed service of the storage device by using the first network protocol specified in the first state information.
24. The computer readable medium of
receiving, at the client device, a user request to play a first digital media file stored on the first storage device;
sending, from the client device to the first storage device, a request invoking a first content service on the first storage device for accessing the first digital media file stored on the first storage device, the request being translated to the first network protocol by the client device; and
receiving, at the client device, the first digital media file for play back.
25. The computer readable medium of
digital media files comprise audio media files, video media files, or image media files stored on the first and second storage devices;
the client device is configured to playback audio media files; and
aggregating the overall list of digital media files comprises aggregating a list of only audio media files stored on the first and second storage devices.
26. The computer readable medium of
digital media files comprise audio media files, video media files, or image media files stored on the first and second storage devices;
the client device is configured to playback video media files; and
aggregating the overall list of digital media files comprises aggregating a list of only video media files stored on the first and second storage devices.
27. The computer readable medium of
digital media files comprise audio media files, video media files, or image media files stored on the first and second storage devices;
the client device is configured to playback image media files; and
aggregating the overall list of digital media files comprises aggregating a list of only image media files stored on the first and second storage devices.
28. The computer readable medium of
determining whether each digital media file on the overall list is unique from other digital media files on the overall list.
29. The computer readable medium of
30. The computer-readable medium of
|
1. Field of the Invention
The present invention is directed toward the field of converging disparate types of media, and more particularly directed toward a media device that aggregates media from multiple disparate devices over a network.
2. Art Background
The widespread use of computers, digital cameras, and the Internet has resulted in the creation and use of digital media. Digital media has also largely replaced more traditional analog audio and video formats with the introduction and popular acceptance of audio compact discs (CDs) and digital video discs (DVDs). In general, digital media consists of various formats of data that stores audio, video, and images in binary files. These binary files are typically stored on a medium accessible to computer devices, such as CD-ROMs, hard drives, floppy disks and memory sticks.
The storage of digital media on commonly used computer medium allows for easy generation and transfer of digital media. For example, it has become popular to generate digital photos using a digital camera and then to transfer the digital photos onto computers. Computer software permits the user to manipulate the digital photos. The user may then transfer the digital photos to friends using e-mail, or post the digital photos on a web site accessible by the World Wide Web. These types of applications, which take advantage of the connectivity among different devices, have also contributed to the widespread popularity of digital media.
Digital media may be stored in a variety of formats. Special hardware or software compatible with the formats of the digital media is required to playback or view the digital media. For example, to listen to music stored in the popular MP3 format, a consumer must have a special MP3 player (i.e., either software running on a general purpose computer or a stand alone MP3 player). There are numerous formats for video, including high quality DVDs and various compression based MPEG and proprietary standards. To playback various formats of digital video, the consumer must use a device that reads the proper format of the digital media.
Because of the numerous different formats of digital media, the playback or viewing of numerous types of digital media today requires multiple types of devices. The playback of digital media stored in different formats is less problematic on a computer because the computer may play the digital media using software programs. However, a consumer may desire to play the media on other types of devices. For example, the consumer may desire to play digital audio files on a home stereo and view digital video on a television. Currently, stereos and televisions are not equipped to playback all formats of digital media. Accordingly, it is desirable to provide a media convergence platform that integrates various types of digital media into a single system.
Aggregation of media in a home network is typically performed using a server. Under this technique, a server tracks the existence of all media items available on the home network. For example, a media server may be implemented on a personal computer. A digital audio jukebox may be coupled to the home network. To aggregate a list of all audio available on the home network, the server (personal computer) receives a list of the media items from the digital jukebox. For this implementation, the server acts as a central point to acquire a list of all audio available on the home network. This server aggregation architecture requires constant availability of the server. The server becomes a single point of failure. Furthermore, aggregating all media items through a server limits system throughput. Accordingly, it is desirable to generate a home media system that does not rely on server aggregation to acquire all media items on a home network.
A network client aggregates media items available in a media system. A plurality of nodes are coupled to the network. A node may comprise a device, which supports services for the media system, or a media server that presents at least one media item to the network. Each network node provides one or more services for the media system. At least two of the nodes comprise media server nodes. A media server node presents media items to the network. For example, a media server node may be a hard disk drive that stores MP3 music, or a media server node may be a gateway to the Internet for downloading media items. A client node generates an internal request to obtain a list of media items available in the media system. For example, a client node may comprise a television, and a user may request to view a list of all available media items in the system on the television screen.
In response to the client's internal request for media items, the client node generates a request for a list of media items from each individual media server node on the network. In one embodiment, the media system uses a discovery protocol to learn of media server nodes on the network. In response, each media server node sends their list of media items to the client node. The client node aggregates the lists of media items from each of the media server nodes. During the aggregation process, the client node determines whether each media item is unique from other media items on the aggregated list. Thus, a list of media items available on the media system is aggregated to a requesting client node in the media system.
In one embodiment, to obtain a list of media items from a media server, the client node invokes a service on the media server. The media system supports multiple protocols to communicate among nodes in the media system. First, the client node determines a protocol supported by a media server, and then uses the protocol to obtain a list of media items from the media server. The media system also supports multiple remote procedure call (“RPC”) mechanisms to invoke procedures on the media server.
The user interface of the present invention provides an efficient and easy way for one or more users to manage and playback media within a “media space.” As used herein, a “media space” connotes one or more media storage devices coupled to one or more media players for use by one or more users. The integration of media storage devices and media players into a single media space permits distributed management and control of content available within the media space.
As shown in
The storage devices 110 and media players 120 are controlled by management component 130. In general, management component 130 permits users to aggregate, organize, control (e.g., add, delete or modify), browse, and playback media available within the media space 100. The management component 130 may be implemented across multiple devices. The media space of
For this embodiment, the media server 210 executes software to perform a variety of functions within the media space. Thus, in this configuration, the media server 210 operates as a “thick client.” A user accesses and controls the functions of the media convergence platform through a system user interface. The user interface utilizes the thick and thin clients, as well as some media players (e.g., televisions 250 & 270). In one embodiment, the user interface includes a plurality of interactive screens displayed on media player output devices to permit a user to access the functionality of the system. A screen of the user interface includes one or more items for selection by a user. The user navigates through the user interface using a remote control device (e.g., remote control 260). The user, through use of a remote control, controls the display of screens in the user interface and selects items displayed on the screens. A user interface displayed on a television permits the user, using a remote control, to perform a variety of functions pertaining to the media available in the media space.
The components of the media convergence platform are integrated through a network. For example, in the embodiment of
For the embodiment of
The media convergence platform system also optionally integrates one or more thin audio clients into the media space. For the embodiment of
The media manager 280 is an optional component for the media convergence platform system. In general, the media manager 280 permits the user to organize, download, and edit media in the personal computer “PC” environment. The media manager may store media for integration into the media space (i.e., store media for use by other components in the media space). In one embodiment, the media manager 280 permits the user to perform system functions on a PC that are less suitable for implementation on a television based user interface.
The media space may be extended to access media stored external to those components located in the same general physical proximity (e.g., a house). In one embodiment, the media convergence platform system integrates content from external sources into the media space. For example, as shown in
As used herein, a “device” connotes a home network client that supports a collection of services to operate a broader functionality. Also, as used herein, a “media server” is an entity on the home network that stores or presents media items to the network. Furthermore, a “node” connotes any entity on a home network, including a device and/or a media server.
The convergence media platform utilizes a “peer-to-peer” architecture. All client devices on the media platform have the ability to communicate with other devices, including multiple client devices and multiple servers. This architecture permits a device to obtain all media available on the network and to aggregate the media for presentation on that device.
A device, including a client device or a server device, may enter and/or exit the home network, at any time, and still maintain full functionality. Thus, when a device is powered off, other devices automatically recognize that the device is no longer available on the home network. When a new device is added or a portable device comes onto the network, the other nodes automatically recognize the new devices. The other nodes may utilize the services on the added device. A new media server may also automatically recognize new devices, as long as at least one other media server is currently on the network.
After completing a discovery process, media device 350 determines relevant media items stored on other devices (e.g., media servers) available on home network 340. Thus, media device 350 aggregates all media, relevant to media device 350, for use at media device 350 (i.e., playback, control. etc.). As shown in
The media convergence platform provides the capability to identify all media items as unique. For example, all media items classified under the genre “pop” are recognized as such, and the system displays them accordingly. An artist may have the same name but not be the same artist. The media convergence platform utilizes a distributed database that allows the system to distinguish among unique media items. Thus, if a media item is stored on two different media servers, then during client device aggregation, the device recognizes only a single media item. For the example of
The underlying protocols do not permit a client device to aggregate media items from devices on the home network. The protocols themselves have no requirement to support a distributed system. For this embodiment of the media convergence platform, aggregation logic creates a distributed system using non-distributed protocols. The aggregation logic uses multiple protocols to integrate devices on the home network.
The aggregation logic for the client device acquires media items from all media servers that contain those media items. For example, if the client requests music items, the client device acquires all music items from all media servers available on the network. This operation is illustrated in
The software components 500 also include user interface (“UI”) rendering logic 510. UI rendering component 510 translates scene information to display information suitable for display on the client device. The UI rendering component 510 also renders the display data. For example, if the underlying client device includes a television display (e.g., CRT), then UI rendering engine 510 generates graphics data from scene information, and renders the graphics data on the television display. If the display on the client device is a LCD display, then UI rendering engine 510 generates lists from scene information, and displays the lists on the LCD display.
As shown in
The client device software 500 supports one or more services. As shown in
In one embodiment, the media convergence platform supports a plurality of underlying protocols. In general, the protocols define commands, RPC mechanisms, and interfaces to services. In one embodiment, the media convergence platform supports an industry defined UPnP protocol. In general, the UPnP protocol defines discovery over IP networks, an RPC mechanism, and interfaces for activating services. UPnP services include: a content directory service, a connection manager service, an audio/video (“A/V”) transport service and an A/V control service.
In one embodiment, the media convergence platform also supports a proprietary protocol (i.e., non-industry standard protocol). For this embodiment, the proprietary protocol defines a network discovery process, an RPC mechanism, and an interface to services. The services include a content manager and a media player service. The content manager service allows a client device to interface to a database. Specifically, using the content manager service, the client device may extract information (e.g., URL to identify media, metadata, etc.) from a database on another network device. Thus, the content manager service provides a means for a device of the media convergence platform system to query a database. The media player service defines an interface to permit playback functionality (e.g., initiate and control media streams).
In one embodiment, the discovery process on the proprietary protocol implements asynchronous based messaging. The discovery protocol operates on any network that supports packet based messaging or on a serialized network. In one embodiment, the discovery protocol includes an “announce” command, a “discovery” command, and a “bye-bye” command. The announce command is used by a device to announce its presence on the home media network. A discovery command is a request for an announcement (i.e., queries whether any client devices are on the home network). The “bye-bye” command is used by a client device to announce that the client device is leaving the network. In one embodiment, there are two types of announcements and two types of “bye-bye” commands: one for devices and one for services.
In one embodiment, the RPC mechanism, supported by the proprietary protocol, uses a packet based protocol. The services include methods and an identification number to permit a device on the home network to construct RPC based packets with the appropriate arguments. In general, an RPC mechanism permits a device to control another device on the network. The protocol is effectuated through requests and responses. The RPC packets include a header. In one embodiment, the header contains: version information, a command class (maps to a particular service), the command (the method the device is requesting or the response coming from the method), an identification (identification of requests or identification of responses corresponding to a request), and a length. After the header, the RPC protocol format specifies data (i.e., arguments for requests and returns values for responses).
As shown in
In one embodiment, a media convergence platform implementation provides security. For this embodiment, the announcement command is open ended, such that the protocol only defines a minimum specification for communication. Thus, announcement protocols may support multiple network specifications, including TCP and secure sockets layer (“SSL”). The protocol supports implementation on TCP/IP networks. In addition, the protocol supports SSL operating on TCP/IP networks. SSL permits secure communications, including authentication, between two parties on a network.
The proprietary protocol also permits an implementation using partial security. For this embodiment, a service may include some methods that require secure communications and other methods that do not require secure communications. Thus, some methods utilize SSL technology to realize secure communications between two devices on the home network.
The new device transmits an “announcement” command over the network (block 730,
In response to the new device's announcement command, the new device constructs state information. In general, the state information provides details regarding devices available on the network. The state information includes protocols and services supported by those devices. When compatible devices on the network receive the announcement command, those compatible devices may add information, encapsulated in the announcement command, to a local cache.
If there are no compatible devices on the network or the new device does not desire to utilize a service on the network, then the process terminates. For example, if the new device is an MP3 player, then compatible devices include those media servers storing MP3 audio as well as other MP3 players. If there are other compatible devices on the network, those devices expose one or more services to the new device (block 750,
In response to the request (e.g., new device application logic), the new device connects to a compatible device via a supporting protocol (block 760,
A media server entering a home network is one example of the discovery process. For this example, the media server, after obtaining a network address, transmits an announcement command over the network. The media server announces the services it supports (e.g., content manager, media player service), and exposes interfaces to network clients to permit access to those services. If a device enters the network, the device waits for an announcement from the server. When the client identifies the media server, the client connects to the media server via a protocol the server specified in the announcement command. This process allows the client device to navigate media on the media server. Using the supporting protocol, the client device connects to a playback device, either itself or another playback device, and instructs the playback device to play the item that a user selected from those media items available on the media server.
The media convergence system operates in conjunction with a data model. The format and arrangement of underlying database is not defined by the media convergence system. In the data model, objects (e.g., media items) have unique identifications in the database. The objects also have an associated “type” (e.g., photos, audio tracks, video clips, etc.). The data model defines relationships to define structure and hierarchy among objects and types.
In one embodiment, the database for the media convergence system comprises a relational database (e.g., key value pair database or standard query language (“SQL”) database). For this embodiment, the database maps objects for storage in the relational database. Although one embodiment of the media convergence system utilizes a relational database, other databases may be used without deviating from the spirit or scope of the invention.
Client device 810 may obtain information from Database A and Database B. To query Database B, client device 810 obtains a connection with device 840 in a manner as described above. The client device 810 invokes methods via an interface on content manager serviceB. For example, client device 810 may desire to obtain a list of all genres recognized by the media convergence system. This information may be stored in database B. Client device 810 generates a request using data model parameters specified in the interface for content manager serviceB. For the example above, client device 810 generates a request to content manager serviceB to identify all objects with the type “genre.” In response to the request, client manager serviceB translates the data model notion of “genre” to a query compatible with Database B. For example, if Database B supports SQL, then content manager serviceB generates a SQL request to Database B to obtain all records in a table with the type “genre.”
The implementation of the content manager service performs the translation from the media convergence system data model to an underlying database implementation. For the example in
In one embodiment, the media convergence platform system is implemented using a database. In general, the database stores objects, attributes associated with those objects, and associations between those objects. For example, the database stores an identification of musical tracks available within the media space. The database stores a plurality of attributes, so as to associate one or more attributes for each musical track. In one embodiment, the objects include albums, artists, tracks, genres, and playlists. Thus, a track may be associated with one or more albums, one or more artists, one or more genres, and one or more playlists. Attributes include titles, creation dates, and multiple associated media files. Thus, a track may have associated album art, lyrics, etc.
The media convergence platform database permits classifying audio tracks in an extremely versatile manner. For example, a user may desire to classify a track or album (i.e., collection of tracks) in more than one genre because the user associates the music with two different types of genres (e.g., rock and blues). Also, a musical track may be a result of a collaboration between two artists. To properly classify the track, a user of the media convergence platform may associate the track with two different artists. As illustrated by the above examples, the media convergence platform system provides maximum flexibility in classifying and organizing music.
The media convergence platform system handles each classification or item as a distinct object. For example, for the music jukebox application, playlists, genres, artists, albums, and tracks are all handled as individual objects. This feature, which supports independent objects for organization and classification of items, provides maximum flexibility in organizing and classifying music. For example, the user may create nested playlists, such that a first playlist may be wholly contained within a second playlist. Prior art music systems only deal with playlists by tracks. For these prior art systems, a playlist only consists of tracks. In the media convergence platform system, playlists may comprise any “objects.” Therefore, playlists may be created from one or more artists, genres, albums or other playlists.
The use of objects in organizing and playing music also permits artists with the same name to be treated differently. Prior art digital music systems store metadata to identify artists. If a user executes a search on the metadata using these prior art systems, there is no way for the system to differentiate among artists with the same name. In the media convergence platform system, each artist is treated as an object. Thus, two artists with the same name are two distinct objects, and may be manipulated as two separate artists.
The media convergence system utilizes distributed iterators. A response to a query to a database may generate a huge amount of data. In one embodiment, the media convergence platform protocol supports transmitting a portion of the data, and maintaining a pointer to identify the data that has been sent. In one embodiment, the protocol uses iterators. The use of iterators by the media convergence platform allows the system to track a portion of data (e.g., a list) transferred from one device to another device. The iterator is implemented such that the iterator dynamically changes if items in the database change during transfer of the data. In general, the iterator specifies a position in an array. A list is a result from the database. For example, the response to a query to a database may produce a list of audio tracks. Subsequently, an audio track, extracted as part of the example query, may be deleted. In another scenario, an audio track, specified by the query, may be added to the database.
If the media convergence system is implemented using the proprietary protocol and a TCP/IP network, the system associates state with the request for database information. This state information is utilized to maintain iterator information.
In one embodiment, the media convergence platform separates the user interface (“UI”) scene manager and application logic from the UI rendering engine. In one implementation, the system defines user interface displays in terms of “scenes.” In general, a scene is an abstract layout for a display, and it consists of logical entities or elements. For example, a scene may define, for a particular display, a title at the top of the display, a message at the bottom the display, and a list of elements in the middle of the display. The scene itself does not define the particular data for the title, message and list. In one implementation, the user interface software comprises a scene manager, UI application logic, and UI rendering engine. In general, the scene manager generates the abstract layout, in terms of logical entities, for a UI display. The application logic receives user input and determines the scene and data to populate the scene based on the logical flow of the user interface. For example, a user may select a first item displayed on the current UI display. In response, the UI application logic selects, if applicable, a new scene and data to populate the new scene based on the user selection.
The application logic is implemented independent of the scene and the UI rendering. The UI application logic obtains, from a scene manager, the scene in terms of the abstract elements. The application logic then populates the logical elements with data, and transfers the abstract layout with data to the rendering engine. The rendering engine then displays the scene and data with display elements particular to the output display for that device. The display elements include display resolution, font size for textual display, the ability to display graphics, etc. For example, if the output device is a television screen, then the UI rendering engine generates graphics data (i.e., RGB data) suitable for display of the scene on the television screen (e.g., proper resolution, font size, etc.). If the output display is a liquid crystal display (“LCD”), the UI rendering engine translates the scene logical entities to a format suitable for display on the LCD display. For example, if the display for a device is only capable of displaying lists, then the UI rendering engine translates the scene with data to display only lists. This translation may result in deleting some information from the scene to render the display. The UI rendering engine may convert other logical elements to a list for display on the LCD display.
A user interface implementation for a media convergence platform that separates the scene manager and UI application logic from the UI rendering engine has several advantages. First, the scene manager/application logic does not require any information regarding the capabilities of the output display. Instead, the scene manager and application logic only view the UI display in terms of logical entities, and populate data for those logic entities based on user input and logical flow of the user interface. Second, this separation permits a graphical designer of a user interface system to easily change the scenes of the user interface. For example, if a graphical designer desires to change a scene in the user interface, the graphical designer only changes the abstract layout of the scene. During runtime, the application logic receives the revised abstract layout, populates the revised abstract layout with data, and transmits the abstract layout with data to the UI rendering engine. The UI rendering engine then determines the specific display elements to display the scene based on the output device. Thus, a change to the scene does not require a change to the display elements particular to each output display because the conversion from the scene to the display elements occurs locally.
In one embodiment, the media convergence platform permits implementing user interface software remote from a device. In one implementation, the scene manager and application logic are executed on a device remote from the device displaying a user interface. The device displaying the user interface only contains the UI rendering engine. For this implementation, the data and scenes for a user interface exist on a remote device. Using this implementation, the scene interface (interface between the scene manager and the application logic) is remote from the device rendering the display. The remote device does not transfer large bitmaps across the network because only scene information with data is transferred. This delineation of functions provides a logical boundary between devices on a network that maximizes throughput over the network. In addition, a remote device hosting the scene manager/application logic does not require information regarding display capabilities of each device on the home network. Thus, this implementation pushes the UI rendering software to the device rendering the images, while permitting the application logic to reside on other devices. This architecture permits implementing a thin client in the media convergence platform because the thin client need not run the scene manager and application logic software.
Putterman, Daniel, Dietrich, Brad, Toeman, Jeremy, Doornbos, John
Patent | Priority | Assignee | Title |
10034027, | Mar 10 2016 | Sony Corporation | Automatic MSO-based transfer of DVR content to new location of customer |
10951727, | Feb 02 2007 | Apple Inc. | Remote access of media items |
11659062, | Feb 02 2007 | Apple Inc. | Remote access of media items |
9712861, | Mar 10 2016 | Sony Corporation | Interactive load balancing among DVRs based on customer selection |
Patent | Priority | Assignee | Title |
5506932, | Apr 16 1993 | Acoustic Technology LLC | Synchronizing digital audio to digital video |
5571672, | Sep 20 1994 | UNITED STATES OF AMERICA, THE, AS REPRESENTED BY THE SEC OF AGRICULTURE | Gypsy moth genotype assay |
5751672, | Jul 26 1995 | SONY CORPORATION, A CORPORATION OF JAPAN; SONY ELECTRONICS INC , A CORPORATION OF DELAWARE | Compact disc changer utilizing disc database |
5793366, | Nov 12 1996 | Sony Corporation; Sony Electronics, Inc. | Graphical display of an animated data stream between devices on a bus |
5798921, | May 05 1995 | Audio storage/reproduction system with automated inventory control | |
5815297, | Oct 25 1995 | Google Technology Holdings LLC | Infrared interface and control apparatus for consumer electronics |
5835126, | Mar 15 1996 | 1ST TELEPHONY LLC | Interactive system for a closed cable network which includes facsimiles and voice mail on a display |
5883621, | Jun 21 1996 | Sony Corporation; Sony Electronics, Inc. | Device control with topology map in a digital network |
5930473, | Jun 24 1993 | CONGRESS FINANCIAL CORPORATION NEW ENGLAND , A MASSACHUSETTS CORPORATION | Video application server for mediating live video services |
5945988, | Jun 06 1996 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system |
5969283, | Jun 17 1998 | MOAEC TECHNOLOGIES LLC | Music organizer and entertainment center |
5977964, | Jun 06 1996 | Intel Corporation | Method and apparatus for automatically configuring a system based on a user's monitored system interaction and preferred system access times |
6008802, | Jan 05 1998 | Intel Corporation | Method and apparatus for automatically performing a function based on the reception of information corresponding to broadcast data |
6032202, | Jan 06 1998 | Sony Corporation | Home audio/video network with two level device control |
6038614, | Jan 05 1998 | Gateway, Inc | Active volume control with hot key |
6085236, | Jan 06 1998 | Sony Corporation | Home audio video network with device control modules for incorporating legacy devices |
6111677, | Aug 31 1998 | Sony Corporation | Optical remote control interface system and method |
6118450, | Apr 03 1998 | Sony Corporation; Sony Electronics, INC | Graphic user interface that is usable as a PC interface and an A/V interface |
6154206, | May 06 1998 | Sony Corporation | Method and apparatus for distributed conditional access control on a serial communication network |
6160796, | Jan 06 1998 | Sony Corporation | Method and system for updating device identification and status information after a local bus reset within a home audio/video network |
6169725, | Oct 30 1998 | Sony Corporation | Apparatus and method for restoration of internal connections in a home audio/video system |
6177931, | Aug 12 1997 | Rovi Guides, Inc | Systems and methods for displaying and recording control interface with television programs, video, advertising information and program scheduling information |
6182094, | Jun 25 1997 | SAMSUNG ELECTRONICS CO , LTD | Programming tool for home networks with an HTML page for a plurality of home devices |
6208341, | Aug 05 1998 | HOME CONTROL SINGAPORE PTE LTD | GUI of remote control facilitates user-friendly editing of macros |
6219839, | May 12 1998 | Sharp Kabushiki Kaisha | On-screen electronic resources guide |
6232539, | Jun 17 1998 | MOAEC TECHNOLOGIES LLC | Music organizer and entertainment center |
6236395, | Apr 26 1999 | Sharp Kabushiki Kaisha | Audiovisual information management system |
6237049, | Jan 06 1998 | Sony Corporation | Method and system for defining and discovering proxy functionality on a distributed audio video network |
6243725, | May 21 1997 | Premier International Associates, LLC | List building system |
6263503, | May 26 1999 | SLING MEDIA L L C | Method for effectively implementing a wireless television system |
6289165, | Nov 12 1998 | CustomPlay LLC | System for and a method of playing interleaved presentation segments |
6353700, | Apr 07 1998 | Womble Multimedia, Inc. | Method and apparatus for playing an MPEG data file backward |
6356971, | Mar 04 1999 | Sony Corporation of America; Sony Corporation; Sony Electronics, INC | System for managing multimedia discs, tracks and files on a standalone computer |
6359661, | Nov 05 1996 | Gateway, Inc | Multiple user profile remote control |
6393430, | May 08 1998 | IRONWORKS PATENTS LLC | Method and system for automatically recording music data files by using the hard drive of a personal computer as an intermediate storage medium |
6466080, | Oct 10 2000 | Fujitsu Limited | Constant current driver circuit |
6487145, | Apr 22 1999 | Rovi Technologies Corporation | Method and system for audio data collection and management |
6577735, | Feb 12 1999 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | System and method for backing-up data stored on a portable audio player |
6647417, | Feb 10 2000 | Ochoa Optics LLC | Music distribution systems |
6657116, | Jun 29 2000 | Microsoft Technology Licensing, LLC | Method and apparatus for scheduling music for specific listeners |
6741617, | Apr 14 1995 | Koninklijke Philips Electronics N V | Arrangement for decoding digital video signals |
6751402, | Jun 28 2000 | KEEN PERSONAL MEDIA, INC ; KEEN PERSONAL TECHNOLOGIES, INC | SET-TOP BOX CONNECTABLE TO A DIGITAL VIDEO RECORDER VIA AN AUXILIARY INTERFACE AND SELECTS BETWEEN A RECORDED VIDEO SIGNAL RECEIVED FROM THE DIGITAL VIDEO RECORDER AND A REAL-TIME VIDEO SIGNAL TO PROVIDE VIDEO DATA STREAM TO A DISPLAY DEVICE |
6816175, | Dec 19 1998 | International Business Machines Corporation | Orthogonal browsing in object hierarchies |
6826512, | Jun 28 2001 | Sony Corporation; Sony Electronics Inc. | Using local devices as diagnostic tools for consumer electronic devices |
6839769, | May 31 2001 | Intel Corporation | Limiting request propagation in a distributed file system |
6882793, | Jun 16 2000 | YESVIDEO, INC | Video processing system |
6901603, | Jul 10 2001 | Google Technology Holdings LLC | Methods and apparatus for advanced recording options on a personal versatile recorder |
6931593, | May 22 2000 | Gateway Inc. | Automatic channel generation for home network systems |
6938101, | Jan 29 2001 | Universal Electronics Inc. | Hand held device having a browser application |
7039643, | Apr 10 2001 | Adobe Systems Incorporated | System, method and apparatus for converting and integrating media files |
7058635, | Oct 30 1998 | Intel Corporation | Method and apparatus for searching through an electronic programming guide |
7231175, | Jun 16 1998 | United Video Properties, Inc. | Music information system for obtaining information on a second music program while a first music program is played |
7240356, | Oct 30 1998 | Intel Corporation | Method and apparatus for displaying differences in the characteristics of multiple versions of an entertainment program |
7260421, | Jul 23 2002 | HARRIS, SCOTT C | Communication device that communicates events using compressed audio information |
7430753, | Mar 27 2002 | AT&T Intellectual Property, I, L.P. | Method to enable cooperative processing and resource sharing between set-top boxes, personal computers, and local devices |
7483958, | Mar 26 2001 | Microsoft Technology Licensing, LLC | Methods and apparatuses for sharing media content, libraries and playlists |
20010004338, | |||
20010026287, | |||
20010039660, | |||
20010042107, | |||
20010043700, | |||
20020010652, | |||
20020046315, | |||
20020059588, | |||
20020059621, | |||
20020059642, | |||
20020069746, | |||
20020070982, | |||
20020078293, | |||
20020082901, | |||
20020104091, | |||
20020113824, | |||
20020166123, | |||
20020174444, | |||
20020180803, | |||
20020188735, | |||
20020194260, | |||
20030035404, | |||
20030046437, | |||
20030068154, | |||
20030110272, | |||
20030135860, | |||
20030149988, | |||
20030214955, | |||
20030220091, | |||
20040117831, | |||
20040184763, | |||
20040255326, | |||
20050028208, | |||
20050039208, | |||
20050155086, | |||
20050227611, | |||
20050246393, | |||
20060004685, | |||
20060080707, | |||
20060259949, | |||
20060291434, | |||
20070162661, | |||
EP932275, | |||
EP1217787, | |||
EP1427148, | |||
JP11341040, | |||
JP2003162444, | |||
JP2003209893, | |||
WO17738, | |||
WO59230, | |||
WO9914945, | |||
WO9935753, | |||
WO9964969, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 04 2002 | Rovi Solutions Corporation | (assignment on the face of the patent) | / | |||
Oct 01 2003 | DOONBOS, JOHN | MEDIABOLIC, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014644 | /0326 | |
Oct 01 2003 | DIETRICH, BRAD | MEDIABOLIC, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014644 | /0326 | |
Oct 01 2003 | TOEMAN, JEREMY | MEDIABOLIC, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014644 | /0326 | |
Oct 01 2003 | DIETRICH, BRAD | MEDIABOLIC, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE MISSPELLING ON NOTICE OF RECORDATION OF ASSIGNMENT DOCUMENT, DATE 10 31 2003, FOR ASSIGNOR JOHN DOORNBOS SEE ATTACHED PREVIOUSLY RECORDED ON REEL 014644 FRAME 0326 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 021082 | /0186 | |
Oct 01 2003 | DOORNBOS, JOHN | MEDIABOLIC, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE MISSPELLING ON NOTICE OF RECORDATION OF ASSIGNMENT DOCUMENT, DATE 10 31 2003, FOR ASSIGNOR JOHN DOORNBOS SEE ATTACHED PREVIOUSLY RECORDED ON REEL 014644 FRAME 0326 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 021082 | /0186 | |
Oct 01 2003 | TOEMAN, JEREMY | MEDIABOLIC, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE MISSPELLING ON NOTICE OF RECORDATION OF ASSIGNMENT DOCUMENT, DATE 10 31 2003, FOR ASSIGNOR JOHN DOORNBOS SEE ATTACHED PREVIOUSLY RECORDED ON REEL 014644 FRAME 0326 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 021082 | /0186 | |
Oct 03 2003 | PUTTERMAN, DANIEL | MEDIABOLIC, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE MISSPELLING ON NOTICE OF RECORDATION OF ASSIGNMENT DOCUMENT, DATE 10 31 2003, FOR ASSIGNOR JOHN DOORNBOS SEE ATTACHED PREVIOUSLY RECORDED ON REEL 014644 FRAME 0326 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 021082 | /0186 | |
Oct 03 2003 | PUTTERMAN, DANIEL | MEDIABOLIC, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014644 | /0326 | |
Dec 20 2006 | MEDIABOLIC, INC | Macrovision Corporation | MERGER SEE DOCUMENT FOR DETAILS | 019466 | /0865 | |
May 02 2008 | INDEX SYSTEMS INC | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 020986 | /0074 | |
May 02 2008 | Gemstar Development Corporation | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 020986 | /0074 | |
May 02 2008 | UNITED VIDEO PROPERTIES, INC | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 020986 | /0074 | |
May 02 2008 | TV GUIDE ONLINE, LLC | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 020986 | /0074 | |
May 02 2008 | STARSIGHT TELECAST, INC | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 020986 | /0074 | |
May 02 2008 | ODS Properties, Inc | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 020986 | /0074 | |
May 02 2008 | Macrovision Corporation | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 020986 | /0074 | |
May 02 2008 | APTIV DIGITAL, INC | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 020986 | /0074 | |
May 02 2008 | GEMSTAR-TV GUIDE INTERNATIONAL, INC | JPMORGAN CHASE BANK, N A | SECURITY AGREEMENT | 020986 | /0074 | |
Oct 01 2009 | Macrovision Corporation | Rovi Solutions Corporation | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 024539 | /0284 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | ROVI SOLUTIONS CORPORATION FORMERLY KNOWN AS MACROVISION CORPORATION | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | ROVI GUIDES, INC FORMERLY KNOWN AS GEMSTAR-TV GUIDE INTERNATIONAL, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | ROVI DATA SOLUTIONS, INC FORMERLY KNOWN AS TV GUIDE DATA SOLUTIONS, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | INDEX SYSTEMS INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | Gemstar Development Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | APTIV DIGITAL, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | All Media Guide, LLC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | ROVI SOLUTIONS LIMITED FORMERLY KNOWN AS MACROVISION EUROPE LIMITED | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | Rovi Technologies Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | STARSIGHT TELECAST, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | TV GUIDE, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | UNITED VIDEO PROPERTIES, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | TV GUIDE ONLINE, LLC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Mar 17 2010 | JPMORGAN CHASE BANK, N A A NATIONAL ASSOCIATION | ODS Properties, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 025222 | /0731 | |
Sep 13 2011 | UNITED VIDEO PROPERTIES, INC , A DELAWARE CORPORATION | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 027039 | /0168 | |
Sep 13 2011 | STARSIGHT TELECAST, INC , A CALIFORNIA CORPORATION | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 027039 | /0168 | |
Sep 13 2011 | ROVI TECHNOLOGIES CORPORATION, A DELAWARE CORPORATION | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 027039 | /0168 | |
Sep 13 2011 | ROVI SOLUTIONS CORPORATION, A DELAWARE CORPORATION | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 027039 | /0168 | |
Sep 13 2011 | ROVI GUIDES, INC , A DELAWARE CORPORATION | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 027039 | /0168 | |
Sep 13 2011 | APTIV DIGITAL, INC , A DELAWARE CORPORATION | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 027039 | /0168 | |
Sep 13 2011 | INDEX SYSTEMS INC, A BRITISH VIRGIN ISLANDS COMPANY | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 027039 | /0168 | |
Sep 13 2011 | GEMSTAR DEVELOPMENT CORPORATION, A CALIFORNIA CORPORATION | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 027039 | /0168 | |
Sep 13 2011 | ROVI CORPORATION, A DELAWARE CORPORATION | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 027039 | /0168 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | INDEX SYSTEMS INC | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | Gemstar Development Corporation | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | APTIV DIGITAL, INC | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | All Media Guide, LLC | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | ROVI Corporation | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | Rovi Guides, Inc | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | Rovi Solutions Corporation | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | Rovi Technologies Corporation | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | STARSIGHT TELECAST, INC | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | TV GUIDE INTERNATIONAL, INC | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | JPMORGAN CHASE BANK, N A , AS COLLATERAL AGENT | UNITED VIDEO PROPERTIES, INC | PATENT RELEASE | 033396 | /0001 | |
Jul 02 2014 | Sonic Solutions LLC | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Jul 02 2014 | Gemstar Development Corporation | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Jul 02 2014 | INDEX SYSTEMS INC | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Jul 02 2014 | Rovi Guides, Inc | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Jul 02 2014 | Rovi Solutions Corporation | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Jul 02 2014 | Rovi Technologies Corporation | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Jul 02 2014 | STARSIGHT TELECAST, INC | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Jul 02 2014 | APTIV DIGITAL, INC | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Jul 02 2014 | Veveo, Inc | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Jul 02 2014 | UNITED VIDEO PROPERTIES, INC | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 033407 | /0035 | |
Nov 22 2019 | Rovi Solutions Corporation | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Nov 22 2019 | Rovi Technologies Corporation | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Nov 22 2019 | Rovi Guides, Inc | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Nov 22 2019 | TIVO SOLUTIONS, INC | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Nov 22 2019 | TIVO SOLUTIONS, INC | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | Veveo, Inc | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 051110 | /0006 | |
Nov 22 2019 | Rovi Technologies Corporation | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | Rovi Solutions Corporation | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | Rovi Guides, Inc | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | Veveo, Inc | HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 051143 | /0468 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | STARSIGHT TELECAST, INC | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | Veveo, Inc | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | Rovi Technologies Corporation | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | Rovi Solutions Corporation | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | INDEX SYSTEMS INC | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | Gemstar Development Corporation | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | APTIV DIGITAL INC | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | Rovi Guides, Inc | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | UNITED VIDEO PROPERTIES, INC | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Nov 22 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | Sonic Solutions LLC | RELEASE OF SECURITY INTEREST IN PATENT RIGHTS | 051145 | /0090 | |
Jun 01 2020 | PHORUS, INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Rovi Technologies Corporation | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Rovi Guides, Inc | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Rovi Solutions Corporation | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | TIVO SOLUTIONS INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | DTS, INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Veveo, Inc | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Invensas Corporation | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | INVENSAS BONDING TECHNOLOGIES, INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | TESSERA ADVANCED TECHNOLOGIES, INC | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | Tessera, Inc | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | iBiquity Digital Corporation | BANK OF AMERICA, N A | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 053468 | /0001 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | Veveo, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | Rovi Guides, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | Rovi Technologies Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | Rovi Solutions Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | Veveo, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | TIVO SOLUTIONS, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | Rovi Guides, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | Rovi Technologies Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | MORGAN STANLEY SENIOR FUNDING, INC | Rovi Solutions Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053481 | /0790 | |
Jun 01 2020 | HPS INVESTMENT PARTNERS, LLC | TIVO SOLUTIONS, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 053458 | /0749 | |
Oct 01 2021 | Rovi Solutions Corporation | ROVI SOLUTIONS LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 069047 | /0372 | |
Aug 15 2022 | ROVI SOLUTIONS LLC | ADEIA SOLUTIONS LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 069047 | /0464 |
Date | Maintenance Fee Events |
Jun 21 2018 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 28 2022 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Jan 06 2018 | 4 years fee payment window open |
Jul 06 2018 | 6 months grace period start (w surcharge) |
Jan 06 2019 | patent expiry (for year 4) |
Jan 06 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 06 2022 | 8 years fee payment window open |
Jul 06 2022 | 6 months grace period start (w surcharge) |
Jan 06 2023 | patent expiry (for year 8) |
Jan 06 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 06 2026 | 12 years fee payment window open |
Jul 06 2026 | 6 months grace period start (w surcharge) |
Jan 06 2027 | patent expiry (for year 12) |
Jan 06 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |