Patent Description:
Content streaming is becoming more and more commonplace. Mobile devices, display devices, and other computing devices are rapidly evolving to accommodate the desire of users to stream content on their devices. As this technology improves, users may wish to stream multiple content items on one device, or stream multiple content items on multiple different devices. For example, users may wish to switch between two close football games that are approaching the end of each game. However, current techniques only allow for a single content stream at a device. In order to switch to a different content stream, a request is sent through a router to a server for the new content, and the new content is then sent back through the router to the requesting device. Then, the requesting device buffers the new content stream for display. These delays cause frustration for users, who desire fast and efficient switching between different items of content. These frustrations are aggravated with live streaming broadcasts, because the live event does not stop to wait for the delays following a user's request to switch to the new item of content. <CIT> discloses an information processing apparatus like a TV receiver where a division unit allocates apparatuses frame when instruction of segmenting and displaying screen drawn in drawing unit with several apparatuses is received.

This document describes techniques and apparatuses for multiple-device media swap. By providing display devices with immediate access to multiple items of video content, users are no longer required to wait for requests to be sent, processed, and the requested video content to be buffered for display once it finally arrives at a display device. Instead, multiple items of video content are already being streamed to the display device to enable instantaneous switching between the multiple items of video content. By so doing, wait times when swapping between items of video content, even on multiple devices, are eliminated such that users no longer miss portions of video content when swapping.

The invention is defined according to the appended claims.

This summary is provided to introduce simplified concepts concerning multiple-device media swap, which is further described below in the Detailed Description. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.

Aspects of multiple-device media swap are described with reference to the following Figures. The same numbers may be used throughout to reference like features and components that are shown in the Figures:.

Multiple-device media swap is described, and the features enable a user to switch between multiple items of video content displayed on multiple devices while minimizing the wait time when a media swap is requested. The different devices can receive the multiple items of video content by way of one or a combination of various techniques, which are described in more detail below. Based on the way that the multiple items of video content are received at the different devices, different techniques may be used to swap from a first video content to a second video content in a manner that minimizes both wait time and enhances a user's experience when watching the multiple items of video content on the different devices.

In aspects of multiple-device media swap, a mobile device implemented as a first screen device in a video content viewing system displays first video content on an integrated display of the device, and receives second video content without displaying the second video content. The first screen device continues to receive the second video content, without displaying the second video content, while the first video content is received and displayed. The first screen device can initiate an instruction to swap from displaying the first video content to displaying the second video content on the integrated display of the device. The instruction also initiates a first screen device of the video content viewing system that is receiving both the first and second video content to swap from displaying the second video content to displaying the first video content.

The receipt of the first video content and the second video content at the two devices, and the subsequent switching of the display between the two video contents, may be implemented in various manners. In a first implementation, the mobile device (e.g., the first screen device) and the television display device (e.g., the second screen device) each receive two content streams from a video content service provider via a router in a network in which the devices are connected for wireless communication. A first content stream of the first video content is distributed to the mobile device, and a same first content stream of the first video content is distributed to the television display device. Similarly, a second content stream of the second video content is distributed to the mobile device, and a same second content stream of the second video content is distributed to the television display device. As discussed above, even though both content streams are being received at both of the devices, only one content stream is displayed on either device at any given time. Upon receiving the instruction to swap, each device switches from the video content that is currently being displayed to the alternate video content, and continues to receive both of the content streams of the video content.

In a second implementation, the mobile device and the television display device each receive one content stream from the video content service provider. However, in this case, the single content stream is made up of the first video content and the second video content. The single content stream can be customized by the video content service provider to include different items of content as the first video content and the second video content. Even though the mobile device receives both the first video content and the second video content in the single stream, a viewport on the integrated display of the mobile device limits the display of the content stream to the first video content. The second video content is outside of the viewable area of the viewport of the mobile device, and is therefore not viewable by the user. Similarly, a viewport of the television display device limits the display of the content stream to the second video content, and the first video content is outside of the viewable area of the viewport of the television display device. Upon receiving the instruction to swap, the mobile device and the television display device translate their respective viewports such that the mobile device displays the second video content and hides the first video content, and the television display device displays the first video content and hides the second video content.

In a third implementation, the computing device receives one content stream from the video content service provider, and the television display device receives two content streams from the video content service provider. Similar to the second implementation described above, the mobile device and the television display device is this example each receive a content stream that is made up of the first video content and the second video content. However, the television display device also receives another content stream of only the first video content, and displays the first video content from this additional content stream. The first video content displayed on the television display device may be displayed at a high resolution, for example.

The mobile device displays the content stream with both the first and second video content so that the user can view both the first video content and the second video content at the same time on the integrated display of the mobile device. The mobile device can receive a user input, such as a touch input on the display to select the second video content, and an instruction to swap the video content being displayed on the television display device is initiated. Upon receiving the instruction to swap the display of the video content, the television display device switches to the content stream that includes both the first and second video content, but only displays the second video content in the viewport of the television display device and the first video content is no longer displayed. When this switch occurs, the second video content may be displayed at a lower resolution to accommodate the first and second video content arriving at the television display device in the single content stream.

Additionally in response to the instruction to swap received at the mobile device to swap the display of the video content on the television display device, a request can be sent to the video content service provider to send a content stream with the second video content to the television display device in place of the content stream that only includes the first video content. When the content stream with the second video content is received at the television display device, the content stream with the second video content can replace the content stream that includes the first and second video content on the display, such as at a higher resolution. This technique allows for nearly instantaneous switching between the first and second video content, with only a small delay for display of a higher resolution content stream that includes the second video content.

While features and concepts of multiple-device media swap can be implemented in any number of different devices, systems, networks, environments, and/or configurations, aspects of multiple-device media swap are described in the context of the following example devices, systems, and methods.

<FIG> illustrates an example video content viewing system <NUM> in which aspects of multiple-device media swap can be implemented with a mobile device <NUM> and a television display device <NUM>. The example system <NUM> includes the mobile device <NUM>, shown as a mobile phone, and generally referred to herein as the first screen device of the system. The example system also includes the television display device <NUM>, shown as being remote from the mobile device <NUM>, and generally referred to herein as the second screen device in the system. Although generally referred to as a television or television device, the television display device <NUM> represents any type of display panel, display device, computer display, smart television, and the like that can receive, process, and display streaming video content, such as live television content and recorded video content. Further, the mobile device <NUM> is representative of any type of computing device that may be utilized as a second screen device in the video content viewing system <NUM>, such as described with reference to the computing device shown in <FIG>.

The mobile device <NUM> and the television display device <NUM> can be configured to communicate with one another through any available communication technique. For example, the mobile device <NUM> and the television display <NUM> can be configured to send and receive signals from different wireless radio systems, such as for Wi-Fi, Bluetooth™, Mobile Broadband, LTE, or other wireless communication system or format.

Further, any combination of computing devices may be used in the example system <NUM>, such as tablets, desktop computers, laptop computers, projection display devices, wearable devices, and so forth. As detailed in the system description shown in <FIG>, the mobile device <NUM> and/or the television display device <NUM> can display a content viewing interface <NUM> of a content display application that is implemented by a computing device. For example, many different types of computer applications utilize or implement content viewing features or functions that provide for viewing, recording, pausing, rewinding, zooming, or even editing video content, such as live streaming applications, video on demand (VOD) applications, social networking applications, video security applications, and so on. The content viewing interface <NUM> may take a variety of forms providing various functionalities, which can be based on the particular device on which the content viewing interface <NUM> is displayed. The content viewing interface <NUM> can be implemented, for example, by a software application maintained by an operating system of the television display device <NUM> and/or the mobile device <NUM>. In another example, the content viewing interface <NUM> can be implemented by a software application maintained by an operating system of a streaming device (not pictured) connected to the television display device <NUM>.

In this example system <NUM>, the content viewing interface <NUM> on the integrated display of the mobile device <NUM> displays a first video content <NUM>, such as a streaming live video, for instance. Similarly, the content viewing interface <NUM> on the television display device <NUM> displays a second video content <NUM>, which may also be a live video stream. While the respective devices <NUM> and <NUM> are displaying these two different video contents <NUM> and <NUM>, a user may wish to swap the video content that is being displayed on each of the respective devices with each other. For example, the user may be watching the fencing match in the second video content <NUM> on the television display device <NUM>, which may go on for some amount time. The user is also interested in the weightlifting event that is being streamed on the mobile device <NUM> in the first video content <NUM>, but is aware that the lifts in the weightlifting event take place intermittently and only last several seconds each. The user may then notice that a lift is about to take place in the first video content <NUM> on the mobile device <NUM>, and the user can swap which device is displaying the first video content <NUM>, such as to have the lift displayed on the larger screen of the television display device <NUM> rather than on the smaller screen of the mobile device <NUM>.

To initiate the media swap, the user can select a user-selectable control <NUM> that is displayed in the content viewing interface <NUM> on the mobile device <NUM>. In the system depicted at <NUM>, the user-selectable control <NUM> is only present in the content viewing interface <NUM> of the mobile device <NUM>; however, the user-selectable control may be implemented on any suitable device as part of multiple-device media swap. The user-selectable control <NUM> may be configured as an icon that is selectable in a touch interface, such as in the mobile device <NUM>. The user-selectable control may, alternatively or additionally, be another type of control input, such as a button on a remote control, a button on keyboard, an icon selectable using a mouse in a user interface, and so forth.

An indication <NUM> of the media swap is communicated from the mobile device <NUM> to the television display device <NUM>. The indication <NUM> is a signal communicated between the mobile device <NUM> and the television display device <NUM> via one or more of the communication channels discussed above, such as wireless radio systems, Wi-Fi, Bluetooth™, Mobile Broadband, LTE, or any other wireless communication system or format. The indication <NUM> is sent upon the receipt of the selection of the user-selectable control <NUM>. The indication <NUM> causes the first video content <NUM> to be displayed on the television display device <NUM> in place of the second video content <NUM>, and causes the second video content <NUM> to be displayed on the mobile device <NUM>.

In one example, the media swap is executed by the mobile device <NUM> switching from presenting the first video content <NUM> being delivered to the mobile device in a first content stream to displaying the second video content <NUM>, which is also being delivered to the mobile device in a second content stream, but is not displayed after being delivered to the mobile device. Similarly, the television display device <NUM> receives both the first video content <NUM> and the second video content <NUM> in two separate content streams, but only presents the second video content <NUM> initially. Thus, the selection of the user-selectable control <NUM> causes the mobile device <NUM> to swap from presenting the first video content <NUM> being received in the first content stream to presenting the second video content <NUM> being received in the second content stream approximately instantaneously, without having to send a request to a remote server to fetch the second video content <NUM>. Further, the indication <NUM> sent from the mobile device <NUM> to the television display device <NUM> can be a relatively small amount of data communicated between the two devices, because only an indication is needed to instruct the television display device <NUM> to swap from presenting the second video content <NUM> and present the first video content <NUM>, rather than sending an entire video stream or content stream from one device to the other. According to techniques described herein, the television display device <NUM> is already receiving both a content stream containing the first video content <NUM> and a content stream containing the second video content <NUM>. Upon receiving the indication <NUM>, the television display device swaps from presenting the second video content <NUM> being received in the second content stream to presenting the first video content <NUM> being received in the first content stream approximately instantaneously, without having to send a request to a remote server to fetch the first video content <NUM>.

In the example depicted in the system <NUM>, the weightlifting event displayed in the first video content <NUM> will be displayed on the television display device <NUM> in place of the fencing shown in the second video content <NUM>. Further, when the user selects the user-selectable control <NUM>, the content interface <NUM> on the mobile device <NUM> will switch from displaying the first video content <NUM> to display the second video content <NUM> so that the user can continue to watch the fencing match on the mobile device <NUM>. In this example, the user may want to switch back to watching the fencing match of the second video content <NUM> when the lift of the first video content <NUM> is complete. The user can again select the control <NUM> to swap which device is displaying the first video content <NUM> and the second video content <NUM>, returning the fencing match to be displayed on the television display device <NUM> and the weightlifting event to be displayed on the mobile device <NUM>.

In alternative implementations, the weightlifting event of the first video content <NUM> may continue to be displayed on the mobile device <NUM> in response to the control <NUM> being selected by the user. Both the mobile device <NUM> and the television display device <NUM> continue to receive both the first video content <NUM> and the second video content <NUM> in respective content streams as described above, but in this example, the user may wish to have the weightlifting event of the first video content <NUM> displayed on both devices at once. In another example, a different instance of video content, other than the first video content <NUM> or the second video content <NUM>, may replace the first video content <NUM> that is being displayed on the mobile device <NUM> when the control <NUM> is selected. Alternative implementations, including these examples, may be configured by the user in an application that presents the content viewing interface <NUM>, giving users the ability to customize how many content streams the mobile device <NUM> and the television display device <NUM> receive and what actions take place in response to selection of the control <NUM>.

<FIG> illustrates another example <NUM> of multiple-device media swap implemented with a tablet <NUM> and a television <NUM> shown in this example. Similar to the discussion of <FIG>, however, any combination of devices may be used in addition to or in place of the tablet <NUM> and the television <NUM>. Additionally, the tablet <NUM> and/or the television <NUM> can display a content viewing interface <NUM> of a computer application that is implemented by a computing device. Like the discussion of the content viewing interface <NUM> of <FIG>, the content viewing interface <NUM> can be implemented, for example, by a software application maintained by an operating system of the television <NUM> and/or the tablet <NUM>. In another example, the content viewing interface <NUM> can be implemented by a software application maintained by an operating system of a streaming device (not pictured) connected to the television <NUM>. In this example <NUM>, the content viewing interface <NUM> of the tablet <NUM> has been adapted to suit the characteristics and capabilities of the tablet. The content viewing interface <NUM> displays a first video content <NUM>(a)-(d) on the integrated display of the tablet <NUM>. As discussed in greater detail below, the first video content <NUM> can be a single content stream received from a video content service provider, or can be four separate content streams received from the video content service provider. The first video content <NUM> can be live streaming videos, recorded on-demand video content, or a combination of different types of video content. The content viewing interface <NUM> of the television <NUM> also displays a second video content <NUM>.

In this example <NUM>, the user may be watching several events that are happening simultaneously, such as is common when the Olympics are taking place. Hoping to watch every event during the Olympics, the user may choose to have track and field in the second video content <NUM> displayed on the television <NUM>, with four other live events displayed in the first video stream <NUM>(a)-(d). Upon conclusion of the particular track and field event in the second video content <NUM>, the user may want to watch a different sport on television <NUM> while there is a break in the action in track and field. Using a touch screen of the tablet <NUM>, the user can select the golf event that is taking place in the first video content <NUM>(d) to be swapped with the track and field event on television <NUM>.

An indication <NUM> of the media swap is communicated to the television <NUM>, which causes the golf event of the first video content <NUM>(d) to be displayed on the television <NUM> in place of the track and field in the second video content <NUM>. Similar to the indication <NUM> of <FIG>, the indication <NUM> is a signal communicated between the tablet <NUM> and the television <NUM> via one or more of the communication channels discussed above, such as wireless radio systems, Wi-Fi, Bluetooth™, Mobile Broadband, LTE, or any other wireless communication system or format. In this case, the indication <NUM> includes an expression of not only the user's desire to swap between different media content items, but also which media content item is desired to be displayed on the television <NUM>. The indication <NUM> can be communicated in response to the user selecting the golf event that is taking place in the first video content <NUM>(d) on a touch screen of the tablet <NUM>, for instance.

In one example, the tablet <NUM> can receive a single content stream that includes the four items of video content <NUM>(a)-(d). The single content stream can be generated by a remote service provider (not pictured), and customized by the user to include desired items of video content. At the same time, the television <NUM> can receive two content streams: a first content stream that includes the second video content <NUM> which is present on a display of the television <NUM>; and a second content stream that includes the items of video content <NUM>(a)-(d) generated by the remote service provider, without presenting this content stream initially. When the tablet <NUM> receives the user selection of the golf event of the first video content <NUM>(d), the indication <NUM> sent from the tablet to the television <NUM> causes the television to switch from presenting the second video content <NUM> to presenting the golf event of the first video content <NUM>(d) included in the second content stream.

Rather than displaying all four items of video content <NUM>(a)-(d) included in the second content stream in response to the instruction to swap, the television can "zoom in" to the video content <NUM>(d) such that only the video content <NUM>(d) is visible in the display area of the television <NUM>. While this may cause the video content <NUM>(d) to be displayed at a lower resolution, this allows the swap between the items of media content to happen approximately instantaneously because the second content stream is already present at the television <NUM>. Additionally in response to the user selection of the video content <NUM>(d) by the user, another request can be sent either by the tablet <NUM> or the television <NUM> for a single content stream containing only the video content <NUM>(d) from the service provider. When this single content stream that contains only the video content <NUM>(d) is received at the television <NUM>, it can replace the lower-resolution version of the video content <NUM>(d) on the display of the television <NUM> automatically. While the user may experience a few moments of resolution loss of the video content <NUM>(d) while the request for a single stream containing the video content <NUM>(d) is sent, the swap between different items of video content is still executed approximately instantaneously such that the user does not miss any video experience.

In implementations, the track and field in the second video content <NUM> may replace the golf in the first video content <NUM>(d) in the content viewing interface <NUM> on the tablet <NUM>. This may occur by the service provider generating a new custom content stream to deliver to the tablet <NUM> in response to the request to swap items of video content, although any combination of the techniques described herein may be used to implement replacing the golf event in the first video content <NUM>(d) with the second video content <NUM> on the content viewing interface <NUM> of the tablet <NUM>. In this case, the user can easily tell when another track and field event is about to start, and can select the track and field using the touch screen of the tablet <NUM> to again display the track and field content on the television <NUM>. Alternatively or in addition, the user may wish to select one of the other events in the first video content <NUM>(a)-(c) to be displayed on the television <NUM>, and can do so using the touch screen of the tablet <NUM>. Upon selection of one of the other events in the first video content <NUM>(a)-(c), an indication <NUM> of the media swap is communicated to the television <NUM> based on the selected event in the first video content <NUM>(a)-(c), and the selected event is displayed on the television <NUM>.

<FIG> illustrates an example system <NUM> for implementing multiple-device media swap including a service provider <NUM> (e.g., a video content service provider), a network <NUM>, a router device <NUM>, a mobile phone <NUM>, and a television <NUM>. Although a mobile phone <NUM> and a television are detailed in the example system <NUM>, any of the devices described herein may be implemented in the example system <NUM>. The mobile phone <NUM> and the television <NUM> may be communicatively coupled via the router <NUM> and the network <NUM> to the service provider <NUM>. The service provider <NUM> enables the mobile phone <NUM> and the television <NUM> to access and interact with various resources <NUM> made available by the service provider <NUM>. The television <NUM> may be communicatively coupled to the router directly (e.g., via an Ethernet connection), through a Wi-Fi connection, or via a streaming device attached to the television in order to access the service provider <NUM> by way of the network <NUM>. Further, the mobile phone <NUM> and the television <NUM> are communicatively coupled to one another via one or more of the communication channels discussed above, such as wireless radio systems, Wi-Fi, Bluetooth™, Mobile Broadband, LTE, or any other wireless communication system or format.

The resources <NUM> can include any suitable combination of content and/or services typically made available over a network by one or more service providers. For instance, content can include various combinations of text, video, advertisements, audio, multi-media streams, animations, images, webpages, and the like. Some examples of services include, but are not limited to, a content viewing service, an online computing service (e.g., "cloud" computing), an authentication service, web-based applications, a file storage and collaboration service, a search service, messaging services such as email, text, and/or instant messaging, and a social networking service. The resources <NUM> can also include video content <NUM> and video content <NUM> as shown.

As shown in the example system <NUM>, the video content <NUM> can be distributed from the service provider <NUM> via the network <NUM> to the router <NUM> as a first set of two content streams <NUM>. That is, the first two content streams <NUM> with the same content in each content stream are sent from the service provider <NUM> to the router <NUM> via the network <NUM>. Similarly, the video content <NUM> can be distributed from the service provider <NUM> via the network <NUM> to the router <NUM> using a second two content streams <NUM>. While two content streams are depicted in the example system <NUM>, any number of content streams may be distributed from the service provider <NUM>, according to a number of devices in a system implementing multiple-device media swap, a number of video content items selected to be streamed by a user, and so forth.

The first two content streams <NUM> and the second two content streams <NUM> can be received at the router <NUM> approximately simultaneously. Once the four content streams <NUM> and <NUM> arrive at the router <NUM>, the router <NUM> can direct particular content streams to the different devices that are in communication with the router <NUM>. In particular, the router <NUM> directs one content stream including a first item of video content to each available device, a second content stream including a second item of video content to each available device, and so on. In this way, each device included in a system receives individual content streams for each requested item of video content. In this example, the router <NUM> directs one of the first two content streams <NUM> to the mobile phone <NUM> and directs the other one of the first two content streams <NUM> to the television <NUM>. The router <NUM> also directs one of the second two content streams <NUM> to the mobile phone <NUM> and the other one of the second two content streams <NUM> to the television <NUM>.

Even though the mobile phone <NUM> and the television <NUM> are each receiving two different content streams, the mobile phone <NUM> and the television <NUM> display only one of the two streams. For example, the mobile phone <NUM> only displays the first content stream <NUM> that contains the video content <NUM>, such as the weightlifting event. The second content stream <NUM> that contains the video content <NUM> is not displayed at the mobile phone <NUM>. Similarly, the television <NUM> only displays the second content stream <NUM> that contains the video content <NUM>, such as the fencing match. The first content stream <NUM> that contains the video content <NUM> is not displayed at the television <NUM>.

In aspects, the content streams that are received by the mobile phone <NUM> and the television <NUM>, but that are not being displayed, can be removed from memory of the mobile phone before being processed or buffered. For example, when both content streams <NUM> and <NUM> arrive at the mobile phone <NUM>, only the first content stream <NUM> is directed to memory of the mobile phone <NUM>. The second content stream <NUM> is received at the mobile phone <NUM>, but is not buffered for processing and display. The first content stream <NUM> continues to be buffered and output on the integrated display of the mobile phone <NUM>. Only storing and buffering one of the two content streams at the mobile phone <NUM> reduces the processing resources needed to display the video content <NUM>. In a similar fashion, only the second content stream <NUM> is stored in memory of the television <NUM> and buffered, while the first content stream <NUM> that is not being displayed is not buffered after being received at the television <NUM>.

Providing two different video content items using four streams allows for immediate switching between the two video content items. This technique eliminates the need to send a request from a device to the service provider <NUM> through the network, wait for the request to be answered, and then process and buffer the received video content. As noted above with reference to the example described in <FIG>, the user can select the user-selectable control <NUM> to swap the first video content <NUM> that is displayed on the mobile device <NUM> with the second video content <NUM> that is displayed on the television display device <NUM>. Using the techniques described with reference to <FIG> to distribute video content to the mobile phone <NUM> and to the television <NUM>, this swap of video content can take place immediately because both sets of video content are already being streamed to both the mobile phone <NUM> and to the television <NUM>.

Particularly, when a request to swap is received, the mobile device <NUM> is able to terminate processing and buffering the first video content <NUM> at the next frame that was going to be processed and buffered. Then, the mobile device <NUM> replaces the first video content <NUM> with the second video content <NUM> at the next frame of the second video content <NUM> that is received and begins processing and buffering the second video content <NUM> for display on the mobile device. Similarly, the television display device <NUM> terminates processing and buffering of the second video content <NUM> at the next frame that was going to be processed and buffered at the television display device when the television display device receives the indication <NUM> to swap. Then, the television display device <NUM> replaces the second video content <NUM> with the first video content <NUM> at the next frame of the first video content <NUM> that is received and begins processing and buffering the first video content <NUM> for display on the television display device. This is especially useful when streaming live video content, as users do not want to miss parts of the live content while waiting for the arrival of requested content on their devices after a media swap has been initiated.

If the user does choose to swap between the video content <NUM> and the video content <NUM> in the example system <NUM>, both of the devices can switch from one stream to another to display. For example, the mobile phone <NUM> can start with displaying the video content <NUM> using the first content stream <NUM>. In response to a request to swap video content, the mobile phone <NUM> displays the video content <NUM> using the second content stream <NUM>. In a similar fashion, the television <NUM> can begin by displaying the video content <NUM> using the second content stream <NUM>, and in response to the indication to swap video content received from the mobile phone <NUM>, display the video content <NUM> using the first content stream <NUM>. After the mobile phone <NUM> and the television <NUM> swap which content each are displaying, both devices <NUM> and <NUM> continue to receive both content streams <NUM> and <NUM>. Accordingly, if the user decides to switch back to the original configuration of which device displays which content, this can take place without either device having to request content, wait for content to be received, process, and buffer the respective video content for each device.

<FIG> illustrates another example system <NUM> for implementing multiple-device media swap. The example system <NUM> includes the service provider <NUM>, network <NUM>, router device <NUM>, mobile phone <NUM>, and television <NUM> as described in relation to the example system <NUM>. As discussed above, the mobile phone <NUM> and the television <NUM> may be communicatively coupled via the router <NUM> and the network <NUM> to the service provider <NUM>. The service provider <NUM> enables the mobile phone <NUM> and the television <NUM> to access and interact with various resources <NUM> made available by the service provider <NUM>, including but not limited to the video content <NUM> and the video content <NUM>. The television <NUM> may be communicatively coupled to the router directly (e.g., via an Ethernet connection), through a Wi-Fi connection, or via a streaming device attached to the television in order to access the service provider <NUM> by way of the network <NUM>. Further, the mobile phone <NUM> and the television <NUM> are communicatively coupled to one another via one or more of the communication channels discussed above, such as wireless radio systems, Wi-Fi, Bluetooth™, Mobile Broadband, LTE, or any other wireless communication system or format.

In the example system <NUM>, the video content <NUM> is distributed from the service provider <NUM> via the network <NUM> to the router <NUM>, but in this example, only one content stream <NUM> is sent. Additionally, one content stream <NUM> that includes the video content <NUM> is distributed from the service provider <NUM> via the network <NUM> to the router <NUM>. When the content streams <NUM> and <NUM> reach the router <NUM>, the router can direct each content stream to an appropriate device. In this case, the router <NUM> directs the content stream <NUM> to the mobile phone <NUM> and directs the content stream <NUM> to the television <NUM>. The mobile phone <NUM> then displays the video content <NUM> from the content stream <NUM>, and the television <NUM> displays the video content <NUM> from the content stream <NUM>.

In order to provide the mobile phone <NUM> and the television <NUM> with the ability to switch between the two instances of video content <NUM> and <NUM>, the example system <NUM> provides a proxy mechanism that exists between the mobile phone <NUM>, the television <NUM>, and the router device <NUM>. Rather than receiving a duplicate content stream from the service provider <NUM>, each of the devices <NUM> and <NUM> forward the content stream that they receive to the other by way of the router <NUM>. For example, after receiving the content stream <NUM> that includes the video content <NUM>, the mobile phone <NUM> forwards the video content <NUM> in a content stream <NUM> back through the router <NUM> to the television <NUM>. Likewise, the television <NUM> receives the content stream <NUM> that includes the video content <NUM> and forwards the video content <NUM> in a content stream <NUM> back through the router <NUM> to the mobile phone <NUM>. This forwarding can simply be an instruction to the router <NUM> to send the video content <NUM> in the content stream <NUM> to the television <NUM> rather than the mobile phone <NUM>. Other manners may instead be used to forward the video content <NUM>, such as transmitting the content stream <NUM> to the television <NUM> wirelessly or through wired communication, in the various manners set forth above.

Similar to the discussion above, the devices <NUM> and <NUM> do not need to store, process, or buffer the stream that includes video content that the respective device is not currently displaying. When the mobile phone <NUM> receives the content stream <NUM> that includes the video content <NUM>, it does not store or buffer the video content <NUM>. Similarly, when the television <NUM> receives the content stream <NUM> that includes the video content <NUM>, it does not store or buffer the video content <NUM>. This allows the devices <NUM> and <NUM> to devote memory and processing power to other activities taking place at the devices.

Nevertheless, continuously receiving the alternate content stream allows the devices <NUM> and <NUM> to swap between the video content <NUM> and <NUM> almost instantaneously. When the mobile phone <NUM> receives an indication to swap from the video content <NUM> to the video content <NUM>, the mobile phone <NUM> can switch over to displaying the video content <NUM> coming from the content stream <NUM>. Further, when the television <NUM> receives the indication to swap from the video content <NUM> to the video content <NUM>, the television <NUM> can switch over to displaying the video content <NUM> coming from the content stream <NUM>. Should another indication to swap be received, the mobile phone <NUM> returns to displaying the video content <NUM> from the content stream <NUM>, and the television <NUM> returns to displaying the video content <NUM> from the content stream <NUM>.

<FIG> illustrates a system <NUM> for implementing multiple-device media swap according to an embodiment of the claimed invention. The example system <NUM> includes the service provider <NUM>, network <NUM>, router device <NUM>, mobile phone <NUM>, and television <NUM> as described in relation to the example system <NUM>. As discussed above, the mobile phone <NUM> and the television <NUM> may be communicatively coupled via the router device <NUM> and the network <NUM> to the service provider <NUM>. The service provider <NUM> enables the mobile phone <NUM> and the television <NUM> to access and interact with various resources <NUM> made available by the service provider <NUM>.

In the example system <NUM>, the resources <NUM> are shown as including a custom content stream <NUM>. The custom content stream <NUM> can be generated by the service provider <NUM> to include two (or more) items of video content, in this case video content <NUM> and video content <NUM>. The custom content stream <NUM> comprises a single merged video of the video content <NUM> and the video content <NUM> together. Merging is implemented by stitching a frame from the video content <NUM> and a frame from the video content <NUM> together into a single frame and repeating as the frames of both video contents continue. The single frames that include one frame of the video content <NUM> and the video content <NUM> is used as the custom content stream <NUM>.

The custom content stream <NUM> is sent from the service provider <NUM> via the network <NUM> to the router <NUM>. When the custom content stream <NUM> reaches the router <NUM>, the router sends the custom content stream <NUM> to both the mobile phone <NUM> and the television <NUM>. When the custom content stream <NUM> reaches the mobile phone <NUM>, however, the content viewing interface <NUM> only displays one of the video content items that is included in the custom content stream in a viewport <NUM> of the content viewing interface <NUM>. In the current example, the content viewing interface <NUM> at the mobile phone <NUM> only displays the video content <NUM> in the viewport <NUM>. The video content <NUM> that is included in the custom content stream <NUM> is not visible in the viewport <NUM>, even though the custom content stream <NUM> includes both the video content <NUM> and the video content <NUM>.

The custom content stream <NUM> is also delivered to the television <NUM>. The content viewing interface <NUM> at the television <NUM> only displays one of the video content items that is included in the custom content stream <NUM> in a viewport <NUM> of the content viewing interface <NUM>. The content viewing interface <NUM> at the television <NUM> only displays the video content <NUM> in the viewport <NUM>. The video content <NUM> that is included in the custom content stream <NUM> is not visible in the viewport <NUM>, even though the custom content stream <NUM> includes both the video content <NUM> and the video content <NUM>. Using the technique described in the example system <NUM>, two different items of video content can be viewed simultaneously on two different devices, while the same content stream is delivered to the two different devices.

Providing two different video content items using the one custom content stream allows for immediate switching between the two video content items. This technique eliminates the need to send a request from a device to the service provider <NUM> through the network, wait for the request to be answered, and then process and buffer the received video content. As noted above with reference to the example described in <FIG>, the user can select the control <NUM> to swap the first video content <NUM> that is displayed on the mobile device <NUM> with the second video content <NUM> that is displayed on the television display device <NUM>. Using the techniques described with reference to <FIG> to send video content to the mobile phone <NUM> and to the television <NUM>, this swap of video content can take place immediately because both sets of video content arrive at both the mobile phone <NUM> and the television <NUM> in the custom content stream <NUM>.

If the user does choose to swap between the video content <NUM> and the video content <NUM> in the example system <NUM>, both of the devices can move the location of their respective viewports relative to the custom content stream <NUM>. For example, the mobile phone <NUM> can start with displaying the video content <NUM> in the viewport <NUM>. In this example, the mobile phone <NUM> displays the video content <NUM> of the single merged video in the custom content stream <NUM> in the viewport <NUM>, while not displaying the video content <NUM> based on a relative location of the video content <NUM> and the video content <NUM> to each other. In response to a request to swap video content, the mobile phone <NUM> transitions the viewport <NUM> so that the video content <NUM> is now visible and the video content <NUM> is removed from view. In a similar fashion, the television <NUM> can begin by displaying the video content <NUM> in the viewport <NUM>. In response to the indication to swap video content received from the mobile phone <NUM>, the television <NUM> can transition to display the video content <NUM> in the viewport <NUM> rather than the video content <NUM>. After the mobile phone <NUM> and the television <NUM> swap which content each are displaying, both devices <NUM> and <NUM> continue to receive the custom content stream <NUM> that includes the video content <NUM> and the video content <NUM>. Accordingly, if the user decides to switch back to the original configuration of which device displays which content, this can take place without either device having to request content, wait for content to be received, process, and buffer the respective video content for each device.

<FIG> illustrates another example system <NUM> for implementing multiple-device media swap. The example system <NUM> includes the service provider <NUM>, network <NUM>, and router device <NUM> as described with reference to the example system <NUM>. The example system <NUM> also includes a tablet <NUM> and a television <NUM>. Although a tablet and a television are detailed in the example system <NUM>, any of the devices described herein can be implemented in the example system <NUM>. As discussed above, the tablet <NUM> and the television <NUM> may be communicatively coupled via the router <NUM> and the network <NUM> to the service provider <NUM>. The service provider <NUM> enables the tablet <NUM> and the television <NUM> to access and interact with various resources <NUM> made available by the service provider <NUM>.

The resources <NUM> are shown as including a custom content stream <NUM> that includes four items of video content <NUM>-<NUM>, along with video content <NUM> that is not part of the custom content stream <NUM>. The custom content stream <NUM> can be generated by the service provider <NUM> to include four items of video content, in this case video content <NUM>-<NUM>. Although four items of video content are described, any number of video content items are contemplated to be included in the custom content stream <NUM>. The custom content stream <NUM> comprises a single merged video of the video content <NUM>-<NUM> together. As discussed above, merging can be implemented by stitching a frame from the video content <NUM> a frame of the video content <NUM>, a frame of the video content <NUM>, and a frame from the video content <NUM> together into a single frame and repeating as the frames of all of the video content items continue. The single frames that include one frame from each of the video contents <NUM>-<NUM> are used as the custom content stream <NUM>. The resources <NUM> are also shown in the example system <NUM> as including a separate video content <NUM>, which can be a different video content than the video contents <NUM>-<NUM>.

The custom content stream <NUM>, and the content stream that includes video content <NUM>, are both sent from the service provider <NUM> via the network <NUM> to the router <NUM>. The custom content stream <NUM> is sent to the router <NUM> as two content streams, while the content stream that includes the video content <NUM> is sent as a single stream to the router <NUM>. When the two custom content streams <NUM> reach the router <NUM>, the router sends one of the custom content streams <NUM> to the tablet <NUM> and one of the custom content streams <NUM> to the television <NUM>. The content viewing interface <NUM> can cause the tablet <NUM> to display the entire custom content stream <NUM>. This can include displaying each of the video contents <NUM>-<NUM> simultaneously in the content viewing interface <NUM> on the tablet <NUM>. In aspects, the content viewing interface <NUM> can adapt a touch screen of the tablet <NUM> so that the tablet <NUM> can recognize a touch input as a selection of a particular one of the video contents <NUM>-<NUM>.

The router <NUM> also sends the content stream that includes the video content <NUM> to the television <NUM>. The television <NUM> displays the video content <NUM>, without displaying the video contents <NUM>-<NUM> in from the custom content stream <NUM>. The custom content stream <NUM> reaches the television <NUM>, but is not directed to memory of the television <NUM>. The content stream that includes the video content <NUM> continues on to be buffered and output on a display of the television <NUM>. As discussed above, only storing and buffering one of the two content streams at the television <NUM> reduces the processing resources necessary to display the video content <NUM>.

To further illustrate the swapping mechanisms involved with the multiple-device media swap of the example system <NUM>, <FIG> illustrates further details of the multiple-device media swap in the example <NUM>. The example <NUM> shows the tablet <NUM> and the television <NUM> of <FIG> at three points in time <NUM>, <NUM>, and <NUM>. At the first point in time <NUM>, the tablet <NUM> receives the custom content stream <NUM> that includes the video contents <NUM>-<NUM> and displays the video contents <NUM>-<NUM> in the content viewing interface <NUM>. Also at the first point in time <NUM>, the television <NUM> receives both the custom content stream <NUM>, and the content stream that includes the video content <NUM>. The television <NUM> only displays the video content <NUM> without displaying the custom content stream <NUM>.

Arriving at the second point in time <NUM>, a user is depicted executing a touch input <NUM> on the content viewing interface <NUM> displayed on a touch screen of the tablet <NUM>. As discussed above, the content viewing interface <NUM> can adapt the touch screen of the tablet <NUM> so that the tablet recognizes the touch input <NUM> as a selection of a particular one of the video contents <NUM>-<NUM>. In this example, the touch input <NUM> is shown as selecting video content <NUM> that includes a dancer. Upon selection of the video content <NUM>, an indication is sent to the television <NUM> that a media swap has been requested.

Because the television <NUM> is currently receiving both the custom content stream <NUM> and the content stream that includes the video content <NUM>, the television can immediately switch between the two content streams. In this case, the television <NUM> goes from displaying the soccer player in the video content <NUM>, to the dancer in the video content <NUM>. The television <NUM> continues to stream the entire custom content stream <NUM>, but a viewport <NUM> of the television only displays the video content <NUM> that was selected by the user. The other video contents <NUM>, <NUM>, and <NUM> that are part of the custom content stream <NUM> are hidden from view, outside of the viewport <NUM>. Further, the content stream that includes the video content <NUM> may be discontinued from being delivered to the television <NUM> when the television <NUM> begins displaying the video content <NUM>.

Meanwhile, also in response to the selection of the video content <NUM> on the touch screen of the tablet <NUM>, a request is sent to the service provider <NUM> (not pictured). This request can include an indication to send a content stream that contains only the video content <NUM> to the television <NUM> to replace the content stream that included the video content <NUM>. In other words, the content stream that included video content of the soccer player displayed by the television will be replaced by a new content stream that includes video content of the dancer. The replacement of the content stream that includes the soccer player video content with the content stream that includes the dancer video content occurs while the dancer is being displayed on the television as part of the custom content stream <NUM>.

The video content <NUM> of the dancer that is part of the custom content stream <NUM> is displayed by the television <NUM> while the tablet <NUM> sends the request to the service provider <NUM> through the network, while the devices wait for the request to be answered, and while the television <NUM> processes and buffers the requested video content. Subsequently at time <NUM>, a content stream <NUM> that includes the video content <NUM> has arrived at the television <NUM> and replaced the content stream that included the video content <NUM>. Further, even though the video content <NUM> is still displayed on the television <NUM>, the source of the video content is now the content stream <NUM> rather than the custom content stream <NUM>. Both the tablet <NUM> and the television <NUM> continue to receive and display video content included in the custom content stream <NUM>, in the event that the user decides to again swap to a different video content for display on the television.

This process of displaying the video content <NUM> of the custom content stream <NUM> while the devices are sending a request and waiting for additional content to be ready for display provides a number of advantages. In one example, the content stream that includes the video content <NUM> may be sent by the service provider <NUM> at a particular resolution, such as 1080p. The custom content stream <NUM> can also be created at the service provider <NUM> in 1080p. However, if the four video contents <NUM>-<NUM> are arranged in a <NUM> × <NUM> configuration when they are merged together to form the custom content stream <NUM>, this can result in the four individual video contents being 540p each. Therefore, when the four video contents <NUM>-<NUM> are displayed on the tablet <NUM>, each of the four video contents are displayed at 540p to form the single merged video displayed at 1080p.

Consider again the point in time <NUM> when the user has selected the video content <NUM> on the touch screen of the tablet <NUM>. When the television <NUM> receives the indication to swap to the video content <NUM>, the television <NUM> switches from displaying the video content <NUM> to display the video content <NUM> that is part of the custom content stream <NUM>. The television <NUM>, like the tablet <NUM>, receives the merged video in the custom content stream <NUM> in 1080p, with each of the video contents <NUM>-<NUM> in 540p. When the television <NUM> switches to display the video content <NUM> in the viewport <NUM>, the video content <NUM> is therefore displayed in 540p.

At the final point in time <NUM>, the television <NUM> receives the content stream <NUM> that includes the video content <NUM> at 1080p. The content stream <NUM> has replaced the content stream that included the video content <NUM> at 1080p. The replacement of the content stream that included the video content <NUM> with the content stream <NUM> likely took several seconds, which would otherwise be easily noticeable and bothersome to users. But immediately inserting the video content <NUM> from the custom content stream <NUM> that is already present at the television <NUM> in response to the request to swap from one media item to another alleviates these problems. The video content that the user has requested at the tablet <NUM> can be displayed instantaneously at the television <NUM>, and the user does not need to wait for the request to be sent and the content to be received, processed, and buffered. Even though the video content <NUM> is displayed at a lower resolution as part of the custom content stream <NUM>, the difference in resolution is likely undetectable in the amount of time that the television <NUM> waits to receive the video content at the higher resolution. Once the television <NUM> receives the content stream <NUM> that includes the video content <NUM>, the television <NUM> can process and buffer the video content <NUM> accordingly. Then, the video content <NUM> that is at the higher resolution from the content stream <NUM> can be inserted seamlessly as a next-frame following the corresponding previous frame of the video content <NUM> at the lower resolution.

<FIG> illustrates an example system <NUM> in which aspects of multiple-device media swap can be implemented. The example system <NUM> includes a computing device <NUM>, such as the mobile device <NUM> and/or <NUM>; the tablet device <NUM> and/or <NUM>; and/or the television <NUM>, <NUM>, <NUM>, and/or <NUM> shown in <FIG>, or any other type of a mobile phone, media playback, computing, communication, gaming, entertainment, portable electronic media device, or computer device. The computing device <NUM> can be implemented with various components, such as a processor <NUM> (or processing system) and memory <NUM>, and with any number and combination of different components as further described with reference to the example device shown in <FIG>. Although not shown, the computing device <NUM> can include a power source, such as a battery, to power the various device components. Further, the computing device <NUM> can include different wireless radio systems, such as for Wi-Fi, Bluetooth™, Mobile Broadband, LTE, or any other wireless communication system or format. Generally, the computing device <NUM> implements a communication system <NUM> that includes a radio device, antenna, and chipset that is implemented for wireless communication with other devices, networks, and services.

The computing device <NUM> includes one or more computer applications <NUM> that generate the content viewing interface <NUM>, which includes video content <NUM> for display on a display device <NUM> of the computing device, as referred to above. The computer applications <NUM> can include many different types of computer applications that utilize or implement multiple-device media swap features or functions, which provide for displaying, playing, pausing, rewinding, recording, and/or editing video content, such as in video applications for consuming digital content, social networking, artistic uses, commercial and private uses, etc..

Any of the different types of computer applications can include the control logic <NUM> that implements aspects of multiple-device media swap, as illustrated and described above with reference to <FIG>. The control logic <NUM> can be implemented as a software application or module, such as computer-executable software instructions that are executable with the processor <NUM> (or with a processing system) to implement aspects described herein. The control logic <NUM> can be stored on computer-readable storage memory (e.g., the device memory <NUM>), such as any suitable memory device or electronic data storage implemented in the computing device. Although shown as a separate module or component in memory <NUM>, the control logic <NUM> may be integrated as a module or component with any of the computer applications <NUM> for multiple-device media swap in the object layout interface <NUM>.

As described with reference to <FIG>, the control logic <NUM> is implemented to receive media swap input <NUM> (e.g., a user input via the content viewing interface) that controls different video content <NUM> to be displayed in the content viewing interface <NUM>. The control logic <NUM> controls the display of different video content <NUM> based on a combination of the format in which the video content is received, a number of video contents that are received, a number and type of devices that receive the video content, and user inputs intended to configure what video content is displayed and how the video content is displayed, among other considerations.

In implementations, the control logic <NUM> is configured to recognize two (or more) content streams that are being received at the computing device <NUM>. When the control logic <NUM> recognizes the content streams, the control logic can determine which of the video content included in the content streams to display in the content viewing interface <NUM> of the computing device <NUM>. The control logic may also be configured to control which of the video content included in the content streams to display on an additional device. In addition to controlling which of the video contents to display on which device, the control logic can control how the video content is displayed, based on a type of device that is displaying the video content for instance. When a media swap input <NUM> is received, the control logic can switch from video content in one content stream to another video content in another content stream to be displayed on the display device <NUM>. The control logic may send indications to the additional devices to swap between the video contents, or may have control to cause the additional devices to swap between the video contents that the additional devices are displaying.

In implementations, the control logic <NUM> is also configured to recognize a single content stream that is being received at the computing device <NUM>, where the single content stream has two (or more) video contents included in the single stream. When the control logic <NUM> recognizes the single content stream that has multiple video contents within the single content stream, the control logic can determine which of the multiple video contents to display in a viewport of the content viewing interface <NUM>. The control logic <NUM> may also direct which of the multiple video contents included in the single content stream to display in a viewport of an additional device. In addition to controlling which of the video contents to display on which device, the control logic can control how the video content is displayed, based on a type of device that is displaying the video content for instance. In some scenarios, the control logic <NUM> can direct a device to display all of the video contents in the single stream in a viewport simultaneously, such as is performed by the tablet <NUM> in <FIG> and <FIG>. When a media swap input <NUM> is received, the control logic can switch from displaying one of the video contents in the viewport to another of the video contents in the viewport, such as by translating a location of the viewport relative to the arrangement of the multiple video contents in the single content stream. The control logic may send indications to the additional devices to swap between the video contents, or may have control to cause the additional devices to swap between the video contents that the additional devices are displaying.

In implementations, the control logic <NUM> is further configured to provide combinations of the described techniques for a desired viewing experience. In one example, the control logic <NUM> can recognize a single content stream having multiple video contents that is sent to two different devices, and another content stream having only one video content being sent to one of the multiple devices. In this case, the control logic can display the multiple video contents in the single content stream on a device such as the tablet <NUM>, and cause the content viewing interface <NUM> to enable selection of the multiple video contents within the content viewing interface. The control logic can also direct an additional device, such as a television, that receives both content streams to initially display the content stream that includes the single video content. When the tablet <NUM> receives a media swap input <NUM> by selection of one of the multiple video contents, the control logic <NUM> instructs the television to swap to the content stream that includes the multiple video contents. The control logic also instructs the television to only display the selected video content in a viewport of the content viewing interface at the television. Meanwhile, the control logic sends a request to the service provider <NUM> to send another content stream to the television that includes only the selected video content, but at a higher resolution than the selected video content appears in the content stream having multiple video contents. When the content stream with the selected video content arrives at the television and is ready for display, the control logic <NUM> swaps from displaying the multiple video content stream to the single video content stream seamlessly. Other combinations of the described techniques for multiple-device media swap are also contemplated.

The example system <NUM> can also include a service provider <NUM>, that is accessible by client devices, to include the computing device <NUM>, the mobile phone <NUM>, and the tablet <NUM>. The service provider <NUM> includes data storage <NUM> that may be implemented as any suitable memory, memory device, or electronic data storage for network-based data storage. The data storage can maintain an instance of the control logic <NUM>, which controls operations of the service provider <NUM>, such as responding to requests from client devices, maintaining media content, and so forth. The data storage <NUM> can also maintain on-line applications <NUM> (e.g., as network-based applications), that are accessible by a computer application <NUM> from the computing device <NUM>. The on-line applications <NUM> can include video streaming applications such as YouTube™, content storage applications that store a user's private or public media content, social media applications that provide media content consumption, live-streaming video applications, and so on. Generally, the on-line applications <NUM> can provide users with a sources of consumable media content that is accessible by the computing device <NUM> via a network <NUM>.

The service provider <NUM> can also be implemented with server devices that are representative of one or multiple hardware server devices of the service provider. Further, the service provider <NUM> can be implemented with various components, such as a processing system and memory, as well as with any number and combination of differing components as further described with reference to the example device shown in <FIG> to implement the services, applications, servers, and other features of multiple-device media swap.

The example system <NUM> also includes the network <NUM>, and any of the devices, servers, and/or services described herein can communicate via the network, such as for data communication between the computing device <NUM> and the service provider <NUM>. The network can be implemented to include a wired and/or a wireless network. The network can also be implemented using any type of network topology and/or communication protocol, and can be represented or otherwise implemented as a combination of two or more networks, to include IP-based networks and/or the Internet. The network may also include mobile operator networks that are managed by a mobile network operator and/or other network operators, such as a communication service provider, mobile phone provider, and/or Internet service provider.

Example method <NUM> is described with reference to <FIG> in accordance with one or more aspects of multiple-device media swap, and is generally described with reference to the control logic <NUM> implemented by the computing device as shown in the example system of <FIG>. Generally, any of the components, modules, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Some operations of the example methods may be described in the general context of executable instructions stored on computer-readable storage memory that is local and/or remote to a computer processing system, and implementations can include software applications, programs, functions, and the like. Alternatively or in addition, any of the functionality described herein can be performed, at least in part, by one or more hardware logic components, such as, and without limitation, Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SoCs), Complex Programmable Logic Devices (CPLDs), and the like.

<FIG> illustrates example method(s) <NUM> of multiple-device media swap. The order in which the method is described is not intended to be construed as a limitation, and any number or combination of the method operations can be combined in any order to implement a method, or an alternate method.

At <NUM>, a device that is currently receiving two videos through one or more content streams, and also is currently presenting a first of the two videos, determines that another device is currently presenting a second of the two videos. The other device is currently receiving both of the two videos through the one or more content streams or through another content stream. For example, the first of the two videos may be displayed on the mobile device <NUM> of <FIG>, and/or on the mobile phone <NUM> shown in <FIG>. Alternatively or additionally, the first of the two videos may be displayed on the tablet <NUM> shown in <FIG> and <FIG>, or on any other suitable type of computing device. The device can display the first of the two videos within a content viewing interface <NUM> of a computer application that is implemented by the device. The control logic <NUM> can customize the content viewing interface <NUM> to display the first of the two videos, and can customize functionalities available for interaction with the two videos, based on a particular display device that is implementing the content viewing interface <NUM> and the format of the video content.

Additionally, the second of the two videos may be displayed on the television display device <NUM> of <FIG>, and/or the television <NUM> shown in <FIG>. Alternatively or additionally, the second of the two videos may be displayed on the display device <NUM> shown in <FIG> and <FIG>, or on any other suitable type of computing device. The other device can display the second of the two videos within a content viewing interface <NUM> of a computer application that is implemented by the other device. The control logic <NUM> can customize the content viewing interface <NUM> to display the second of the two videos, and can customize functionalities available for interaction with the two videos, based on a particular display device that is implementing the content viewing interface <NUM> and the format of the video content.

In one example, the device receives the two videos in a single content stream, where the two videos have been merged together into a single merged video, such as is described with reference to <FIG>. The device can present the first video in a viewport of the device, without presenting the second video within the viewport. In this example, the device can determine that the other device is presenting the second video based on the device presenting the first of the two videos. In other words, the device knows which video it is presenting, and therefore can determine that the other device is presenting the second of the two videos that the device receives but is not presenting.

In another example, the device receives the two videos in two different content streams, where a first content stream includes the first of the two videos and a second content stream includes the second of the two videos, such as is described with reference to <FIG>. The device can present the first of the two videos on a display, without presenting the second of the two videos on the display. However, the device continues to receive both content streams, and thus continues to receive both videos, despite the second of the two videos not being presented. In this example, the device can determine that the other device is presenting the second video based on the device presenting the first of the two videos included in the first content stream. In other words, the device knows which video it is presenting, and therefore can determine that the other device is presenting the second of the two videos that the device receives but is not presenting.

In still one further example, the device can determine that the other device is presenting the second video based on the device sending an instruction to the other device to present the second video before the other device presents either of the two videos. In this way, the device controls which of the two videos the other device is presenting, and has knowledge of which of the two videos the other device is presenting.

At <NUM>, the device receives an instruction to swap content presentation between the device and the other device. For example, the instruction to swap may include receiving a user input at a user-selectable control at the device and sending an indication from the device to the additional display device, such as is described in relation to user-selectable control <NUM> and indication <NUM> of <FIG>. In another example, the instruction to swap may include receiving a touch input on an item of video content that is being displayed in a touch interface of the device and sending an indication from the device to the additional display device, such as is described in relation to the selection of video content item <NUM>(d) and indication <NUM> of <FIG>.

At <NUM>, responsive to the instruction to swap content presentation, the device presents the second of the two videos and ceases to present the first of the two videos. Additionally in response to the instruction to swap content presentation, at <NUM> the device causes the other device to present the first of the two videos and cease to present the second of the two videos. The presenting at <NUM> and the causing at <NUM> are effective to simultaneously swap presentation of the two videos between the device and the other device.

Consider the first example described at step <NUM> in which the device receives the two videos as a single merged video. The device can initiate the swap by translating a location of the viewport <NUM> in relation to the arrangement of the first video content and the second video content as part of the single content stream. Further, consider again the second example described at step <NUM> in which the device receives the two videos in two respective content streams. When the instruction to swap is received, the device can switch from presenting the first of the two videos to the second of the two videos by switching which content stream is processed and buffered for display. Particularly, when a request to swap is received, the device is able to terminate processing and buffering the first video at the next frame that was going to be processed and buffered. Then, the device replaces the first video with the second video at the next frame of the second video that is received, and begins processing and buffering the second video for display on the device. Similarly, the other device terminates processing and buffering of the second video at the next frame that was going to be processed and buffered at the other device when the other device receives the indication to swap. Then, the other device replaces the second video with the first video at the next frame of the first video that is received, and begins processing and buffering the first video for display on the other device.

<FIG> illustrates an example system <NUM> that includes an example device <NUM>, which can implement aspects of multiple-device media swap. The example device <NUM> can be implemented as any of the computing devices and/or services (e.g., server devices) described with reference to the previous <FIG>, such as any type of computing device, client device, mobile phone, tablet, communication, entertainment, gaming, media playback, and/or other type of device. For example, the mobile device <NUM> and/or <NUM>; the tablet <NUM> and/or <NUM>; the television display device <NUM>, <NUM>, <NUM>, and/or <NUM>; the computing device <NUM>; and/or server devices of the service provider <NUM> may be implemented as the example device <NUM>.

The device <NUM> includes communication devices <NUM> that enable wired and/or wireless communication of device data <NUM>, such as video content data and computer applications content that is transferred from one computing device to another, and/or synched between multiple computing devices. The device data can include any type of audio, video, image, and/or graphic data that is generated by applications executing on the device. The communication devices <NUM> can also include transceivers for cellular phone communication and/or for network data communication.

The device <NUM> also includes input / output (I/O) interfaces <NUM>, such as data network interfaces that provide connection and/or communication links between the device, data networks, and other devices. The I/O interfaces can be used to couple the device to any type of components, peripherals, and/or accessory devices, such as a digital camera device that may be integrated with device <NUM>. The I/O interfaces also include data input ports via which any type of data, media content, and/or inputs can be received, such as user inputs to the device, as well as any type of audio, video, and/or image data received from any content and/or data source.

The device <NUM> includes a processing system <NUM> that may be implemented at least partially in hardware, such as with any type of microprocessors, controllers, and the like that process executable instructions. The processing system can include components of an integrated circuit, programmable logic device, a logic device formed using one or more semiconductors, and other implementations in silicon and/or hardware, such as a processor and memory system implemented as a system-on-chip (SoC). Alternatively or in addition, the device can be implemented with any one or combination of software, hardware, firmware, or fixed logic circuitry that may be implemented with processing and control circuits. The device <NUM> may further include any type of a system bus or other data and command transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures and architectures, as well as control and data lines.

The device <NUM> also includes computer-readable storage memory <NUM>, such as data storage devices that can be accessed by a computing device, and that provide persistent storage of data and executable instructions (e.g., software applications, modules, programs, functions, and the like). The computer-readable storage memory described herein excludes propagating signals. Examples of computer-readable storage memory include volatile memory and non-volatile memory, fixed and removable media devices, and any suitable memory device or electronic data storage that maintains data for computing device access. The computer-readable storage memory can include various implementations of random access memory (RAM), read-only memory (ROM), flash memory, and other types of storage memory in various memory device configurations.

The computer-readable storage memory <NUM> provides storage of the device data <NUM> and various device applications <NUM>, such as an operating system that is maintained as a software application with the computer-readable storage memory and executed by the processing system <NUM>. In this example, the device applications also include various computer applications and control logic <NUM> that implements aspects of multiple-device media swap, such as when the example device <NUM> is implemented as the computing device <NUM> shown in <FIG>. Examples of the control logic <NUM> includes the control logic <NUM> that is implemented by the computing device <NUM> and/or by the service provider <NUM>, as described with reference to <FIG>.

The device <NUM> also includes an audio and/or video system <NUM> that generates audio data for an audio device <NUM> and/or generates display data for a display device <NUM>. The audio device and/or the display device include any devices that process, display, and/or otherwise render audio, video, display, and/or image data, such as the image content of a digital photo. In implementations, the audio device and/or the display device are integrated components of the example device <NUM>. Alternatively, the audio device and/or the display device are external, peripheral components to the example device. In aspects, at least part of the techniques described for multiple-device media swap may be implemented in a distributed system, such as over a "cloud" <NUM> in a platform <NUM>. The cloud <NUM> includes and/or is representative of the platform <NUM> for services <NUM> and/or resources <NUM>. For example, the services <NUM> may include the service provider <NUM> described with reference to <FIG>.

Claim 1:
A method for swapping content presentation, the method comprising:
determining, at a device currently receiving a single content stream comprising respective frames of two videos stitched into single, respective frames of a single merged video and currently presenting a first of the two videos, that another device is currently presenting a second of the two videos and is currently receiving both of the two videos through the single content stream;
receiving an instruction, at the device, to swap content presentation between the device and the other device;
responsive to the instruction to swap content presentation:
presenting, at the device, the second of the two videos and ceasing to present the first of the two videos; and
causing the other device to present the first of the two videos and cease to present the second of the two videos.