The present application claims priority to Indian Provisional Patent Application No. 201741008901, filed Mar. 15, 2017, the contents of which are hereby incorporated by reference.
The following discussion generally relates to data communication systems. More particularly, the following discussion relates to improved systems, methods, and protocols for data communication between mobile devices and corresponding accessory devices.
Recent years have seen an increase in the use of smartphone, tablets, and other such mobile devices. Likewise, accessories for such devices have also become more popular.
It is often desirable for accessories to allow the transfer of content—such as movies, photos, and the like—to and from the mobile device to which it is connected. Such transfers often take place via a universal serial bus (USB) or other wired protocols. For example, one such protocol (the “Android Open Accessory” or “AOA” protocol) allows a USB accessory to wait for and detect a connected device, determine whether the device has accessory mode support, attempt to start the device in accessory mode, and, if possible, establish a communication with the device. In this way, the accessory device itself is able to select which data and/or functionality that can be accessed by the mobile device. This is particularly important in contexts where, for example, proprietary, encrypted, and/or copy-protected content (such as movie and television content) is streamed from an accessory device to the mobile device. AOA also facilitates role-reversal, wherein the accessory is the ‘master’ and the mobile device is the ‘slave.’ The mobile device in such cases no longer needs to power the accessory.
This and other known protocols are unsatisfactory, however, in that their payload transfer size (per packet) is usually limited. With respect to the AOA protocol, for example, packets are limited to 16 KB, with each packet having its own corresponding header. It will be appreciated that requiring a header for each packet tends to consume a significant portion of the bandwidth used for a given transaction (which might require transfer of a large number of individual packets).
It is therefore desirable to create improved systems, devices, and protocols for providing data communication between mobile devices and their respective accessories. These and other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background section.
A media transfer method in accordance with one embodiment includes: establishing a data connection between a mobile device and an accessory device, such that the accessory device acts as a host configured to control access to first content stored within the accessory device; sending a request for the first content from the mobile device to the accessory device; in response to the request for the first content, sending, from the accessory device, the first content to the mobile device via the data connection, wherein first content is sent as a first transaction comprising a single header and a plurality of headerless data packets.
A content storage device in accordance with one embodiment is configured to establish a data connection with a mobile device such that the content storage device acts as a host configured to control access to first content stored within the accessory device, receives a request for the first content from the mobile device to the accessory device, and in response to the request for the first content sends the first content to the mobile device via the data connection, wherein first content is sent as a first transaction comprising a single header and a plurality of headerless data packets.
Example embodiments will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and
In general, the subject matter described herein relates to improved systems and methods for transferring content between a mobile device and a connected accessory device wherein the accessory device controls access to the content, and transfer is accomplished using a separate header for each transaction (in response to a single request from the mobile device), rather than for each packet. In this way, by reducing the ratio of header to payload size over the course of a transaction, the streaming of media content and transfer of large images can be improved significantly. As will be detailed below, such a system provides distinct advantages in a variety of contexts. In that regard, the following detailed description of the invention is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background or the following detailed description.
Accessory device 104 includes a processing system 114, which might typically include, for example, one or more processors, storage devices, memory components, machine readable software, etc. Similarly, mobile device 106 includes a processing system 116 which, among other things, is configured to execute applications to achieve the various methods described herein.
Mobile device may correspond to a smartphone, a tablet device, a laptop, or any other such device now known or later developed. Accessory device 104 corresponds to any combination of hardware and software capable of implementing the target protocol, such as the AOA protocol described herein. For example, accessory device 104 may be a portable media storage device (e.g., the HOPPERGO device manufactured by Dish Network LLC). that allows video recordings (e.g., DVR recordings) to be stored and viewed at a later date.
With continued reference to the example shown in
To accomplish this, mobile device 106 is connected via interconnect 125 to accessory device 104. As mentioned above, in one embodiment this connection is a suitable USB connection, as is known in the art. In particular, as discussed in further detail below, data communication takes place in accordance with a USB transfer protocol, such as the Android Open Accessory Protocol (“AOA protocol”), in which accessory device 104 operates in “host mode.” As used herein, the AOA protocol corresponds to the Android Open Accessory Protocol, version 1.0 and 2.0, which are hereby incorporated by reference.
As is known in the art, AOA allows external USB hardware (Android USB accessories) to interact with Android-powered devices in accessory mode. When an Android-powered powered device is in accessory mode, the connected accessory acts as the USB host (powers the bus and enumerates devices) and the Android-powered device acts as the USB accessory. AOA has two versions that support different types of communication. AOA v1 supports generic accessory communication and adb debugging. Available in Android 3.1 (API Level 12) and higher and supported through an Add-On Library in
Android 2.3.4 (API Level 10) and higher. AOAv2. Supports audio streaming and human interface device (HID) capabilities. Available in Android 4.1 (API Level 16).
The embodiments discussed herein are not so limited, however, and comprehend any subsequent version of AOA as well as, for example, any protocol that requires large files and/or streamed content to be transferred using a fixed packet length wherein each packet includes its own dedicated header. It also applies to protocols in which a single transaction (e.g., a response to a single request, such as the streaming of a single contiguous movie) is broken up into multiple, smaller packets, each having their own corresponding headers. The present embodiments have particular application to protocols in which the ratio of header size (aggregated over multiple packets) is relatively large compared to the payload size of each packet (as in the AOA protocol).
In order to address the limitations of the prior art, systems and methods in accordance with the present embodiment employ a single header for each transaction, rather than each packet, wherein “transaction” refers to fulfillment of a single request (e.g., a request to transfer a file, a request to stream media content, or the like).
The protocols described above may be defined such that the primary message is transmitted seamlessly without any need for format conversion. This results in minimal to no change at both transmitter and receiver, merely an additional layer to understand the protocol. This enables the protocol to work irrespective of whether the payload is JSON/HTTP/XML, etc.
Receiver 102 may be physically and logically implemented in any manner.
Various embodiments of receiver 102 may therefore include any number of appropriate modules for obtaining and processing media content as desired for the particular embodiment. Each of these modules may be implemented in any combination of hardware and/or software using logic executed within any number of semiconductor chips or other processing logic.
Various embodiments of control logic 505 can include any circuitry, components, hardware, software and/or firmware logic capable of controlling the various components of receiver 102. Various routines, methods and processes executed within receiver 102 are typically carried out under control of control logic 505 and stored as software instructions 542, as described more fully below. Generally speaking, control logic 505 receives user input signals via an RF receiver interface 532 that is able to communicate with a remote control using a suitable antenna or other interface. Control logic receives user inputs from the remote control and/or any other source, and directs the other components of receiver 102 in response to the received inputs to present the desired imagery (from multiple channels simultaneously) on a display.
As noted above, receiver 102 suitably includes a receiver interface 508, which includes any hardware, software, firmware and/or other logic capable of receiving media content via one or more content sources. In various embodiments, content sources may include cable television, DBS, broadcast and/or other programming sources as appropriate. Receiver interface 508 appropriately selects a desired input source and provides the received content to an appropriate destination for further processing. In various embodiments, received programming may be provided in real-time (or near real-time) to a transport stream select module 512 or other component for immediate decoding and presentation to the user. Alternatively, receiver interface 508 may provide content received from any source to a disk or other storage medium in embodiments that provide DVR functionality. In such embodiments, receiver 102 may also include a disk controller module 506 that interacts with an internal or external hard disk, memory and/or other device that stores content in a database 510, as described above.
In the embodiment shown in
Transport stream select module 512 is any hardware and/or software logic capable of selecting a desired media stream from the available sources. In the embodiment shown in
Receiver 102 may include any number of decoder modules 514A-B for decoding, decompressing and/or otherwise processing received/stored content as desired. Generally speaking, decoder modules 514A-B decompress, decode and/or otherwise process received content from transport select module 512 to extract an MPEG or other media stream encoded within the stream. The decoded content can then be processed by one or more display processor modules 518 to create a presentation on a display for the viewer in any appropriate format.
Display processor module 518 includes any appropriate hardware, software and/or other logic to create desired screen displays via display interface 528 as desired. Such displays may include combining signals received from one or more decoder modules 514 to facilitate viewing of one or more channels. In various embodiments, display processing module 518 is also able to produce on screen displays (OSDs) for electronic program guide, setup and control, input/output facilitation and/or other features that may vary from embodiment to embodiment. Such displays are not typically contained within the received or stored broadcast stream, but are nevertheless useful to users in interacting with receiver 102 or the like. The generated displays, including received/stored content and any other displays may then be presented to one or more output interfaces 528 in any desired format. The various interface features described herein, for example, may be generated by display processor module 218 operating alone or in conjunction with control logic 505.
Display processor 518 produces an output signal encoded in any standard format (e.g., ITU656 format for standard definition television signals or any format for high definition television signals) that can be readily converted to standard and/or high definition television signals at interface 528. In other embodiments, the functionality of display processor 518 and interface 528 may be combined in any manner.
The various processes, devices and systems described herein may be readily adapted for any number of equivalent environments and applications. The above examples are not meant to be limiting.
The term “exemplary” is used herein to represent one example, instance or illustration that may have any number of equivalent alternatives. Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations, but rather as a mere example. While several example embodiments have been presented in the foregoing detailed description, it should be appreciated that a vast number of alternate but equivalent variations exist, and the examples presented herein are not intended to limit the scope, applicability, or configuration of the invention in any way. To the contrary, various changes may be made in the function and arrangement of elements described without departing from the scope of the claims and their legal equivalents.
Number | Date | Country | Kind |
---|---|---|---|
201741008901 | Mar 2017 | IN | national |