Media sink device input identification

Described herein are systems and methods for identifying which input of a sink device a source device is coupled to. The source devices provide content and are coupled to the sink devices which present at least a portion of the content. The source device provides a predetermined reference signal to the sink device. Selection of a plurality of inputs on the sink device is initiated until an emitted signal from the sink device which is based on the reference signal is detected by a sensor coupled to the source device. Once detected, the selected input may be associated with the source device. The source device may then use the associated input for automatic configuration of the sink device during future presentation of content.

BACKGROUND

A wide variety of media devices are available for consumers to use for the consumption of content. Some of the media devices may be “source devices” which provide content to another device. Source devices include set-top boxes, Blu-ray® players, cable interface boxes, game consoles, satellite broadcast receivers, radio receivers, and so forth. Some of the media devices may be “sink devices” which present content or a portion of the content received from a source device. Media devices such as televisions and audio/video receivers (“AVR”) are sink devices which output images and sounds, respectively.

Each sink device may have more than one input. For example, a television may have five inputs while an AVR may have three. These inputs may be provided to facilitate connection with several of the different source devices. For example, the five inputs of the television may be connected to different source devices such as a set-top box, Blu-ray® player, cable interface box, game console, and a satellite broadcast receiver. The sink device is configured to present data received at one of the inputs from the source device. For example, to present content provided by the set-top box, the television is set to the input corresponding to the set-top box. Continuing the example, to present content from the game console, a different input of the sink device is selected. Incorrect selection of the input on the sink device may result in an adverse user experience, such as preventing the user from consuming content. Traditionally, this has required additional configuration by the user.

Certain implementations and embodiments will now be described more fully below with reference to the accompanying figures, in which various aspects are shown. However, various aspects may be implemented in many different forms and should not be construed as limited to the implementations set forth herein. Like numbers refer to like elements throughout.

DETAILED DESCRIPTION

Media source devices (“source devices”) provide content to media sink devices (“sink devices”) for presentation. Source devices may include set-top boxes, Blu-ray® players, cable interface boxes, game consoles, satellite broadcast receivers, radio receivers, and so forth. Sink devices may include televisions and audio/video receivers (“AVR”) which output images and sounds, respectively.

Each sink device may have more than one input. For example, a television may have five inputs. These inputs may be provided to facilitate connection with several of the different source devices. For example, the five inputs of the television may be connected to different source devices such as a set-top box, Blu-ray® player, cable interface box, game console, and a satellite broadcast receiver. The sink device is configured to present data received at the inputs from one or more of the source devices. Typically the sink device presents a single input, although in some implementations the sink device may be configured to present multiple inputs simultaneously. For example, where the sink device is a television, it may be configured to present a first input as the primary image from source device and a second input from a second source device as an inset image, such as a picture-in-picture. For ease of illustration and not as a limitation, this disclosure assumes presentation of data or content from a single input.

The source device and the sink device are communicatively coupled to one another with a device interface. For example, the device interface may comprise the high definition multimedia interface (“HDMI”). As mentioned previously, some sink devices may have more than one device interface input. The inputs may be unconnected, or connected to one or more different source devices. When a particular source device tries to provide content using the device interface, the sink device needs to be configured to present the content received on the input which corresponds to that sink device. For example, when the set-top box is attempting to present video while plugged into input 1 of the television, the television needs to be set to input 1. Similarly, when the Blu-ray® player is attempting to present video while plugged into input 2 of the television, the television needs to be set to input 2.

Some sink devices may be unable to provide data to the source device as to which of the inputs on the sink device is currently being used for presentation. As a result, the source device is unaware of whether content which is being sent to the sink device is actually being presented. This may result in an adverse user experience, such as the user being unable to see or hear the output from the source device. Traditionally, this has required manual user intervention, such as a user manually selecting various inputs with a remote control.

Described in this disclosure are methods and systems for automatically identifying media sink device inputs and building input association data which relates a particular input of the sink device as being connected to the source device. The input association data may then be used to automatically select the appropriate input for a particular sink device during presentation of content.

The source device is configured to send a reference signal using the device interface to the sink device. The source device initiates selection of one of the plurality of inputs on the sink device. Once an input is selected, the source device uses one or more input devices to detect an emitted signal, which is based at least in part on the reference signal. For example, the reference signal may comprise a particular audio waveform which may be presented as the emitted signal by the speakers of the sink device. In this example, the input device may comprise a microphone coupled to the source device.

When the emitted signal is not detected, the source device may initiate selection of other inputs on the sink device, until the emitted signal is detected. When the emitted signal is detected, the source device may relate the selected input with the sink device to build the input association data. Once the input association data is available, the source device may select the appropriate input on the sink device to present content without further testing.

Using these techniques, the overall user experience while consuming content may be improved. The user may easily initiate presentation of content, and the presentation of that content may be assured.

Illustrative System

FIG. 1is an illustrative system100for input switching identification. A user102is depicted with a sink device104to consume content. While a single user102is shown, more than one user102may consume content at a given time, such as where multiple users102are watching the presented content together.

The sink device104(or “sink device”) may include media output devices such as televisions, projectors, or other displays, audio/video receivers (“AVR”), rendering devices, audio output devices, haptic output devices, and so forth. Illustrated here is a sink device104(1) comprising a television and a sink device104(2) comprising an AVR. Each sink device104includes one or more inputs106(1),106(2), . . . ,106(N). For example, in this illustration, the sink device104(1) includes inputs106(1)-(5) while the sink device104(2) includes inputs106(6)-(8). The inputs106may be physical inputs such as discrete physical connectors, or the inputs106may be virtual such as different streams of data transferred on a common data bus or channel. The input references in this disclosure are unique for illustrative purposes only. For example, the inputs106may simply be designated as input 1, 2, 3, and so forth. The combination of a particular sink device104and the input106may be considered unique in some implementations.

Each input106is associated with one or more device interfaces108. The device interface108may be a High Definition Multimedia Interface (“HDMI”) as promulgated by HDMI Licensing LLC, TOSLINK® as promulgated by Toshiba Corp., Ethernet, analog video, analog audio, IEEE 1394 as promulgated by the Institute for Electrical and Electronics Engineers, Universal Serial Bus as promulgated by the USB Implementers Forum, Bluetooth® as promulgated by the Bluetooth Special Interest Group, ZigBee® as promulgated by the ZigBee Alliance, and so forth. In some implementations, the sink device104may support different types of inputs106. For example, the inputs106(1)-(3) of the sink device104may support HDMI, while the input106(4) supports USB 3.0, and the input106(5) supports analog audio and video. The sink device104includes one or more mechanisms for switching between the different inputs106.

The inputs106of the sink device104are connected by the device interface108to one or more source devices110. For example, the television may be connected to the set-top box and the Blu-ray® player. The source device110may include a communication module112, an input identification module114, an input association data116, and a presentation module118.

The communication module112is configured to establish and support communications between the source device110and one or more sink devices104, other source devices110, and other devices. For example, the communication module112may execute instructions which support transmission of data according to the HDMI specification.

The input identification module114is configured to determine a particular input106on the sink device104which results in the presentation of content. Based on the determination, the input identification module114generates the input association data116. The input identification module114may determine the input106coupled to the source device110by initiating changes to the inputs106currently selected on the sink device104while applying a signal along the device interface108and monitoring for this signal. Operation of the input identification module114is discussed below in more detail.

The input association data116is information about one or more relationships between a particular sink device104and a particular input106of that sink device104. In one implementation, the input association data116may comprise a data structure such as a table illustrated here with a sink device identifier (“sink device ID”) and a sink device input. In this illustration, the input association data116indicates that the source device110(1) is able to present content on the sink device104(1) when the sink device104(1) is set to use input106(3). Likewise, the sink device104(2) is able to present content from the source device110(1) when set to input106(2).

The communication module112may be configured to access the input association data116to setup for presentation of content or other information such as user interface data to the sink device104. For example, the communication module112may receive a request for presentation of content on the sink device104(2). Based at least in part on this request, the input association data116may be accessed to determine that the sink device104(2) needs to be configured to use input106(7) for presentation to occur. The communication module112may initiate selection of the input106(7) on the sink device104(2) using a variety of methods. For example, the communication module112may send commands along the device interface108to the sink device104(2) to change to the sink device104(2) to the input106(7). The source device110is discussed in more detail below with regard toFIG. 7.

The system100may include a remote control120. The remote control120may include a remote control module122, an input module124, and one or more input devices126. The remote control module122is configured to generate control signals which are configured to initiate one or more operations on one or more of the sink device104, the source device110, and so forth. The remote control module122is configured to communicate with the source device110such that data may be exchanged between the two devices. The input module124is configured to acquire data from the one or more input devices126and provide at least a portion of that data to the source device110. The input devices126may include one or more of a camera126(1), a microphone (“mic”)126(2), and so forth.

Returning to the input identification module114, a reference signal128may be delivered to the sink device104at the input106using the device interface108. The reference signal128may comprise audio, video, still images, or other information which is configured for rendering by the sink device104. The sink device104renders the reference signal128and generates an emitted signal130. The emitted signal130may be a sound produced by a speaker, a picture presented by a display device, and so forth. The emitted signal130is discussed in more detail below with regard toFIG. 2.

The one or more input devices126in the remote control120or another device may be configured to detect at least a portion of the emitted signal130. The input devices126may provide a received data132, which may include the emitted signal130, to the source device110. When the source device110receives the received data132, the input identification module114may associate the current input106of the sink device104with the sink device104to build the input association data116.

The source device110may couple to one or more networks134. In some implementations, other devices such as the sink device104may also couple to the one or more networks134. The one or more networks134may include one or more public networks such as the Internet, private networks, or a combination of both, which are configured to transfer data between devices. The network134in turn couples to a server136. While a single server136is depicted, in some implementations, the server136or the functions attributed to the server136may be provided by a plurality of devices, such as where the server136is a virtualized server executing across a plurality of physical servers.

The server136may provide functions such as streaming content to the source device110for presentation, authenticating user accounts, providing content lists, and so forth. In some implementations, the server136may provide information about the sink devices104which may be used when providing the reference signal128. For example, the server136may provide information indicating the presentation capabilities such as resolution, color depth, frame rate, audio frequency response, and so forth of the sink device104. This information may be used to configure the reference signal128to generate a particular emitted signal130within the presentation capabilities of the sink device104. For example, where the sink device104uses a monochrome electrophoretic display capable of ten updates per second, a monochrome reference signal at 10 frames per second or less may be used.

FIG. 2illustrates a schematic diagram200of the emitted signals130, which may be received by a sensor or other input device126to associate the input106of the sink device104with the source device110. As described above, the sink device104may have more than one input106. In this illustration, the sink device104(1) has five inputs106(1)-106(5) while the sink device104(2) has three inputs106(6)-(8). The sink device104may have inputs106of different types. For example, on the sink device104(1), the input106(1) may be an HDMI interface, while the input106(5) is an analog video interface. In comparison, the sink device104(2) which is an AVR may use HDMI for inputs106(6)-(7) while the input106(8) is a TOSLINK® optical connection.

The sink device104may be configured to present the reference signal128, which is received at the input106. Different inputs106may be selected. For example, the remote control120may send an infrared signal which, when received by the sink device104, selects a particular input106. Once an input106has been selected, the data which is provided to the input106may be presented.

In this illustration, the sink device104(1) comprises a display device, which provides a visual emitted signal130(1) comprising one or more images202(1),202(2), . . . ,202(V). These images202may be detected at least in part by the input devices126, such as the camera126(1). The received data132may include at least a portion of the images202, and is provided to the source device110for processing by the input identification module114to determine a correspondence with the reference signal128(1).

The reference signal128is configured to be presented at least in part by the sink device104. Data about presentation capabilities, such as that retrieved from the server136, may be used to select or generate a particular reference signal128. The reference signal128is configured to generate a particular emitted signal130upon presentation by the sink device104. The reference signal128may be configured to generate an emitted signal130which includes one or more of audio, video, or haptic output. The reference signal128and the corresponding images202which comprise the emitted signal130may depict a solid color, a particular pattern, a known reference image, a sample of content, or the content itself. For example, the reference signal128(1) may be configured to render alternating frames of all blue and all green with a particular duration for each. In another example, the reference signal128may be configured to render a two-dimensional barcode.

The reference signal128(1) and the images202may be rendered such that they are imperceptible or minimally perceptible to a user102. For example, the sink device104display may be presenting images202with a refresh rate of 60 frames per second. The reference signal128(1) may be injected into a stream of content being presented, such that the reference signal128(1) is presented during every 30thframe. The user102may be unable to see the resulting emitted signal130(1) due to the duration, which is below a perceptual threshold. In some implementations, the reference signal128(1) may be embedded, encoded, or interspersed into content that is being provided to the sink device104for presentation.

Also illustrated is the sink device104(2) comprising an AVR configured to receive a reference signal128(2) and provide an audio emitted signal130(2). The reference signal128(2) may be configured to generate an emitted signal130(2) which is a single tone, sequence of tones, pre-determined waveform, audio clip, and so forth. For example, in one implementation, the reference signal128(2) may be configured to generate a pure tone of 261 Hertz when rendered by the sink device104(2) to form an acoustic signal204.

The reference signal128(2) and the corresponding emitted signal130(2) may be audible or inaudible to the user102. For example, the reference signal128(2) may be configured to produce an ultrasonic or infrasonic acoustic signal204. Similar to above, the reference signal128(2) may be embedded, encoded, or interspersed with content which is sent to the sink device104(2). The emitted signal130(2) may be modulated in amplitude, frequency, phase, and so forth.

The emitted signals130are configured to be detected by the one or more input devices126. For example, the emitted signal130(2) is configured to be within the detection range of the microphone126(2).

FIG. 3illustrates a schematic300of changing inputs106by sending infrared signals. These infrared signals may encode one or more commands. An input106of the sink device104associated with the source device110may be determined by detecting at least a portion of the reference signal128in the received data132. In this illustration, the source device110does not have information indicating which of the inputs106on the sink device104(1) it is coupled to. As a result, the input identification module114may be used to associate a particular input106on the sink device104with the source device110.

At302, the sink device104(1) is depicted as a display or other image presentation device. The source device110(1) is sending the reference signal128(1) to the sink device104(1) using the device interface108. Selection of an input106is initiated by sending a “set input 1” command304to the sink device104(1) using the remote control120. This command304may be transmitted as one or more of an optical signal, a radio frequency signal, or an acoustic signal. For example, the remote control120may use an infrared transmitter to send the “set input 1” command304. Based at least in part on the received command304, the sink device104(1) sets the input106(1) to active. As shown in this illustration, because no source device110is connected to the input106(1), a “no input” message is presented by the sink device104(1).

In this illustration and those following, the “set input” commands are depicted as specifying a particular input106. In some implementations, the set input may be non-specific to a particular input106. For example, the “set input” command may be configured to step through all inputs106sequentially.

The remote control120provides a received data132(1) to the source device110(1). For example, the camera126(1) input device may provide an image of a portion of the room in which the remote control120is in. Because the received data132(1) does not correspond with the reference signal128(1), the input identification module114of the source device110(1) may initiate selection of another input106.

At306, a “set input 2” command308is sent by the remote control120to the sink device104(1). Based at least in part on the received command308, the sink device104(1) sets the input106(2) to active. As shown in this illustration, the source device110(2) is providing video for a movie, which is presented by the sink device104(1) now that the input106(2) associated with the source device110(2) is selected.

As described above, the remote control120provides a received data132(2) to the source device110(1). Continuing the example, the camera126(1) may provide an image of the sink device104(1) and the picture of a cowboy therein. As described above, because the received data132(2) does not correspond with the reference signal128(1), the input identification module114of the source device110(1) may initiate selection of another input106.

At310, a “set input 3” command312is sent by the remote control120to the sink device104(1). Based at least in part on the received command312, the sink device104(1) sets the input106(3) to active. As shown in this illustration, the source device110(1) which is providing the reference signal128(1) is coupled to the input106(3). With the input106(3) now designated as the active input, the emitted signal130(1) rendered from the reference signal128(1) is presented by the sink device104(1).

As described above, the remote control120provides a received data132(3) to the source device110(1). Continuing the example, the camera126(1) may provide an image of the display of the sink device104(1) and the picture of the emitted signal130(1) which is based on the reference signal128(1). At least a portion of the received data132(3) corresponds with the reference signal128(1). Based on this correspondence, the input identification module114of the source device110(1) may generate input association data116which relates the sink device104(1) and the input106(3).

In this disclosure, the received data132is depicted as being generated by the remote control120. In other implementations, other devices may provide the received data132. For example, the source device110(1) may have one or more input devices126. Also, while the remote control120is depicted as sending the commands304,308, and312, in some implementations, the commands may be transmitted by the source device110(1). For example, the source device110(1) may have an infrared transmitter or a radio frequency transmitter configurable to communicate with the sink device104(1).

While the selection of the inputs106is depicted as incremental in this disclosure, in other implementations, other sequences of the input106selection may be used. For example, the inputs106may be selected in reverse order106(5), (4), (3), (2), (1), randomly, or in another sequence.

FIG. 4illustrates a schematic400of changing inputs106using a command sent using the device interface108and determining an input106of the sink device104associated with the source device110by detecting an emitted signal130comprising an image202. As described above, in this illustration, the source device110(1) does not have information indicating which of the inputs106on the sink device104(1) it is coupled to. As a result, the input identification module114may be used to associate a particular input106(1)-(5) on the sink device104(1) with the source device110(1).

At402, the sink device104(1) is depicted as a display or other image presentation device. The source device110(1) is sending the reference signal128(1) to the sink device104(1) using the device interface108. Selection of an input106is initiated by sending a “set input 1” command404to the sink device104(1) using the device interface108. This command404may be transmitted as one or more of an optical or electrical signal. For example, the source device110(1) may send a “set input 1” command404compliant with the Consumer Electronics Control (“CEC”) standard along the HDMI. Based at least in part on the received command404, the sink device104(1) sets the input106(1) to active. As shown in this illustration, because no source device110is connected to the input106(1), a “no input” message is presented by the sink device104(1).

As described above inFIG. 3, the remote control120provides the received data132(1) to the source device110(1). Because the received data132(1) does not correspond with the reference signal128(1), the input identification module114of the source device110(1) may initiate selection of another input106.

At406, a “set input 2” command408is sent by the remote control120to the sink device104(1). Based at least in part on the received command408, the sink device104(1) sets the input106(2) to active. As described above, the source device110(2) is providing video for a movie, which is presented by the sink device104(1) now that the input106(2) associated with the source device110(2) is selected.

As described above, the remote control120provides the received data132(2) to the source device110(1). Because the received data132(2) does not correspond with the reference signal128(1), the input identification module114of the source device110(1) may initiate selection of another input106.

At410, a “set input 3” command412is sent by the remote control120to the sink device104(1). Based at least in part on the received command412, the sink device104(1) sets the input106(3) to active. As shown in this illustration, the source device110(1) which is providing the reference signal128(1) is coupled to the input106(3). With the input106(3) now designated as the active input, the emitted signal130(1) rendered from the reference signal128(1) is presented by the sink device104(1).

As described above, the remote control120provides the received data132(3) to the source device110(1). Based on this correspondence between the received data132(3) and the reference signal128(1), the input identification module114of the source device110(1) may generate input association data116which relates the sink device104(1) and the input106(3).

FIG. 5illustrates a schematic diagram500of changing inputs106using an infrared command and determining an input106of the sink device104associated with the source device110by detecting the acoustic204emitted signal130(2). In this illustration, the source device110(1) does not have information indicating which of the inputs106on the sink device104(2) it is coupled to. As a result, the input identification module114may be used to associate a particular input106(6)-(8) on the sink device104(2) with the source device110(1).

At502, the sink device104(2) is depicted as an AVR or audio presentation device. The source device110(1) is sending the reference signal128(2) to the sink device104(2) using the device interface108. Selection of an input106is initiated by sending a “set input 1” command504to the sink device104(1) using the remote control120. This command504may be transmitted as one or more of an optical signal, a radio frequency signal, or an acoustic signal204. For example, the remote control120may use an infrared transmitter to send the “set input 1” command504. Based at least in part on the received command504, the sink device104(2) sets the input106(6) to active. As shown in this illustration, the source device110(3) is providing audio to the input106(6).

As described above, the remote control120provides a received data132(4) to the source device110(1). Continuing the example, the microphone126(2) may provide audio information which may include a portion of the audio content provided by the source device110(3). As described above, because the received data132(4) does not correspond with the reference signal128(2), the input identification module114of the source device110(1) may initiate selection of another input106.

At506, a “set input 2” command508is sent by the remote control120to the sink device104(2). Based at least in part on the received command508, the sink device104(2) sets the input106(7) to active. As shown in this illustration, the source device110(1) which is providing the reference signal128(2) is coupled to the input106(7). With the input106(7) now designated as the active input, the emitted signal130(2) rendered from the reference signal128(2) is presented by the sink device104(2).

As described above, the remote control120provides a received data132(5) to the source device110(1). Continuing the example, the microphone126(2) may provide audio data that includes the emitted signal130(2), which is based on the reference signal128(2). At least a portion of the received data132(5) corresponds with the reference signal128(2). Based on this correspondence, the input identification module114of the source device110(1) may generate input association data116which relates the sink device104(2) and the input106(7).

FIG. 6illustrates a schematic600of changing inputs106using a device interface108command and determining an input106of the sink device104associated with the source device110by detecting an acoustic204emitted signal130. As described above, in this illustration, the source device110(1) does not have information indicating which of the inputs106(6)-(8) on the sink device104(2) it is coupled to. As a result, the input identification module114may be used to associate a particular input106(6)-(8) on the sink device104(2) with the source device110(1).

At602, the sink device104(2) is depicted as an AVR or audio presentation device. The source device110(1) is sending the reference signal128(2) to the sink device104(2) using the device interface108. Selection of an input106is initiated by sending a “set input 1” command604to the sink device104(2) using the device interface108. Based at least in part on the received command604, the sink device104(2) sets the input106(6) to active. As shown in this illustration, the source device110(3) is providing audio to the input106(6).

As described above, the remote control120provides a received data132(4) to the source device110(1). As above, because the received data132(4) does not correspond with the reference signal128(2), the input identification module114of the source device110(1) may initiate selection of another input106.

At606, a “set input 2” command608is sent to the sink device104(2) using the device interface108. Based at least in part on the received command608, the sink device104(2) sets the input106(7) to active. As shown in this illustration, the source device110(1) which is providing the reference signal128(2) is coupled to the input106(7). With the input106(7) now designated as the active input, the emitted signal130(2) rendered from the reference signal128(2) is presented by the sink device104(2).

As described above, the remote control120provides a received data132(5) to the source device110(1). At least a portion of the received data132(5) corresponds with the reference signal128(2). Based on this correspondence, the input identification module114of the source device110(1) may generate input association data116which relates the sink device104(2) and the input106(7).

The operations ofFIGS. 3-6may be combined to test permutations of device configuration. The sink devices104may be daisy-chained or have other configurations in which the output of one sink device104is determined at least in part by an input selection of an intermediate device. For example, the source device110(1) may couple to the television sink device104(1) which may in turn be coupled to the AVR sink device104(2). In some configurations, in order for the reference signal128(2) to be emitted by the sink device104(2), the sink device104(1) may need to be configured on the input106corresponding to the source device110(1).

The input identification module114may be configured to adjust the inputs106of the sink devices104to test the various input permutations which may result from a daisy-chain or other configuration. Continuing the example of the sink device104(2) coupled to the sink device104(1), the input identification module114may be configured to set the sink device104(2) to use input106(6) and step through the inputs106(1)-(5). Should the emitted signal130not be detected, the sink device104(2) may be set to use the next input106(7), and the inputs106(1)-(5) may again be stepped through. This process may be continued until the combination that results in the emitted signal130is attained.

FIG. 7illustrates a block diagram700of a source device110configured to support input switching identification. The source device110may include one or more processors702configured to execute one or more stored instructions. The processors702may comprise one or more cores. The source device110may include one or more input/output (“I/O”) interface(s)704to allow the source device110to communicate with other devices. The I/O interfaces704may comprise inter-integrated circuit (“I2C”), serial peripheral interface bus (“SPI”), USB, RS-232, media device interface such as HDMI, and so forth

The I/O interface(s)704may couple to one or more I/O devices706. The I/O devices706may include input devices126such as one or more of a camera, a microphone, a touch sensor, a button, and so forth. The I/O devices706may also include output devices such as one or more of a display, a printer, audio speakers, haptic output device, and so forth. In some embodiments, the I/O devices706may be physically incorporated with the source device110or may be externally placed.

The source device110may also include one or more communication interfaces708. The communication interfaces708are configured to provide communications between the source device110and other devices. The communication interfaces708may include personal area networks, wireless local area networks, wireless wide area networks, and so forth. The source device110may communicate with the remote control120using one or more of the communication interfaces708. For example, the source device110may communicate with the remote control120using a Bluetooth® personal area network.

As described above, one or more of the device interfaces108are also present in the source device110. The device interfaces108allow for the exchange of information between the source device110and the sink device104. The device interface108may include one or more of a HDMI, TOSLINK®, Ethernet, analog video, analog audio, IEEE 1394, USB, Bluetooth®, ZigBee®, and so forth. The device interfaces108may allow for wired or wireless communication between the source device110and one or more sink devices104or other media devices.

The source device110may also include one or more busses or other internal communications hardware or software that allow for the transfer of data between the various modules and components of the source device110.

As shown inFIG. 7, the source device110includes one or more memories710. The memory710comprises one or more computer-readable storage media (“CRSM”). The CRSM may be any one or more of an electronic storage medium, a magnetic storage medium, an optical storage medium, a quantum storage medium, a mechanical computer storage medium, and so forth. The memory710provides storage of computer readable instructions, data structures, program modules, and other data for the operation of the source device110.

The memory710may include at least one operating system (“OS”) module712. The OS module712is configured to manage hardware resource devices such as the I/O interfaces704, the I/O devices706, the communication interfaces708, the device interfaces108, and provide various services to applications or modules executing on the processors702. Also stored in the memory710may be the communication module112, the input identification module114, and the presentation module118.

The communication module112, as described above, is configured to establish and support communications between the source device110and one or more sink devices104, other source devices110, and other devices. The communication module112may utilize the communication interfaces708, the device interfaces108, or both to communicate with external devices. For example, the communication module112may establish communications with the remote control120using one of the communication interfaces708and with the sink device104using the device interface108.

The input identification module114is configured to determine a particular input106on the sink device104which results in the presentation of content. For example, as described above with regard toFIGS. 3-6, a known reference signal128may be provided to the sink device104while various inputs106of the sink device104are selected. The input devices126of the remote control120may be used to detect the emitted signal130, which is based on the reference signal128. Based on this determination, a determination may be made which associates the selected input106to the sink device104for presentation. Based on the determination, the input identification module114generates the input association data116. This is discussed in more detail below with regard toFIG. 9.

The presentation module118is configured to present content or other information such as a user interface on the sink device104. The presentation module118may be configured to receive streamed content from an external source such as a server136, or which has been previously stored on the source device110.

Other modules714may be stored in the memory710. For example, a digital rights management module may work in conjunction with the presentation module118to facilitate access to content.

The memory710may also include a datastore716to store information. The datastore716may use a flat file, database, linked list, tree, or other data structure to store the information. In some implementations, the datastore716or a portion of the datastore716may be distributed across one or more other devices including servers136, network attached storage devices, and so forth.

The datastore716may store a reference signal waveform718, or other information suitable for generating the reference signal128. The received data132and the input association data116may also be stored in the datastore716. As described above, the source device110may be configured to access the input association data116and configure the sink device104to a previously identified input106on the sink device104to enable presentation.

Infrared command data720may be stored within the datastore716. The infrared command data720comprises information suitable for use in generated particular infrared commands which, when received and processed by the sink device104or another device, cause one or more actions on the sink device104or the other device. For example, the infrared command data720may store a particular infrared waveform which is associated with the commands “set input 1”304, “set input 2”308, and so forth. The infrared command data720, or a portion thereof, may be provided to the remote control120for transmission to the sink device104.

Similarly, the datastore716may store device interface command data722. The device interface command data722comprises information suitable for use in generating particular commands for transmission on the device interface108which, when received and processed by the sink device104or another device coupled to the device interface108, causes one or more actions on the sink device104or the other device. For example, the device interface command data722may store a particular instruction sequence which is associated with the commands “set input 1”604, “set input 2”608, and so forth. The source device110may access the device interface command data722and send the commands using the device interface108to initiate selection of a particular input106, or take other actions.

The datastore716may contain other data724, such as previously stored content, user preferences, and so forth.

FIG. 8illustrates a block diagram800of the remote control120configured to support input switching identification. The remote control120may include one or more processors802configured to execute one or more stored instructions. The processors802may comprise one or more cores. The remote control120may also include one or more I/O interface(s)804to allow the remote control120to communicate with other devices. The I/O interfaces804may comprise I2C, SPI, USB, RS-232, and so forth.

The I/O interface(s)804may couple to one or more I/O devices806. The I/O device(s)806may include the input devices126such as one or more of the camera126(1), the microphone126(2), buttons126(3), a touch sensor, and so forth. In some implementations other devices126(N) may be used to acquire light signals, such as a charge coupled device strip detector, photosensor, and so forth. For example, a photosensor may be used to detect a sequence of the images202(1),202(2), . . . ,202(K) which are based on the reference signal128and configured to generate an emitted signal130(1) that is a sequence of single color screens.

The I/O devices806may also include output devices808such as one or more of an infrared emitter808(1), a speaker808(2), and other devices808(O) such as a display, a haptic output device, and so forth. In some embodiments, the I/O devices806may be physically incorporated with the remote control120or may be externally placed.

The remote control120may also include one or more communication interfaces810. The communication interfaces810are configured to provide communications between the remote control120and other devices such as the source device110and the sink device104. The communication interfaces810may include optical transmitters, optical receivers, personal area networks, wireless local area networks, wireless wide area networks, and so forth. The remote control120may communicate with the sink device104using one or more of the communication interfaces810. For example, the remote control120may use an optical communication interface810to send infrared commands to the sink device104.

The remote control120may also include one or more busses or other internal communications hardware or software that allow for the transfer of data between the various modules and components of the remote control120.

As shown inFIG. 8, the remote control120includes one or more memories812. The memory812comprises one or more CRSM. The memory812provides storage of computer readable instructions, data structures, program modules, and other data for the operation of the remote control120.

The memory812may include at least one OS module814. The OS module814is configured to manage hardware resource devices such as the I/O interfaces804, the I/O devices806and808, the communication interfaces810, and provide various services to applications or modules executing on the processors802. Also stored in the memory812may be the remote control module122and the input module124.

The remote control module122is configured to communicate with the source device110such that data may be exchanged between the two devices. For example, the remote control module122may accept input from the input devices126and provide this information to the source device110using the communication interfaces810. The remote control module122may also be configured to generate control signals which are configured to initiate one or more operations on one or more of the sink device104, the source device110, and so forth. For example, the remote control module122may receive instructions from the source device110to transmit the infrared command304to “set input 1” on the sink device104(1).

Other modules816may be stored in the memory812. For example, a user interface module may be configured to present a user interface on a display output device808.

The memory812may also include a datastore818to store information. The datastore818may use a flat file, database, linked list, tree, or other data structure to store the information. In some implementations, the datastore818or a portion of the datastore818may be distributed across one or more other devices, such as the source device110.

The datastore818may store the received data132. For example, the input module124may activate the camera126(1) and store data which is representative of the images acquired by the camera126(1). In another example, the input module124may activate the microphone126(2) and store data which is representative of the sounds detected by the microphone126(2). The received data132may be provided to the source device110using the device interface108.

The datastore818may include infrared command data720, such as described above. The infrared command data720may be used by the remote control module122to generate infrared commands for transmission using the communication interface810.

The datastore818may also contain other data822, such as user preferences, radio frequency command data, communication protocol information, and so forth.

In some implementations, the functionality of the remote control120may be provided by a device such as a tablet computer, smartphone, or other device which is capable of independent operation. For example, the user102may connect their tablet computer to the source device110using a Wi-Fi® wireless local area network connection, personal area network, and so forth. This independent operation may allow for the performance of functions other than remotely controlling a sink device104or a source device110. For example, the tablet computer may be used for word processing, messaging, and so forth.

Illustrative Processes

FIG. 9is a flow diagram900of a process of input switching identification and generating input association data116. This process may be implemented at least in part by the input identification module114which may execute on the source device110.

Block902receives a request to send content to the sink device104. For example, the user102may wish to view a movie on the display sink device104(1). The sink device104may also be described as a media output device, because in some implementations, the sink device104may include televisions, AVRs, projectors, and so forth, which are configured to present information to the user102.

Block904determines that the sink device104having a plurality of inputs106is coupled to the device interface108. For example, the source device110may receive a hot plug indication on the device interface108, which implements HDMI, from the sink device104. In some implementations, this determination may include identification of the sink device104.

Block906initiates selection of one of the plurality of inputs106of the sink device104. The initiating selection may include issuing one or more commands configured to, upon receipt and processing by the sink device104, change the active input106of the sink device104. The initiated selection may be specific to an input106, such as “set input 1” or may be non-specific, such as “set to next input.” Three methods of initiating selection are illustrated here, but it is understood that other methods may be used. The methods described in blocks906(1)-(3) may be used alone or in combination with one another.

Block906(1) may initiate selection of one of the plurality of inputs106of the sink device104by transmitting one or more commands. These commands may be transmitted as infrared signals. The one or more commands are configured to, upon receipt and processing by the sink device104, change the input106of the sink device104from one input106to another. For example, a particular input selection command may be retrieved from the infrared command data720.

Block906(2) may initiate selection of one of the plurality of inputs106of the sink device104by transmitting one or more commands on the device interface108. The one or more commands are configured to, upon receipt and processing by the sink device104, change the input106of the sink device104from one input106to another. For example, the CEC command for “set input 1” may be retrieved from the device interface command data722and sent along the HDMI device interface108to the sink device104.

Block906(3) causes the presentation of a user prompt to the user102to change the input106of the sink device104from one input106to another. For example, where the display sink device104(1) is being configured, and audio prompt instructing the user102to change the input106may be delivered by the audio sink device104(2), or by the speaker808(2) in the remote control120. In some implementations where the make, model, or other identifying information about the sink device104is known, instructions specific to that make or model may be provided.

Block908sends a reference signal128to the sink device104using the device interface108. The reference signal128is configured to cause the sink device104to generate the emitted signal130when processed by the sink device104. As described above, the reference signal128may comprise video data, audio data, or both. For example, the reference signal128(1) configured to generate the images202comprising video of a sequence of different colors may be sent over the HDMI device interface108. The reference signal128may comprise one or more of audio, video, or still images. For example, the reference signal128may comprise the sequence of different colors and a particular audio tone.

In another implementation, the action of block908may be based at least in part on the receipt of the request. For example, receipt of a request to send content may trigger the sending of the reference signal128.

In one implementation, an additional block may receive a user input from the remote control120, and the action of block908may be based at least in part on the user input. For example, the user102may press a button126(3) on the remote control120to initiate configuration of the source device110.

In still another implementation, the action of block908may be based at least in part on a block determining a change in the state of the sink device104on the device interface108. For example, the hot plug detect may indicate coupling of the sink device104(1) to the source device110(1) using the HDMI type of device interface108.

Block910receives data from one or more of the input devices126. For example, the received data132may include image data from the camera126(1), audio data from the microphone126(2), or both. The received data132may be indicative of the emitted signal130. The reference signal128, corresponding emitted signal130, and the input devices126are configured to be complementary, such that the input devices126are capable of detecting the reference signal128and corresponding emitted signal130under operating conditions.

In some implementations, the input device126may comprise a portable computer communicatively coupled to the source device110. The portable computer may include a display and a touch sensor, and one or more of a camera or a microphone.

Block912analyzes the received data132to determine presence of at least a portion of an emitted signal130from the sink device104based on the reference signal128. For example, the images202may be processed to determine presence of particular colors in a particular sequence. In another example, the acoustic signal204may be processed to look for a particular audio tone.

When block912determines no emitted signal130is present in the received data132, the process proceeds to block914. Block914initiates selection of a different input106of the sink device104. For example, an infrared command may be transmitted, a command may be sent on the device interface108, or the user102may be prompted to change the input106of the sink device104(1). The process may then proceed to a point at or before block912. For example, the process may proceed to the block912for the analysis of the received data132.

When block912determines at least a portion of the emitted signal130is present in the received data132, the process proceeds to block916. Block916designates the selected input106of the sink device104as coupled to the device interface108of the source device110. For example, if the block906set the sink device104(1) to use the input106(3), the input106(3) is designated as being the input106which is connected to the sink device104(1).

Block918stores the designation as the input association data116. For example, the input association data116may now include an entry with a sink device ID of104(1) and a sink device input of 3, or106(3).

Block920sends the content to the sink device104. Now that the process has set the sink device104to the input106which is receiving the data from the source device110, presentation may proceed.

FIG. 10is a flow diagram1000of a process of using the input association data116to select an input106of a sink device104. This process may be implemented at least in part by the presentation module118which may execute on the source device110.

Block1002receives a request to send content to the sink device104using a device interface108. For example, the user102may use the remote control120to select a piece of music to play on the AVR sink device104(2).

In an alternative implementation, block1002may receive data indicating a user interface or portion thereof is to be presented to the user102. For example, the source device110may have been rebooted and now is configured to present a graphical menu to the user102using a display sink device104.

Block1004accesses input association data116. As described above, the input association data116may comprise one or more relationships between a particular sink device104and a particular input106of that sink device104.

Block1008, based at least in part on the available input association data116, determines the input106of the sink device104. Continuing the example, the sink device104input106associated with the entry for the sink ID of104(2) in the input association data116is the input106(7).

Block1010initiates selection of the determined input106of the sink device104. For example, the operations described in blocks906(1)-(3) may be used to set the sink device104(2) to have the input106(7) active.

Block1012confirms operability of the input selection. Operability may be confirmed by sending the reference signal128and determining the presence of at least a portion of the emitted signal130from the sink device104which is based on the reference signal128. For example, an image202, tone, or both, may be presented and detected. As described above, in some implementations, a portion of the content to be presented by the sink device104may be used as the reference signal128.

Block1014sends the content to the sink device104using the device interface108. Continuing the example, the sink device104(2) is now configured and ready to present the content from the source device110(1).

Returning to block1006, when the input association data116is unavailable for the sink device104, as shown by block1016, the process may proceed to the process900described above with regard toFIG. 9. Once the input106of the sink device104has been identified, it may be added to the input association data116and used to configure the sink device104for presentation.

In another implementation, operability of a current input106may be confirmed after receiving the request of the block1002. Should operability fail, such as when the input106is not correctly set or the configuration has changed, the process may proceed to block1004.

Those having ordinary skill in the art will readily recognize that certain steps or operations illustrated in the figures above can be eliminated or taken in an alternate order. Moreover, the methods described above may be implemented as one or more software programs for a computer system and are encoded in a computer readable storage medium as instructions executable on one or more processors.

The computer-readable storage medium can be any one of an electronic storage medium, a magnetic storage medium, an optical storage medium, a quantum storage medium, and so forth. Separate instances of these programs can be executed on or distributed across separate computer systems. Thus, although certain steps have been described as being performed by certain devices, software programs, processes, or entities, this need not be the case, and a variety of alternative implementations will be understood by those having ordinary skill in the art.

Additionally, those having ordinary skill in the art will readily recognize that the techniques described above can be utilized in a variety of devices, environments, and situations.

Although the present disclosure is written with respect to specific embodiments and implementations, various changes and modifications may be suggested to one skilled in the art, and it is intended that the present disclosure encompass such changes and modifications that fall within the scope of the appended claims.