This disclosure is related to media processing systems and methods.
Media devices and systems, such as digital video and audio players, can include multiple functions and capabilities, such as playing stored content, browsing and selecting from recorded content, storing and/or receiving content selected by a user, and the like. These various functions can often be grouped according to content types, e.g., movies, music, television programs, photos, etc.
Disclosed herein are systems and methods for selectively establishing a network connection between a media processing device and a network. A wired network connection is established if a wired network interface, included in the media processing device, is connected to the network. A wireless network connection is established between a wireless network interface, also included in the media processing device, and the network if the wired network interface is disconnected to the network. Addresses may be assigned to the media processing device and protocols may be implemented to establish the network connection.
In other implementations, instructions stored on computer readable media are used to cause a processor to perform the operations comprising: selecting between a wired network interface of a media processing device and a wireless network interface of the media processing device to establish a connection with a network, wherein the selection is based, at least in part, upon determining if the network is connected to the wired network interface.
In another implementation, a media processing device includes a wireless network interface to establish a wireless network connection and a wired network interface to establish a wired network connection. The wired network connection is established if a network is connected to the wired network interface and the wireless network connection is established if the network is disconnected from the wired network interface.
The media processing device 100 also includes a storage device 110 that can be configured to store information including media, configuration data, and operating instructions. The storage device 110 can be any type of non-volatile storage, including a hard disk device or a solid-state drive. For example, media received from an external media server can be stored on the storage device 110. The received media thus can be locally accessed and processed. Further, configuration information, such as the resolution of a coupled display device or information identifying an associated media server, can be stored on the storage device 110. Additionally, the storage device 110 can include operating instructions executed by the processor 105 to control operation of the media processing device 100. In one implementation, the storage device 110 can be divided into a plurality of partitions, wherein each partition can be utilized to store one or more types of information and can have custom access control provisions.
A communication bus 115 couples the processor 105 to the other components and interfaces included in the media processing device 100. The communication bus 115 can be configured to permit unidirectional and/or bidirectional communication between the components and interfaces. For example, the processor 105 can retrieve information from and transmit information to the storage device 110 over the communication bus 115. In an implementation, the communication bus 115 may be comprised of a plurality of busses, each of which couples at least one component or interface of the media processing device 100 with another component or interface.
The media processing device 100 also includes a plurality of input and output interfaces for communicating with other devices, including media servers and presentation devices. A wired network interface 120 and a wireless network interface 125 each can be configured to permit the media processing device 100 to transmit and receive information over a network, such as a local area network (LAN) or the Internet. Additionally, an input interface 130 can be configured to receive input from another device through a direct connection, such as a USB or an IEEE 1394 connection. Other types of input interfaces may also be implemented to receive a user input. For example, an input interface may use touch-based operations, near-contact operations or combinations thereof to receive input. For example, an input interface (e.g., a remote control device) may include a proximity detection mechanism that can sense the presence of an input (e.g., a user's finger). As such, a remote control device may sense an input absent user contact with a surface of the remote control device. In some implementations, a user may use a key board and virtually any suitable pointing device (e.g., mouse, track ball, stylus, touch screen, etc.) for interaction. The pointing device can also be operated by a near contact screen that employs a regional sensing field to detect objects in the proximity.
Further, an output interface 135 can be configured to couple the media processing device 100 to one or more external devices, including a television, a monitor, an audio receiver, and one or more speakers. For example, the output interface 135 can include one or more of an optical audio interface, an RCA connector interface, a component video interface, and a High-Definition Multimedia Interface (HDMI). The output interface 135 also can be configured to provide one signal, such as an audio stream, to a first device and another signal, such as a video stream, to a second device. Further, a memory 140, such as a random access memory (RAM) and/or a read-only memory (ROM) also can be included in the media processing device 100. As with the storage device 110, a plurality of types of information, including configuration data and operating instructions, can be stored in the memory 140.
Additionally, the media processing device 100 can include a remote control interface 145 that can be configured to receive commands from one or more remote control devices (not pictured). The remote control interface 145 can receive the commands through wireless signals, such as infrared and radio frequency signals. The received commands can be utilized, such as by the processor 105, to control media playback or to configure the media processing device 100. Similar to the input interface mentioned above, the remote control interface may receive commands from remote control devices that implement touch-based operations, near-contact operations or combinations thereof.
Further, the media processing device 205 and the local media server 215 can include network connections 235 and 240 respectively, which provide access to a network 245, such as the Internet. In one implementation, the media processing device 205 can communicate with a remote media server 250 and/or a media store 255 over the network 245. For example, a connection can be established between the media processing device 205 and the remote media server 250. The connection can be secure or un-secure. Thereafter, the media processing device 205 can receive media content from the remote media server 250, such as by streaming or downloading.
Similarly, the media processing device 205 can be configured to receive media content from a media store 255. For example, upon establishing a connection, the media processing device 205 can request a list of available media content from the media store 255. The list of available media content can include free content, such as trailers and pod casts, and for-purchase content, such as movies, television programs, and music. Additionally, the media processing device 205 can be configured to communicate with the media store 255 to validate media content, such as by verifying digital rights management information. Other types of media devices and systems may also used.
The media data and related metadata may be provided by a single provider, or may be provided by separate providers. In one implementation, the media processing system 300 can be configured to receive media data from a first provider over a first network, such as a cable network, and receive metadata related to the video data from a second provider over a second network, such as a wide area network (WAN). Example media data include video data, audio data, content payload data, or other data conveying audio, textual and/or video data.
In another implementation, the media processing system 300 can be configured to receive media data and metadata from a computing device, such as a personal computer. In one example of this implementation, a user manages one or more media access accounts with one or more content providers through the personal computer. For example, a user may manage a personal iTunes® account with iTunes® software, available from Apple Computer, Inc. Media data, such as audio and video media data, can be purchased by the user and stored on the user's personal computer and/or one or more data stores. The media data and metadata stored on the personal computer and/or the one or more data stores can be selectively pushed and/or pulled for storage in the data store 302 of the media processing system 300.
In another implementation, the media processing system 300 can be used to process media data stored in several data stores in communication with a network, such as wired and/or wireless local area network (LAN), for example. In one implementation, the media processing system 300 can pull and/or receive pushed media data and metadata from the data stores over the network for presentation to a user. For example, the media processing system 300 may be implemented as part of an audio and video entertainment center having a video display device and an audio output device, and can pull media data and receive pushed media data from one or more data stores for storage and processing. At the entertainment center, a user can, for example, view photographs that are stored on a first computer while listening to music files that are stored on a second computer.
In one implementation, the media processing system 300 includes a remote control device 308. The remote control device 308 can include a rotational input device 310 configured to sense touch actuations and generate remote control signals therefrom. The touch actuations can include rotational actuations, such as when a user touches the rotational input device 310 with a digit and rotates the digit on the surface of the rotational input device 310. The touch actuations can also include click actuations, such as when a user presses on the rotational input device 310 with enough pressure to cause the remote control device 308 to sense a click actuation.
In one implementation, the functionality of the media processing system 300 is distributed across several engines. For example, the media processing system 300 may include a controller engine 312, a user interface (UI) engine 314, and one or more media engines 316-1, 316-2, and 316-n. The engines may be implemented in software as software modules or instructions, or may be implemented in hardware, or in a combination of software and hardware.
The control engine 312 is configured to communicate with the remote control device 308 by a link, such as a wireless infrared signal or radio frequency signal. The remote control device 308 can transmit remote control signals generated, for example, from touch actuations of the rotational input device 310 to the control engine 312 over the link. In response, the control engine 312 is configured to receive the remote control signals and generate control signals in response. The control signals are provided to the processing device 304 for processing.
The control signals generated by the control engine 312 and processed by the processing device 304 can invoke one or more of the UI engine 314 and media engines 316-1-316-n. In one implementation, the UI engine 314 manages a user interface to facilitate data presentation for the media engines 316-1-316-n and functional processing in response to user inputs.
In one implementation, the media engines 316 can include one or more content-specific engines, such as a movies engine, television program engine, music engine, and the like. Each engine 316 can be instantiated to support content-specific functional processing. For example, a movie engine to support movie-related functions can be instantiated by selecting a “Movies” menu item. Example movie-related functions include purchasing movies, viewing movie previews, viewing movies stored in a user library, and the like. Likewise, a music engine to support music-related functions can be instantiated by selecting a “Music” menu item. Example music-related functions include purchasing music, viewing music playlists, playing music stored in a user library, and the like.
The media processing system 300 of
The rotational input device areas 360, 362, 364, 366 and 368 are receptive to press actuations. In one implementation, the areas include a menu area 360, a reverse/previous area 362, a play/pause area 364, a forward/next area 366, and a select area 368. The areas 360-368, in addition to generating signals related to their descriptive functionalities, can also generate signals for context-dependent functionality. For example, the menu area 360 can generate signals to support the functionality of dismissing an onscreen user interface, and the play/pause area 364 can generate signals to support the function of drilling down into a hierarchal user interface. In one implementation, the areas 360-368 comprise buttons disposed beneath the surface of the rotational input device 310. In another implementation, the areas 360-368 comprise pressure sensitive actuators disposed beneath the surface of the rotational input device 310.
The processing device 350 is configured to receive the signals generated by the rotational input device 310 and generate corresponding remote control signals in response. The remote control signals can be provided to the communication subsystem 352, which can wirelessly transmit the remote control signals to the media processing system 300.
Although shown as comprising a circular surface, in another implementation, the rotational input device 310 can comprise a rectangular surface, a square surface, or some other shaped surface. Other surface geometries that accommodate pressure sensitive areas and that can sense touch actuations may also be used, e.g., an oblong area, an octagonal area, etc.
Other actuation area configurations may also be used. For example, in another implementation, the remote control device 308 can also include a separate actuation button 370. In this implementation, the areas comprise a “+” or increase area 360, a reverse/previous area 362, a “−” or decrease area 364, a forward/next area 366, a play/pause area 368, and a menu area 370.
The media data can be received through the network 412 by one of the computing devices, such as computing device 408. The network 412 can include one or more wired and wireless networks, such as the Internet. The media data is provided by one or more content providers 414. For example, the content provider 414-1 may provide media data that is processed by the media processing system 300 and output through the output devices 404, and the content provider 414-2 may provide metadata related to the media data for processing by the media processing system 300. Such metadata may include episodic content, artist information, and the like. A content provider 414 can also provide both media data and related metadata.
In one implementation, the media processing system 300 can also communicate with one or more content providers 414 directly. For example, the media processing system 300 can communicate with the content providers the wireless network 402, the I/O device 403, and the network 412. The media processing system 300 can also communicate with the content providers 414 thorough other network configuration, e.g., through a direct connection to a cable modem, through a router, or through one or more other communication devices. Example communications can include receiving sales information, preview information, or communications related to commercial transactions, such as purchasing audio files and video files.
In another implementation, the media processing system 300 can receive content from any of the computing devices 406 and 408, and other such computing devices or data stores 410 available on the network 402 through sharing. Thus, if any one or more of the computing devices or data stores are unavailable, media data and/or meta data one the remaining computing devices or other such computing devices or data stores can still be accessed.
Referring also back to
Referring back to
If a wired network connection is present, the process disables any previously established wireless network connection (in step 508) and uses the wired network connection to establish a communication link. Alternatively, if a wired network connection is absent, the process disables any previously established wired network connection (in step 506) and uses the wireless network connection to establish a communication link. In some arrangements, the media processing device 205 may present information on a display device (e.g., a television, a computer monitor, a game console, a hand held portable device, etc.) that describes the current wired or wireless network connection. For example, in
Upon determining if a wired connector is connected to the media processing device 205, and thereby determine whether to establish a wired or wireless network connection, the process identifies the network in step 510. One or more operations may be executed for network identification. For example, an address may be assigned to the media processing device 205 or a previously assigned address may be identified. A network may also be selected to establish a wired or wireless connection with the media processing device 205. For a wired connection, typically one network connects to the media processing device 205, however, in some scenarios one network may be selected from a list of networks connected by the wired network connection. Similarly, one of numerous wireless networks may be selected for a wireless connection with the media processing device 205.
Address assignment may be provided, for example, from the connected network, a device connected to the network or manually by a user. In
In
Upon assigning an address to the media processing device 205, identification of the network (step 510) may also include selecting a network. Typically, a wired network connection (e.g., Ethernet connection) connects to a single network while a wireless network connection allows the media processing device 205 to connect with one of multiple wireless networks. In
Referring back to
In
Referring back to
Operations of the process also include establishing a communication link with the selected network over the wired or wireless network connection (as determined by the process) in step 518. For example, if a wired network connection is used, signaling and data exchanging (e.g., handshaking) may be executed to establish a communication link. Similarly, wireless signaling and data exchanging may be executed to establish a communication link over a wireless network connection. The process may return to step 502 for continued and repeated monitoring of the wired network connection.
The apparatus, methods, flow diagrams, and structure block diagrams described in this patent document can be implemented in computer processing systems including program code comprising program instructions that are executable by the computer processing system. Other implementations can also be used. Additionally, the flow diagrams and structure block diagrams described in this patent document, which describe particular methods and/or corresponding acts in support of steps and corresponding functions in support of disclosed structural means, can also be utilized to implement corresponding software structures and algorithms, and equivalents thereof.
The apparatus, methods, flow diagrams, and structure block diagrams described in this patent document can be implemented in computer processing systems including program code comprising program instructions that are executable by the computer processing system. Other implementations can also be used. Additionally, the flow diagrams and structure block diagrams described in this patent document, which describe particular methods and/or corresponding acts in support of steps and corresponding functions in support of disclosed structural means, can also be utilized to implement corresponding software structures and algorithms, and equivalents thereof.
The methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by one or more processors. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform methods described herein.
The systems and methods may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions for use in execution by a processor to perform the methods' operations and implement the systems described herein.
The computer components, software modules, functions and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that software instructions or a module can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code or firmware. The software components and/or functionality may be located on a single device or distributed across multiple devices depending upon the situation at hand.
This written description sets forth the best mode of the invention and provides examples to describe the invention and to enable a person of ordinary skill in the art to make and use the invention. This written description does not limit the invention to the precise terms set forth. Thus, while the invention has been described in detail with reference to the examples set forth above, those of ordinary skill in the art can effect alterations, modifications and variations to the examples without departing from the scope of the invention.