Abstract:
Methods, apparatus and systems are provided that enable a user of a computing device to alter, augment or replace broadcast transmitted content destined for or received in the computing device with on-line content from the internet. In some implementations an application program, purchasable or otherwise downloadable from the internet (e.g., from an application store), facilitates in the computing device the manipulation of broadcast transmitted content that changes the manner in which content from a broadcast transmission source (e.g., television or cable transmission sources) is presented by the computing device absent the intervention of the application program. In one implementation an application program downloaded from the internet to the computing device alters the presentation of broadcast transmitted content by substituting broadcast advertising with non-advertising content from the internet.

Description:
TECHNICAL FIELD 
       [0001]    The inventions relate to methods, apparatus and systems for delivering and receiving data. 
       BACKGROUND 
       [0002]    There are a number of television broadcast standards used around the world which are not compatible with one another. For example, Europe uses “Digital Video Broadcasting” (DVB) standards, while North America uses “Advanced Television Systems Committee” (ATSC). Furthermore, Japan uses “integrated Services Digital Broadcasting” (ISDB) while China uses its homegrown “Digital Multimedia Broadcast Terrestrial/Handheld” (DMB-TH) standard. In addition there are cable, satellite, handheld and terrestrial TV standards. 
         [0003]    Television is facing competition from the internet one at least two fronts. For example users can buy or rent TV series and films on a number of websites and watch them without advertisements. Users may also download the content from sites like Hulu.com using streaming technology to receive the content with advertisements. Other subscription based businesses are being developed to allow users to access the content, for example, in exchange for a monthly payment. A second front of competition with the internet is that of time. For example, many people spend time using applications like social networks, search engines, instant messaging, e-mails, voice-over IP, games, etc. As the users spend more time on the internet they spend less time watching television. 
         [0004]    Different standards have been developed for digital television. For example, the MPEG-2 standard defined by the Motion Picture Expert Group (MPEG) is a standard that allows television to convert their analog systems into more efficient digital television systems. There are other MPEG industry standards. For example MPEG4 offers a more efficient video compression. A Standard Definition (SD) television requires approximately 3.8 Mbps in MPEG-2 and 1.8 Mbps in MPEG-4. A High Definition (HD) television requires approximately 19 Mbps in MPEG-2 and around 7 Mbps in MPEG-4. 
         [0005]    The MPEG-2 standard specifies formatting for the various component parts of a multimedia program. Such a program might include, for example, MPEG-2 compressed video, compressed audio, control data and/or user data. The standard also defines how these component parts are combined into a single bit stream. The process of combining the components into a single stream is known as multiplexing. The multiplexed stream may be transmitted over any of a variety of links, such as Radio Frequency Links (UHF/VHF), Digital Broadcast Satellite Links, Cable TV Networks, Standard Terrestrial Communication Links, Microwave Line of Sight (LoS) Links (wireless), Digital Subscriber Links (ADSL family), Packet/Cell Links (ATM, IP, IPv6, Ethernet.) 
         [0006]    To compress a stream carrying multimedia entertainment content, discrete samples in a stream are transformed into a bit-stream of tokens, which uses less bandwidth than the corresponding initial stream, since essentially only data that has changed from image to image is captured in the compressed stream, instead of capturing all the information from each image. The signal is broken into convenient sized data blocks (frames, or packets), and header information is added to each data block. The header typically identifies the start of the packets and may include time-stamps. The multimedia encoding/decoding format tells the decoder (receiver) how to inverse-represent the compacted stream back into data resembling the original stream of un-transformed data, so that the data may be heard and viewed in its normal form. 
         [0007]    MPEG systems are composed of various types of streams, such as, for example, Elementary Streams (ES), Packet Elementary Streams (PES), Program Streams (PS) and Transport Streams (TS). Elementary Streams (ES) contain the raw information components stream of a program stream, for example the compressed information of an audio stream of a program or the compressed information of a video stream of a program. Elementary streams in MPEG are first packetized in variable-length packets called PES packets which primarily have a length of 64 kbyes and begin with a PES header of 6 bytes minimum length. A Packet Elementary Stream (PES) is a raw information component stream that has been converted to packet form, such as, for example, a sequence of packets. This packetization process involves dividing a group of bits in an elementary stream and adding packet header information to the data. The packet header includes a Packet Identification code (PID) that uniquely identifies the packetized elementary stream from all other packetized elementary streams that may be transmitted. This Packetized Elementary Stream (PES) with its relatively long packets structures is not optimal for broadcasting transmission. 
         [0008]    The MPEG-2 standard defines two forms of multiplexing (combining of ES into a single stream): MPEG Program Streams (PS) and MPEG Transport Streams (TS). 
         [0009]    A MPEG Program Stream contains a group of tightly coupled PES packets referenced to a common time base like, for example, a television program. Such streams are suited for transmission in a relatively error-free environment and enable easy software processing of the received data. 
         [0010]    In MPEG Transport Streams, each PES packet is broken into fixed-sized transport packets, providing the basis of a general-purpose technique for combining one or more streams, possibly with independent time bases. This is suited for transmission in which there may be potential packet loss or corruption by noise, and/or where there is a need to send more than one program at a time. In MPEG-2, the objective has been to assemble up to 20 independent TV or radio programs to form one common multiplexed MPEG-2 data signal. 
         [0011]    The MPEG Transport Stream consists of a sequence of fixed sized transport packets of 188 bytes. Each packet comprises 184 bytes of payload and a 4 byte header. One of the items in this 4 byte header is the 13 bit Packet Identifier (PID). 
         [0012]    MPEG-2 Transport stream (TS) is a standard format for transmission and storage of audio, video, and data, and is used in broadcast systems such as DVB and ATSC. Transport Stream is specified in MPEG-2 Part 1, Systems (formally known as ISO/IEC standard 13818-1 or ITU-T Rec. H.222.0). 
         [0013]    The first header byte of a TS packet is the “sync byte,” whose value is 0×47, followed by three one-bit flags and a 13-bit Packet Identifier (PID). This is followed by a 4-bit continuity counter. Additional optional transport fields, as signaled in the optional adaptation field, may follow. The rest of the packet typically consists of payload. Packets are 188 bytes in length, but the communication medium may add some error correction bytes to the packet. ISDB-T and DVB-T/C/S uses 204 bytes and ATSC 8-VSB, 208 bytes as the size of emission packets (transport stream packet+FEC data). ATSC transmission adds 20 bytes of Reed-Solomon forward error correction to create a packet that is 208 bytes long. The 188-byte packet size was originally chosen for compatibility with ATM systems. 
         [0014]    A Transport Stream specifies a container format encapsulating packetized Elementary Streams, with error correction and stream synchronization features for maintaining transmission integrity when the signal is degraded. Transport Stream transmissions may carry multiple Program Streams. 
         [0015]    An Elementary Stream in a Transport Stream is identified by a 13-bit packet identifier called PID. A demultiplexer extracts Elementary Streams from the Transport Stream in part by looking for packets identified by the same PID. Packets in the same Elementary Stream have the same PID, so that the decoder can select the Elementary Streams it wants and reject the remainder. Currently, the elementary video, audio and data streams for the same channel use a different PID. 
         [0016]    A Transport Stream may include Electronic Program Guide (EPG) information and Program Specific Information (PSI), which describe the Elementary Streams which need to be combined to build programs. 
         [0017]    Broadcast systems, like for example DVB, do not only transmit pure content, but also descriptions about the content in the form of metadata. This metadata contains different kind of content-information and may be use to navigate through the content, for example to select different television channels. For example, in MPEG-2 the metadata may be transmitted using the Program Specific Information (PSI) packets. 
         [0018]    As discussed above, Program Specific Information is the MPEG-2 data that identifies what parts of the transport stream belong to a particular program. This information is carried in a number of PSI tables:
       Program Association Table (PAT)   Program Map Table (PMT)   Conditional Access Table (CAT)   Network Information Table (NIT)       
 
         [0023]      FIG. 1  is a diagram showing DVB MPEG-2 elementary streams, including audio streams, video streams, data streams and the associated Program Map Tables (PMT) and Program Association Table (PAT). 
         [0024]    The Program Association Table (PAT) is the entry point for the Program Specific Information (PSI) tables. It lists all programs available in the transport stream. It is carried in packets with PID=0. For each assigned program number, the PAT lists the PID for packets containing that program&#39;s PMT. 
         [0025]    The PAT includes data that the decoder uses to determine which programs (also referred to as channels) exist in the respective transport stream. Each of the listed programs is defined by a 16-bit value called program_number. Each of the programs listed in PAT has an associated value of PID for its Program Map Table (PMT). The PAT points to a number of PMTs (one per program), which, in turn points to the video, audio, and data content of a respective program carried by the stream. 
         [0026]    Program Map Tables (PMTs) contain information about programs. The Program Map Table (PMT) lists all the PIDs for packets containing elements of a particular program (for example, audio, video, and auxiliary data). For each program, there is one PMT. Once the PIDs for the video, audio and data content of the respective program carried by the stream are known, the decoder is able to decode the packets that have these PIDs. 
         [0027]    While the MPEG-2 standard permits more than one PMT section to be transmitted with a single PID, most MPEG-2 television systems such as ATSC and SCTE require each PMT to be transmitted with a separate PID that is not used for any other packets. The PMTs provide information on each program present in the transport stream, including the program_number, and list the elementary streams that comprise the described MPEG-2 program. There are also locations for optional descriptors that describe the entire MPEG-2 program, as well as an optional descriptor for each elementary stream. Each elementary stream is labelled with a stream_type value. 
         [0028]    The MPEG transport decoder generally performs the following functions:
       1. read the PAT to find the PMT for a desired program,   2. demultiplex the packets that carry the desired PMT   3. read the PMT   4. demultiplex the packets (with PIDs specified in the PMT) into the various elemental streams       
 
         [0033]    The MPEG-2 specification does not specify the format of the CAT and NIT. 
         [0034]    A CAT is used for a scrambled stream. The CAT is carried in packets with PID=1. The CAT contains PIDs for Entitlement Management Messages (EMMs), which contain authorization level information for conditional access systems. 
         [0035]    To cope with any extensions, the MPEG Group has created the possibility to incorporate so-called “private sections and private tables” in the transport stream. The group has defined mechanisms which specify what a section of a table has to look like, what its structure has to be and by what rules it is to be linked into the transport stream. 
         [0036]    Taking advantage of the “private section” and “private tables” features, the European DVB Group has introduced numerous additional tables intended to simplify the operation of DVB receivers. Called “Service Information” (SI) they are defined in ETSI Standard ETS300468. Some of these tables are the “Network Information Table”, the “Time&amp;Date Table” (TDT), and the “Time Offset Table” (TOT). 
         [0037]    The Network Information Table (NIT) is an optional table that describes all physical parameters of a DVB transmission channel. It contains, for example, the received frequency and the type of transmission (e.g. satellite, cable, terrestrial) and also the technical data of transmission like error protection, type of modulation, etc. This table may be used to optimize the channel scan as much as possible.  FIG. 1  shows an example of a Program Association Table (PAT) containing the PID for a Network Information Table (NIT). 
         [0038]    In Europe, many broadcasters are also transmitting an “Electronic Program Guide” (EPG) which has its own table in DVB, the so-called “Event Information Table” (EIT). It contains the planned starting and stopping times for the broadcasts of, e.g. one day or one week. The structure which is possible here is very flexible and also allows additional information to be transmitted. 
         [0039]    The “Time&amp;Date Table” (TDT) is used to transmit the current clock time and the current date. In the TDT, Greenwich Mean Time (GMT), i.e. the current clock time for the Zero-Degree meridian without any daylight saving time shift is transmitted. The respective applicable time offset can then be broadcast in a “Time Offset Table” (TOT) for the various time zones. It depends on the software of the TV receiver how the information contained in the TDT and TOT is evaluated. Complete support for this broadcast time information may require the DVB receiver to be informed of its current location in a country having a number of time zones. 
       SUMMARY OF THE DISCLOSURE 
       [0040]    Methods, apparatus and systems are provided that enable a user of a computing device to alter, augment or replace broadcast transmitted content destined for or received in the computing device with on-line content from the internet. In some implementations an application program, purchasable or otherwise downloadable from the internet (e.g., from an application store), facilitates in the computing device the manipulation of broadcast transmitted content that changes the manner in which the content from a broadcast transmission source (e.g., television or cable transmission sources) is presented by the computing device absent the intervention of the application program. For example, in one implementation an application program downloaded from the internet to the computing device alters the presentation of broadcast transmitted content by substituting broadcast advertising with non-advertising content from the internet. Many other examples of manipulating or enabling broadcast transmitted content in a computing device by the use of one or more application programs received in the computing device on-line the internet are disclosed and contemplated herein. 
         [0041]    For example, in one implementation a method is implemented in a user computing device having a pre-existing capability to receive first content in the form of at least one first data signal from a first external source and to process the at least one first data signal to produce an intended first video presentation and an intended first audio presentation of all or part of the first content in a video display device and in an audio device, respectively, the video display device and audio device integrated with or otherwise connected with the user computing device, the method comprising: receiving on-line from a first site different than the first external source an application program in the user computing device, the application program comprising executable instructions that when executed in the computing device are capable of intervening in the pre-existing first data signal process at a time coincident or after the first content is received in the user computing device, receiving in the user computing device the first content from the first external source; and altering the pre-existing first data signal process in the user computing device by use of the application program to produce a second video presentation and/or a second audio presentation different than one or both of the respective first video presentation and first audio presentation. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0042]    Other advantages and features of the present invention can be seen in the following description in which, with a non-limiting character, preferred embodiments are referred to in relation to the attached drawings: 
           [0043]      FIG. 1  is a diagram showing DVB MPEG-2 Elementary Streams, including audio streams, video streams, data streams and the associated Program Map Tables and Program Association Table. 
           [0044]      FIG. 2  illustrates an exemplary computing device. 
           [0045]      FIG. 3  illustrates a system according to one or multiple implementations. 
           [0046]      FIG. 4  illustrates a system according to one or multiple implementations. 
           [0047]      FIG. 5  illustrates a system according to one or multiple implementations. 
           [0048]      FIG. 6  illustrates a system according to one or multiple implementations. 
           [0049]      FIG. 7  illustrates a system according to one or multiple implementations. 
           [0050]      FIG. 8  illustrates a method according to one or multiple implementations wherein an application program executed in a computing device replaces broadcast transmitted content with internet transmitted content for the purpose of altering the intended presentation of the broadcast transmitted content in a video or audio device associated with the computing device. 
           [0051]      FIG. 9  illustrates an example of broadcast transmitted content received in a computing device the computing device that contain multiple portions of advertising and various portions of non-advertising content. 
           [0052]      FIG. 10  illustrates an example where a computing device plays at different times content related to a TV channel selected in the computing device, the content comprising broadcast transmitted content and on-line internet transmitted content. 
           [0053]      FIG. 11  illustrates another example of presenting both broadcast transmitted content and on-line internet transmitted content in a video device and/or audio device associated with a computing device that receives the transmitted content. 
           [0054]      FIG. 12  illustrates a system according to one or multiple implementations. 
       
    
    
     DETAILED DESCRIPTION 
       [0055]    By way of illustration and for exemplary purposes only, figures are provided to aid in the description of the various implementations disclosed herein. It is to be understood that the implementations illustrated and described herein, represent several of many ways to implement the inventions disclosed herein. 
         [0056]      FIG. 2   a  is a block diagram of an exemplary environment in which aspects of the inventions may be implemented. The environment is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality. Neither should the computing environment be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Numerous other general purpose or special purpose computing system environments or configurations are contemplated. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, hand-held or laptop devices, mobile phones, multiprocessor systems, microprocessor-based systems, set top boxes, televisions, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. 
         [0057]    With continued reference to  FIG. 2   a , the exemplary system includes a computing device  100  in the form of a computer system. Components of computing device  100  may include, but are not limited to, a processing unit  120 , a system memory  130 , and a system bus  121  that couples various system components including the system memory to the processing unit  120 . The system bus  121  may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus (also known as Mezzanine bus). 
         [0058]    Computing device  100  typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer device and includes both volatile and non-volatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer device  100 . Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media. 
         [0059]    The system memory  130  includes computer storage media in the form of volatile and/or non-volatile memory such as read only memory (ROM)  131  and random access memory (RAM)  132 . A basic input/output system  133  (BIOS), containing the basic routines that help to transfer information between elements within computer device  100 , such as during start-up, is typically stored in ROM  131 . RAM  132  typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit  120 . By way of example, and not limitation,  FIG. 2   a  illustrates operating system  134 , application programs  135 , other program modules  136 , and program data  137 . 
         [0060]    The computing device  100  may also include other removable/non-removable, volatile/non-volatile computer storage media. By way of example only,  FIG. 2   a  illustrates a hard disk drive  140  that reads from or writes to non-removable, non-volatile magnetic media and a drive  150  that reads from or writes to a removable, non-volatile media. Other removable/non-removable, volatile/non-volatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive  140  is typically connected to the system bus  121 , and a removable memory interface, such as interface  150  may be also connected to the bus  121 . 
         [0061]    The drives and their associated computer storage media discussed above and illustrated in  FIG. 2   a , provide storage of computer readable instructions, data structures, program modules and other data for the computer device  100 . In  FIG. 2   a , for example, hard disk drive  140  is illustrated as storing operating system  144 , application programs  145 , other program modules  146 , and program data  147 . Note that these components can either be the same as or different from operating system  134 , application programs  135 , other program modules  136 , and program data  137 . Operating system  144 , application programs  145 , other program modules  146 , and program data  147  are given different numbers here to illustrate that, at a minimum, they are different copies. The application programs or other program modules of the computer device  100  can contain, among other things, computer instructions which, when executed cause the computer system to operate or perform functions. 
         [0062]    A user may enter commands and information into the computer through input devices such as a keyboard  162  and pointing device  161 , commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, touch screens, multi-touch screens or the like. Some input devices are often connected to the processing unit  120  through a user input interface  160  that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor  191  or other type of display device is also connected to the system bus  121  via an interface, such as a video interface  190 . In addition to the monitor, computers may also include other peripheral output devices such as speakers  167  and printer, which may be connected through an output peripheral interface. 
         [0063]    The computer device  100  may operate in a networked environment using logical connections to one or more remote computing devices  180 . The remote computing device(s)  180  may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes a portion or all of the elements described above relative to the computer device  100 . The logical connections depicted in  FIG. 2   a  include a local area network (LAN)  171 , but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. 
         [0064]    The network interface  170  provides an interface to outside networks, which may comprise many interconnected computer systems/devices and communication links as explained above. These communication links may be wire line links, optical links, wireless links or any other mechanism for communication of information. In an embodiment of the present invention, network  171  supports an Ethernet protocol with the network interface being connected to a LAN networking environment. The network interface  170  may take any of a variety of forms including that of a network card that is installed inside the computing device  100  or an embedded component or chip that is a part of the computing device  100 , or it may be a part of another component, like for example a computer motherboard or an expansion card. In one embodiment of the present invention, as will be described in more detail below, the network interface is implemented as part of a chipset of the computing device  100 . 
         [0065]    In the example of  FIG. 2   a , the data signal  101  may come from any of a variety of signal sources. The signals may be any one of a variety of different analog and digital signals, whether broadcast, multicast, point-to-point, etc. Examples include NTSC signals, ATSC (Advanced Television Systems Committee) signals, PAL (Phase Alternating Line) signals, DVB ((Digital Video Broadcasting), cable television signals under a variety of possible standards, DBS (Direct Broadcast Satellite) signals, or any other type of television or video signal. 
         [0066]    A great variety of different connectors may be used for the input and output signals. Some connector formats include coaxial cable, RCA composite video, S-Video, component video, DIN (Deutsche Industrie Norm) connectors, DVI (digital video interface), HDMI (High Definition Multimedia Interface), VGA (Video Graphics Adapter), USB (Universal Serial Bus) and IEEE (Institute of Electrical and Electronics Engineers) 1394. There are also several different proprietary connectors which may be preferred for particular applications. The types of connectors may be modified to suit a particular application or as different connectors become adopted. 
         [0067]    In some implementations the computing device  100  is a stand-alone device, for example a box that can be placed on, or at least near, a television, that is similar to conventional devices for receiving cable programs. The computing device  100  could alternatively be performed by hardware resident elsewhere, such as within a television or display device  191 , or by any suitably equipped terminal device like, for example, personal computers, mobile phones, smartphones, tablet computers like Apple iPAD and Android based tablets. 
         [0068]      FIG. 2   b  shows an implementation of a signal interface module  110 . In the example illustrated in  FIG. 2   b , the signal interface  110  comprises a tuner, receiver, demodulator (TRD)  210 , demultiplexor  220 , video decoder  231 , audio decoder  232 , and metadata decoder  233 . A processing unit  120  may be connected to elements  210 ,  220  and  233  by means of the connections  215 ,  225  and  235  using any of a variety of connection types, including, for example, point to point connections, a bus, etc. In some implementations, the processing unit  120  may also be connected to video decoder  231  and audio decoder  232 . For the purpose of simplicity, these connections are not shown in  FIG. 2   b.    
         [0069]    In some implementations, some or all of the decoders are implemented in hardware. For example, a hardware video decoder can be a programmed semiconductor chip and/or a hard-coded semiconductor chip, like for example a microcontroller, a microprocessor, a digital signal processor, a Field Programmable Gate Array or an ASIC. In some implementations the decoders are capable of detecting MPEG-2, H.264, MPEG-4 or other multimedia data formats to recover video, audio, and/or multimedia information or metadata. 
         [0070]    In some implementations processing unit  120  executes instructions stored in memory. The instructions stored in memory, when executed by processing unit  120  perform various functions such as controlling the various elements of the signal interface  110 . For example, in one implementation, the demultiplexor  220 , under the control of the processing unit  120 , selects which of the channels received in TRD  210  will be transmitted to the decoders  231 ,  232 ,  233 . 
         [0071]    In some implementations TRD  210  receives signals from a multicast or broadcast media transmission. For example, TRD  210  may receive signals of a frequency band to which it is tuned and demodulates the signals to remove content signals from a carrier signal. Demodulated content signals are then supplied by tuner, receiver, and demodulator  210  to demultiplexor  220   
         [0072]    In some implementations demultiplexor  220  receives the demodulated content signals from tuner, receiver, and demodulator  210  and separates the content into multiple data streams representing various channels and then the demultiplexor  220  selects one of the channels. The content of the selected channel are then supplied as an input to decoders  231 ,  232 ,  233 . 
         [0073]    In some implementations video decoder  231  receives the video data stream from demultiplexor  220  and decodes or decompresses the data streams using an appropriate algorithm. For example, the decoder  231  may receive a compressed video signal using a MPEG-2 data stream, and video decoder  231  will decode the MPEG-2 data stream to form a standard video signal. In one implementation, the video signal from decoder  231  is then supplied to the video interface  190  using the communication  241 . 
         [0074]    In some implementations audio decoder  232  receives the audio data stream from demultiplexor and decodes or decompresses the audio using an appropriate algorithm. In some implementations the audio decoder transmits the audio content to the audio processing interface  165  using the communication  242 . 
         [0075]    In some implementations the metadata decoder  233  receives metadata from demultiplexor and stores it in memory  234  using the communication  243 . In some implementations, memory  234  may be one or more of RAM  132 , non-removable memory  140  or removable memory  150 . In one implementation the processing unit  120  accesses the metadata stored in memory  234  using the communication  245 . 
         [0076]      FIG. 3  shows another implementation of a signal interface module  110 . In the example illustrated in  FIG. 3 , the outputs of the video decoder  231 , the audio decoder  232  and the metadata decider  233  are digital data transmitted to a system bus  121 . The decoders  231 ,  232  and  233  are connected to the system bus  121  using the communications  341 ,  342  and  343 , respectively. The processing unit  120  and the RAM  137  are also connected to the system bus  121  using the connections  335  and  344 , respectively. In one implementation the decoders  231 ,  232  and  233  transmit the output data directly to the processing unit  120 , for example using a software or hardware interrupt. 
         [0077]    In some implementations the decoders  231 ,  232  and  233  store the output data in the RAM  137  and the processing unit  120  accesses the data stored in RAM  137  via the decoders. In one implementation the decoders use a direct memory access (DMA) system to store data in RAM  137 . 
         [0078]      FIG. 4  shows an implementation of a video interface  190 . In the example illustrated in  FIG. 4 , the video interface comprises a graphic processing unit (GPU)  410  which is configurable to perform processing of the video data, a video memory  430 , a digital to analog converter (DAC)  420  and a video hardware overlay module  440 . In some implementations, when the video memory  430  is read, the resulting data may be then provided to a digital-to-analog converter (DAC)  420  which outputs a corresponding analog video signal suitable for display by an analog display device. In some implementations, the display device may be configured to process the digital data without the need of a digital-to-analog converter. 
         [0079]    In some implementations, the video interface  190  cooperates with a software graphics device driver  450 , which may include an application programming interface (API)  451  that provides an interface between the video interface  190  and an application program  400 . 
         [0080]    In a graphical user interface (GUI) operating system, one display device can typically display multiple applications and video signals simultaneously. 
         [0081]    Without a hardware overlay, when an application draws to the screen, the operating system&#39;s graphical system constantly checks to ensure that the objects being drawn appear on the appropriate location on the screen, and that they don&#39;t collide with overlapping and neighboring windows. The graphical system must clip objects while they are being drawn when a collision occurs. This constant checking and clipping ensures that different applications can cooperate with one another in sharing a display, but also consumes a significant proportion of computing power. 
         [0082]    A computing device typically draws on its display by writing a bitmapped representation of the graphics into the video memory  430 . Without any hardware overlays, only one chunk of video memory exists, which all applications share, and the location of a given application&#39;s video memory moves whenever the user changes the position of the application&#39;s window. With shared video memory, an application must constantly check that it is only writing to memory that belongs to that application. 
         [0083]    An application or a video signal using a hardware overlay gets a separate section of video memory that belongs only to that application or signal. Because nothing else uses it, the computing device never needs to waste resources in checking whether a given piece of the video memory belongs to it, nor does it need to monitor whether the user moves the window and changes the location of the video memory. To get the image from the separate video memory to display in tandem with the remaining shared elements on the display, the graphical system associates a certain attribute (for example, a particular color) as a “mask” for that overlay, which the graphics card understands to mean that it is to draw from the separate overlay buffer onto the screen. This technique has become known as “chroma key”. 
         [0084]    In some implementations, the video interface  190  may comprise a video hardware overlay module  440  to combine in the display device  191  different video and/or graphic data. One example is a combination comprising the video output of the video decoder  231  and the graphics or video generated with the assistance of user-downloaded application program  400 . The video hardware overlay module may be configured by the GPU  410  or by the processing unit  120 , for example using the graphics device driver  450  and/or the API  451 . Other implementations may combine the different video and/or graphic data, such as, for example, the video output  441  of the video decoder  231  and the graphics or video generated with the assistance of a user-downloaded application program  400 , without using a hardware overlay module. 
         [0085]    In some implementations the video decoder  231  transmits video data to the video hardware overlay module  440  using a direct communication like the communication  241  shown in  FIG. 4 . In other implementations the video hardware overlay module  440  may access the video data output of a video decoder for example using RAM  137 , the graphic processing unit (GPU)  410  or the processing unit  120 . 
         [0086]      FIG. 5  shows an implementation wherein the computing device  100  has selected a particular TV channel for playback, such as a digital TV channel. The selected TV channel may be, for example, of the type DVB, DVB-H, ATSC, ISDB-T, a cable TV channel, a satellite TV channel, etc. Henceforth we will refer to the different types of channels as television channels or TV channels. 
         [0087]    In some implementations the video signal of a TV channel selected on the computing device  100  is presented in the area  530  of display device  191  while the audio signal from the selected TV channel is played through the audio processing interface  165  which can, for example, be equipped with internal speakers or connected to external speakers  167  as shown in  FIG. 1 . The audio processing Interface can also be equipped to be connected to a headset or other audio representation devices. 
         [0088]      FIG. 5  illustrates implementations where a software program  510  contains executable instructions running on the computing device  100 . In some implementations APP  510  is software that runs on the computing device and which has been transmitted to the computing device via a data network accessed by the computing device, for example, using the network interface  170 . The computer transmitting the APP  510  to computing device may be an Internet server or a website as explained in some examples below. In some implementations the software program APP  510  is a user-downloaded application program that may be downloaded into a memory of the computing device  100  by a user of the computing device from an on-line application store. 
         [0089]    An on-line application store is an electronic store connected to the Internet which allows users to search, buy and/or download software programs to the computing device. These software programs are usually referred to as “Apps”. These programs may be developed by third party developers using special programming tools specific to an application store and/or a specific device and/or a specific operating system. A third party developer may be a software developer company different from the company that develops and sells the computing device and the company that operates the application store. Usually the third party developer must register in an application store to offer its software product. An example of an application store is the Apple App Store where a user of Apple products, such as the iPhone, iPod Touch and iPad, may purchase and download application programs specific to such devices. Some applications of the Apple App Store may include software modules with specific functionalities. For example, the iPhone Store kit is a software module used to allow “in app purchase”. 
         [0090]    For the purposes of this description, software program or software product means a program consisting of a set of instructions loadable in a memory of a computing device and executable individually or in combination with another software program. Software products according to this definition are, for example, a computer program, a setup program that installs a program on a computer, an upgrade package of a computer program, an installation file for the online downloading of a computer program or an upgrade thereof, a computer program library, etc. Software module means a set of instructions integrated with, incorporated with, or otherwise designated to run with a software product to provide specific functions. Software modules may be, for example, a component, a function or set of functions, a dynamic library, a class or set of classes, a control or class with a graphical interface, etc. 
         [0091]    In some implementations APP  510  accesses metadata  234   a  containing information on the TV channel selected by the computing device  100 . The metadata  234   a  may be, for example, an identifier of the selected TV channel. In this manner APP  510  can know which TV channel has been selected or is being played in the computing device  100 . 
         [0092]    Metadata  234   a  may contain information about the selected TV channel in the computing device and on other TV channels accessible from the computing device  100 . 
         [0093]    In some implementations metadata  234   a  is obtained from the data signal  101 . For example, in the case of DVB TV systems used in Europe, such as DVB-T, DVB-S or DVB-H, metadata  234   a  can be obtained from different table data, such as for example Service Information (SI), Program Specific Information (PSI) and Electronic Program Guide (EPG) data, as explained above. Based on the data from these tables that the computing device receives with data signal  101 , the computing device stores metadata  234   a  accessible by APP  510 . 
         [0094]    There are numerous types of EPGs and/or metadata that are in use today. The implementations disclosed and contemplated herein related to EPGs and metadata are not intended to be limited to any particular type of EPG or metadata. 
         [0095]    In the United States of America the Advanced Television System Committee (ATSC) standard has been developed for digital terrestrial and cable television. Like the SI and PSI tables in DVB, the ATSC standard utilizes Program and System Information Protocol (PSIP) tables. Japan has defined its own tables in its Integrated Services Digital Broadcasting—Terrestrial (ISDB-T) standard. These tables are called ARIB (Association of Radio Industries and Business). China has its own digital terrestrial television standard known as Digital Multimedia Broadcasting—Terrestrial (DNB-T) that utilizes metadata tables. In some implementations APP  510  has the ability to access metadata of multiple television systems that use different tables with different formats. 
         [0096]    In some implementations metadata  234   a  may have the same structure as the metadata of the aforementioned television standards, such as DVB-SI, DVB-PSI, DVB-EPG, ATSC-PSIP, and ISDBT-ARIB. Other metadata defined by other standards can be equally used in other implementations. 
         [0097]    In some implementations, metadata  234   a  is stored in a storage device  234  of the computing device  100  in a common format readable by the APP  510  program regardless of the television standard used by the computing device to receive the metadata. In such implementations the APP  510  program may read metadata  234   a  associated with multiple television standards. As an example, in some implementations the metadata of the different television standards is stored using the XML standard. 
         [0098]    In some implementations, the computing device  100  receives television information on-line through the network interface  170 , for example through an internet connection with a data site  234 S such as that depicted in  FIG. 7 . In some implementations the information accessed and transmitted to computing device  100  from site  234 S is data  234   b  that identifies the television programs that may be received by the computing device via different television systems such as digital terrestrial television (e.g. DVB-T, ATSC, ISDB-t), Internet television (e.g. via IP unicast, multicast or broadcast packets), mobile digital television (e.g. DVB-H), etc. This advantageously enables the computing device  100  to receive from a single source data associated with different television systems. 
         [0099]    In some implementations data  234   b  received by the computing device  100  from site  234 S may include, for example, information that uniquely identifies each TV channel and the content that each channel is transmitting or is going to transmit. This information can be read by a program running on the computing device, for example to detect which is the television program selected and/or the content which is being played on the computing device. In some implementations the data  234   b  may also contain information on programs to be transmitted by one or more television channels in the next minutes, hours, days or weeks. 
         [0100]    In some implementations data  234   b  may be stored on a computer other than the computing device  100 , such as a server connected to the internet, and APP  510  can access data  234   b  via the Internet. In some implementations data  234   b , or portions thereof, is stored in the computing device and is updated periodically through an internet communication with another computer that possesses the updated data  234   b.    
         [0101]    In some implementations the site  234 S only transmits to the computing device  100  information associated with television channels that the computing device can receive. For example, information associated with a country, a given location of the computing device and/or information from pay television channels to which the computing device  100  user is subscribed. 
         [0102]    In some implementations data  234   a ,  234   b  are stored in a memory  234  of the computing device  100  and APP  510  accesses the data  234   a ,  234   b  to obtain information on the program selected, such as for example one or more data identifying the selected program or information on future programs to be broadcast at the selected TV channel. 
         [0103]    In some implementations APP  510  accesses the data  234   a ,  234   b  by use of a software module  520 . The use of a software module to access data  234   a ,  234   b  relieves the APP  510  programmer from having to know in detail the operation of the data associated with the different television standards. 
         [0104]    In some implementations APP  510  detects the TV channel selected on the computing device through executable instructions residing in a software module  520  that is incorporated into the APP  510 . For example, the software module  520  may read the metadata associated with the channel selected and determine an IDTV identifier that uniquely identifies each TV channel. In some implementations APP  510  is configured to operate differently or to offer different functions based on the TV channel selected to be watched or being watched in the computing device  100 . 
         [0105]    In some implementations APP  510  is used in the transmission of a video signal or graphics that are displayed or superimposed on the area  530  along with other video or graphics. These overlay graphics or video are shown in  FIG. 5  with the figure element indicated as APP overlay  540 . Although  FIG. 5  shows the APP overlay  540  element of a smaller size than the video area  530 , in some implementations the APP overlay  540  may overlay the entirety of the area  530  or all images of the selected TV channel, thus showing the APP overlay  540  video instead of the selected TV channel video in the display device  191 . 
         [0106]    In some implementations, the computing device associates each different television channel with a unique identifier, such as an integer or a GUID (Global Unique Identifier), hereafter referred to as unique television channel identifier or IDTV. In some implementations the computing device  100  obtains the IDTV identifier for each television channel from metadata  234   a ,  234   b , for example the IDTV datum that identifies each TV channel can be a datum or a combination of data from the metadata  234   a ,  234   b  associated with each television channel. 
         [0107]    In some implementations, the video decoder, audio decoder and metadata decoder are software decoders resident in a computing device resource, wherein the software decoder can be dynamically loaded to the memory  132  whenever the data decoding is required. The example of  FIG. 6  shows an implementation with a decoder program  610  comprising an audio decoder  612 , a video decoder  611  and a metadata decoder  613 . Other implementations are possible. For example, the video decoder may be a hardware decoder and the audio and metadata decoder may be software decoders. 
         [0108]    In some implementations of the example of the  FIG. 6 , the output of the audio decoder  612  is transmitted to the audio processing interface  165  or to a video renderer program  620 . The output of the metadata decoder  613  is stored in the memory  234  accessible to the APP  510 , the software module  520  (if applicable) and/or the video renderer program  620 . 
         [0109]    In some implementations, the output of the video decoder  611  is transmitted to the video renderer program  620 , like for example a multimedia player, that communicates with the video interface  190  using the graphics device driver  450 . The video renderer program may also communicate with the audio processing interface and synchronize the reproduction of video and audio. 
         [0110]      FIG. 7  illustrates various implementations wherein the computing device  100  receives, through a network interface, data  760 . Data  760  may include, for example, audio data, video data and/or other types of data and content. The other types of data, may include, for example, subtitles to be displayed in conjunction with the video data. 
         [0111]    In some implementations data  760  resides in an external computing device  750 , such as a server, and is accessible to computing device  100  via a data network  755 . In some implementations the data network is the internet. 
         [0112]    Hereafter computer  750  is referred to as site  750 . A site refers to a computing device or a set of computing devices connected to a data network capable of exchanging information and services with other sites and computer devices through the data network. When the data network is the Internet, sites may be associated with a Uniform Resource Identifier (URI) to provide other computing devices and sites with access to data and services without entering the IP address of the site in the form of numbers. Communications between a site and another computer or site may use different protocols such as IPv4, IPv6 TCP/IP, UDP, RTP, RTSP, http, HTTPS, MOBILE IPv4, MOBILE IPv6, IPSEC, SNMP, SOAP, XML, IGMP, and others. 
         [0113]    In some implementations site  750  comprises one or multiple servers running different programs, such as a web server  752 , a database  751  and/or other programs. For example, site  750  may execute a program to transmit data between the site  750  and the computing device  100 . Such a program may run on web server  752  or on the site  750  independently of the web server  752 . 
         [0114]    The example of  FIG. 7  shows a display device  191   b  incorporated into the computing device itself. The display device may be, for example, an LCD screen and/or a touch screen that allows users to interact with a graphical interface of the computing device via the touch screen. As mentioned above, the display device can also be an external element. 
         [0115]      FIG. 7  shows the use of internal speakers  167   b . However, it is appreciated that the computing device may utilize other types of audio devices such as external speakers and headphones. 
         [0116]    In the example of  FIG. 7 , the computing device plays a selected TV channel, for instance by playing video on the display device  191   b  and audio on the speakers  167   b . In some implementations the computing device  100  transmits to site  750  data  740  that include information identifying the selected television channel which is being played on the computing device  100 , for example by using the IDTV identifier explained above or any other data that identifies the TV channel selected in the computing device 
         [0117]    In some implementations, in response to receiving data  740  from computing device  100 , site  750  transmits data  760  to the computing device  100  that includes content such as one or more of audio, video, subtitles, text, and/or graphics for such content to be played on the computing device together with the selected TV channel or replacing all or part of the contents of the selected TV channel. 
         [0118]    In some implementations data  760  includes content that is displayed overlapping the content of the selected TV channel in the computing device  100 . For example, data  760  may contain subtitles  760   a  in a given language and corresponding to the content of the television channel that is playing on the computing device  100 , such as subtitles in a film or a TV series. 
         [0119]    In some implementations data  760   a  are transmitted from the site  750  to the computing device  100  separately from the data  760 . For example, the language of the subtitles  760   a  can be selected from the computing device  100  by transmitting identifying data  740   a  of the selected language to site  750 . Data  740   a  may be transmitted to site  750  as a part of data  740  or may be transmitted to site  750  separately. In response to receiving data  760   a  from site  750 , in some implementations the computing device displays the subtitles superimposed on the video corresponding to the television channel, for example in the APP  540  area as explained above. 
         [0120]    When it is stated that some data can be transmitted together with the data  740  or data  760  it is understood that such data can be transmitted within the data  740  or  760  or can also be transmitted separately from the data  740  or  760 , for example by using different IP packets, different UDP ports, different TCP/IP connections, etc. For example, site  750  may use different UDP ports and/or connections to transmit different streams of audio and video and can even use different source IP addresses, for example by transmitting a video stream from a server and an audio stream from another server that has a different IP address. 
         [0121]    In some implementations APP  510  selects the subtitle language and causes it to be transmitted to site  750  in the  740   a  data along with the television channel identifier. In some implementations the same APP  510  receives in return data  760   a  and causes the subtitles to be displayed in the APP overlay  540  area, for example by calling functions of the aforementioned graphics device driver  450 . In some implementations, the APP  510  produces a graphical interface that allows the user of the computing device  100  to select the subtitle language. 
         [0122]    In some implementations a software module  520  is included with the APP  510  and performs some or all of the functions explained, such as for example detecting the selected TV channel, showing a graphical interface to select the subtitle language, sending the IDTV identifier and data  740   a  to site  750 , receiving site subtitles  760   a  from site  750  and displaying subtitles  760   a  in the APP overlay  540  area. In some implementations, the software module  520  shows subtitles  760   a  in the APP overlay  540  area using the graphics device driver  450  and/or API  451 . 
         [0123]    In some implementations data  760  includes content that partially replaces contents of a selected TV channel. For example, a user of computing device  100  may select that all or portions of the audio of a selected TV channel be presented in a given language which results in audio data  760   b  being transmitted from site  750  to the computing device. In this manner, the audio data  760   b  may be reproduced in the computing device instead of the audio transmitted by the selected TV channel. This makes it possible, for example, to watch a film in a language other than the language in which the film is being broadcast on television. 
         [0124]    In some implementations APP  510  is used to select an audio language to be played during the broadcast of a TV channel in the computing device and causes language identifying data  740   b  to be transmitted to site  750 . In some implementations APP  510  receives or facilitates the reception of the audio data  760   b  in the chosen language and facilitates the playing of this audio through the speakers in synchronization with the TV channel video signal. 
         [0125]    In some implementations a software module  520  associated with APP  510  performs some or all of the functions associated with causing audio data  760   b  to be played in the computing device  100 . Such functions may include, for example, to detect the selected TV channel, to display a graphical interface to select the audio language, to send the IDTV identifier and data  740   b  to the site  750 , to receive audio  760   b  from the site  750  and to play audio  760   b.    
         [0126]    In some implementations data  760  includes content that partially replaces contents of a selected TV channel while also superimposing on the content of a selected television channel. For example, in  FIG. 7  data  760  may simultaneously contain audio data  760   b  and subtitle data  760   a  that when received in the computing device  100  is used to replace all or portions of the audio content of a selected TV channel while also superimposing subtitles  760   a  on the video display. 
         [0127]    In some implementations APP  510  is useable for selecting a first language for subtitles and a second language for audio and for transmitting the first-language-identifying data  740   a  and the second-language-identifying data  740   b  together with the data  740  and with the television channel identifier. In some implementations the same APP  510  receives data  760   a  containing subtitles and data  760   b  containing the audio and plays the audio through the speakers in synchronization with the playing of the TV channel video signal and displays the subtitles in the APP overlay  540  area, for example by calling functions of the graphics device driver  450  and/or API  451 . In some implementations, a software module  520  associated with the APP  510  performs some or all of these functions. 
         [0128]    In some implementations, data  760  includes content that replaces the content of the selected television channel. 
         [0129]    In some implementations APP  510  and/or software module  520  do not perform the aforementioned functions in their entirety. For example, in some implementations APP  510  and/or software module  520  may perform only portions of some of the functions. In some implementations APP  510  and/or software module  520  may only cause or facilitate the initiation of the functions within the computing device  100  without actually performing the functions themselves. 
         [0130]      FIG. 8  shows an implementation wherein the element  810  represents the content of a broadcast or multicast television channel selected in the computing device by a television channel that may contain audio, video and subtitles, for example received through the data signal  101  of  FIG. 1 . Element  820  represents the data transmitted by the site  750 , for example through the Internet. The element  830  shows the content played on the computing device in accordance with one implementation where contents  810  and  820  are combined. Between the times T 0  and T 1  the computing device plays content  101   a  of the selected TV channel. Between the times T 1  and T 2 , the computing device plays the content data  760   c  transmitted by the site  750 . Between the times T 2  and T 3  the computing device returns to play the content  101   c  of the selected TV channel. 
         [0131]    In some implementations APP  510  causes the content of the television channel to be replaced for the content  760   c  between the times T 1  and T 2 . For example, APP  510  receives information from the site  750  indicating that between the times T 1  and T 2  it must reproduce the multimedia content  760   c  stored in the database  751  of site  750 . In some implementations, in response the application program APP  510  communicates with the video interface  190  and the audio processing interface  165  and selects which video signal to process through the video interface  190  and which audio signal to process through the audio interface  165  at a given moment. 
         [0132]    In some implementations the content  760   c  contains some advertisements, for example advertisements that subsidize the broadcasting of content on the television channel. Between the times T 1  and T 2  the TV channel can transmit advertisements  101   b  that the computing device  100  receives but replaces them with the advertisement content  760   c . In this way, computing devices, such as televisions, which receive the selected television channel and do not have the APP  510 , can display a common advertising content  101   b  while the computing device  100  can receive and display different advertisement content  760   c.    
         [0133]    In some implementations, the broadcast content transmitted to the computing device  100  does not include advertising content, but instead includes place holders that facilitate or otherwise enable the integration of advertising content or other content from a source other than the TV channel broadcast source. In some implementations the source other than the TV channel broadcast source is the internet. 
         [0134]    It is important to note that the content integrated with or otherwise incorporated with the main content of the broadcast channel need not be advertising. For example, in some implementations the application program APP  510  received from an APP store enables a user to select the type of content to be integrated with or otherwise incorporated in the broadcast during for example the time interval T 1 -T 2 . For example, based upon the manner in which the APP  510  was received, the user may be presented with different content options. For example, if APP  510  was purchased for a fee from an APP store the user may be provided with a variety of options which may include edited scenes, trailers, actor or director profiles, actor or director interviews or commentary, short film/TV segments, news segments, general entertainment segments, entertainment segments or news segments associated with the broadcast, etc. In some implementations APP  510  may cause or facilitate web browsing, e-mail access, temporarily changing the selected channel to another channel, or other functions during the time interval T 1 -T 2 . The “another channel” may be pre-selected by a user of the computing device or automatically selected by the computing device. For example, if a user is watching a sports channel, movie channel, documentary channel or reality TV channel, then the “another channel” may be another sports, movie, documentary, or reality TV channel, respectively. In some implementations, the computing device automatically resumes representing (e.g., displaying the main content of the broadcast in the form of video and/or audio) in the computing device  100  when the time interval expires, while in other implementations the computing device may produce an alert when the time interval expires and provide a user of the computing device an option to resume the broadcast or to continue with an existing or other activity. 
         [0135]    In some implementations the other functions facilitated by APP  510  during the time interval T 1 -T 2  may include the initiations or resumption of a video game, a gaming operation, or other activity. For example, if the selected TV channel content is a soccer match, during the time interval T 1 -T 2 , a soccer video game is made available for use by a user or users of the computing device. The video game may be for example one that has been previously stored on the computing device or one made accessible on-line via the internet. The video game may be a single user game or one that permits multi-viewer participation. In some implementations the video game is made available free of charge for a selected period of time (e.g., the duration of the selected TV channel program, the duration the selected TV channel is being played in the computing device, a pre-determined time period, etc.) or for a selected number of play sessions. 
         [0136]    It is important to note that the terms “integrated with” and “incorporated in” are not to be construed in a limiting manner. The terms are meant to include any means used to facilitate the playing of a broadcast content with other content. The other content may be content previous stored in a memory of the computing device  100 . The content previously stored may be content from a broadcast previously played in the computing device, content from a source other than the broadcast source, etc. For example, when a broadcast includes a sporting event the computing device may store in memory certain previously played highlights and during the time interval T 1 -T 2  the computing device replays all or some of the stored highlights. The same is applicable to movies and other forms of content where certain scenes of the selected broadcast channel (e.g., favourite scenes) are stored in the computing device. In some implementations the highlights/scenes are predetermined by the broadcast source, while in other implementations the highlights/scenes are selected by a user of the computing device during the playing of the selected broadcast in the computing device. For example, during the playing of the selected TV channel some of the content may be temporarily stored in a buffer or other memory device and upon a user selecting a user-interface function (e.g., by use of key of a remote control device, selection of a display icon, etc.) all or a portion of the content stored in the buffer is selected to be replayed during time interval T 1 -T 2 . In some implementations the broadcast content includes markers or other information that identifies or delineates scenes or content segments. This facilitates the storing of complete scenes or content segments in the buffer or other memory device. Thus, upon a user making a selection of a content segment to be replayed, the computing device stores the highlights/scenes by use of the identifiers or delineations. 
         [0137]    In some implementations or all of the implementations disclosed herein, the application program APP  510 , and or a software module associated with APP  510 , provides or facilitates the implementation capabilities. For example, an application program APP  510  that related to a golfing channel may be purchased on-line from the computing device from an APP store. Upon the application program APP  510  being downloaded and/or activated in the computing device, one or more functions may be automatically activated or otherwise selected by a user of the computing device to alter a predetermined reproduction of the broadcast content of the golfing channel. For example, a capability of initiating a video golfing game during broadcast segments that would otherwise involve the playing of advertisements may be enabled. In this example, as well with others, the selected TV channel broadcast signal may include data that is used to access a video game on-line that represents the same course, playing field, participants, etc. as those involved in the selected TV channel broadcast. 
         [0138]    In some implementations the computing device  100  does not allow the user to change the channel or skip the advertising content  760   c . For example, the APP  510  may contain executable instructions that when executed in processing unit  120  block channel changing in the signal interface  110  using for example a configuration register of the signal interface  110 . The processing unit  120  can use a configuration register in the interface signal that indicates whether the channel can be changed or not. 
         [0139]    In some implementations processing unit  120  transmits to the signal interface  110  the time duration of content  760   c  and the time T 1  when content  760   c  begins. In response, the signal interface  110  of the computing device  100  restricts or prevents the changing of the channel between times T 1  and T 2 . 
         [0140]    In some implementations executable instructions implemented in the processing unit  120  of the computing device  100  detect if the user tries to change the channel during playback of the advertising content  760   c  and causes a display a message, for example indicating that the television content being received is funded by the advertising and that he or she must wait until the advertising has finished to change the channel. 
         [0141]    In some implementations a display message is caused to be produced in a user interface of the computing device that allows the user to choose between changing the channel and not being able to continue watching the contents of the selected TV channel for a certain time or playing the advertising content and continue to watch the contents of the television channel. The certain time may be, for example, the duration of the television program, a chapter of a serial or other content. 
         [0142]    In some implementations the executable instructions that control whether the computing device  100  can change TV channels, display messages and/or user interfaces are included in the APP  510  and/or software module  520 . 
         [0143]    In some implementations site  750  transmits content  760   c  to the computing device before time T 1  and the computing device can locally store file content  760   c  to play it from the time T 1 . 
         [0144]    In some implementations computing device  100  receives the content transmitted by the site  750  using a streaming protocol, such as using RTSP and RTP protocols 
         [0145]    In some implementations the computing device  100 , its operating system and/or APP  510  may use different buffers for storing data  760 , for example audio, video and/or subtitle data, and facilitate the synchronization of the audio, video and subtitles of a given content, such as a film or a television channel. 
         [0146]    The streaming protocol RTSP (Real Time Streaming Protocol), is described in RFC 2326 specifications published online by IETF (Schulzrine H. et al., Internet Engineering Task Force, Network Working Group, Request for Comments 2326, April 1998; currently available on the Internet http://www.ietf.org/rfc/rfc2326.txt) RTSP protocol operation is closely related to two other protocols of the IETF (Internet Engineering Task Force): SDP and RTP protocols. The SDP (Session Description Protocol) is described in RFC 4566 specifications published online by IETF. (M. Handley et al., Request For Comments 4566, Network Working Group, July 2006, now available on the Internet at http://www.ietf.org/rfc/rfc4566.txt). The RTP (Real-time Transport Protocol) is described in RFC 3550 specifications published online by IETF (H. Schultzrinne. et al., Request For Comment 3550, Network Working Group, July 2003, currently available on the Internet: http://www.ietf.org/rfc/rfc3550.txt). 
         [0147]    In some implementations APP  510  causes content  760   c  to directly play on the display device  191   b  and speakers  167   b , for example by directly accessing the graphics device driver and the driver of the audio processing interface. 
         [0148]    In some implementations the application program APP  510  establishes communication with the multimedia player  710  in a manner that enables the multimedia player to reproduce content  760   c  on the display device  191   b  and speakers  167   b.    
         [0149]    Although  FIG. 8  shows for the sake of simplicity content  810  that contains a single piece of advertising  101   b , other configurations are possible. For example, in other implementations, such as in the example shown in  FIG. 9 , the content received by the computing device via the signal  101 , such as for example a TV channel, may contain multiple pieces of advertising and various pieces of non-advertising content.  FIG. 9  shows an example of content  900  with three pieces of advertising  921 ,  923  and  925  and three pieces of non-advertising content  922 ,  924  and  926 . 
         [0150]    In some implementations the computing device  100  may receive from an internet site, such as site  750 , advertising content based on the geographical location of the computing device or any other information associated with the computing device or the user of the computing device. Thus, not all computing devices  100  playing a selected TV channel may receive the same advertising content  760   c . In some implementations the computing device sends to site  750  data  740   c  associated with the computing device or user with the data being used by the site  750  to select the most appropriate advertising content  760   c.    
         [0151]    In some implementations data  740   c  may include information that identifies the computing device  100  user in the database  751 . For example, the computing device user may have registered in a web page of the web server  752  of site  750 , transmitting registration data which are stored in the database  751 . Upon registration, the user can choose identifier data, such as for example the e-mail address or other identifier data, and a password that allows the user, for example, to access his or her data and modify them. In the registration process with the website server  752 , the user may enter different data that can be used by the site  750  to select the advertising  760   c . For example, site  750  may select the advertising  760   c  taking into account any combination of the following user data: age, gender (male or female), occupation, hobbies, favourite brands of certain products or services, annual revenue of the user, user address coordinates such as longitude and latitude or GPS coordinates, zip code, population, area or region, country, state, a language for example specified by the user through the registration process and/or any other information entered by the user in the registration process. 
         [0152]    In some implementations site  750  also may select the advertising content  760   c  by using data related to the computing device, such as any combination of the following data: type of computing device used as well as brand and model, IP address used by the computing device to communicate with the site  750 , level  2  address in the OSI model of a computing device network interface such as a MAC-type address, a level  2  address in the OSI model of network interface of a router that communicates with the computing device such as a MAC-type address of a WiFi router used by the computing device to access Internet and to communicate with the site  750  through the Internet. 
         [0153]    In some implementations site  750  can determine the approximate location of the computing device  100  and use this approximate location as one of the criteria for selecting the advertising content  760   c . For example, the site  750  can determine the approximate location of the computing device based on the IP address used to communicate with the site  750  or on the MAC address of the WiFi router used by the computing device to access the internet. 
         [0154]    It is to be appreciated that location information may be used in conjunction with some or all of the implementations disclosed herein. For example, when a selected TV channel broadcast reproduction in a computing device is altered to include news content in lieu of advertisement content, the news content may be location specific. 
         [0155]    There are databases for determining the approximate location of a computing device based on the MAC address of the WIFI router used by the computing device. These databases were originally created by cars driving on the streets with a GPS which recorded the MAC Address of the WiFi routers they detected. This technique was used by the companies Skyhook and Google. A more recent approach to create such a database is used by some mobile services of mobile phones, for example, the iPhone, which in certain privacy settings, records the WIFI routers detected, associating GPS type coordinates to them and sends that information to Apple. Even some desktop computers, such as the Apple iMAC, record WIFI routers detected and periodically send that information to Apple. 
         [0156]    In some implementations site  750  has access to a WiFi routers database used to determine the approximate position of the computing device  100 . In some implementations a WiFi routers database can be part of the site  750  or may be an external database, for example, from an external service provider that supplies this information to site  750 . 
         [0157]    In some implementations the computing device may incorporate a GPS and send location data to the site  750 , for example included in the data  740   c.    
         [0158]    In some implementations device  100  uses different communication protocols to receive content, such as the aforementioned RTSP, RTP and SDP protocols or other protocols such as HTML 5, Flash, and any other protocol or standard allowing the download and progressive playback of multimedia content or the download and subsequent playback of multimedia content. 
         [0159]      FIG. 10  shows an example wherein the computing device plays between times T 0  and T 1  content  101   a  of the selected television channel, for example a TV channel being received by the data signal  101 . In the example shown in  FIG. 10 , from the time T 1  the computing device receives content  760   d , for instance a content  760   d  transmitted by the site  750  using a streaming protocol. 
         [0160]    In some implementations content  760   d  is the continuation of content  101   a  without including advertising. This allows, for example, a user to start watching a film or a TV series that can be received via the data signal  101  and at time T 1  when the advertising content  101   b  starts, the user decides to view the content without advertising and sends data  740   d  to establish communication with the site  750  to continue watching the film or television series through streaming and without advertising. In some implementations data  740   d  may include information to select an audio and/or subtitle language other than those used in the content  101   a.    
         [0161]    In some implementations the computing device  100  and/or user of the computing device  100  are registered with the site  750 . The site  750  can charge users a fee for transmitting the content  760   d  through streaming, for example by charging a fee (e.g., $0.99) to a credit card of the user. In some implementations the amount charged to the user by site  750  varies depending on the content transmitted and/or depending on the definition of the content. For instance a higher fee may be charged for HD (high definition) content and a lower fee for low definition content. 
         [0162]    In some implementations the computing device  100  can transmit data  740   d  and start receiving streaming content from the site  750  at any time from the time T 0  without needing to wait for time T 1 . 
         [0163]    In some implementations the computing device can send data  740   d  and start receiving streaming content from the site  750  prior to the time T 0 . In one embodiment, site  750  may charge a fee to the user of the computing device  100  depending on when the user requests to receive streaming content. 
         [0164]      FIG. 11  shows an example wherein the computing device  100  plays between times T 0  and T 1  content  101   a  of the selected television channel, for example a television channel that is received via the data signal  101 . In the example of  FIG. 11 , from the time T 1  the computing device receives advertising content  760   e   1  transmitted by the website  750  using a streaming protocol and from the time T 2  the user receives a non-advertising content  760   e   2  similar to content  101   c  with the difference that content  760   e   2  is transmitted via streaming to the computing device. 
         [0165]    In some implementations the advertising content  760   e   1  is content selected by site  750  based on data associated with the computing device  100  such as for instance geographic location or any other data referred to above. This allows the replacing of non-customized advertisements  101   b  with customized advertisements  760   e   1 . 
         [0166]    In the example of  FIG. 11 , a user may decide to watch streaming content from an on-line source and initiates a streaming session by sending data  740   d  to site  750  to continue watching the film or television series through streaming. In some implementations the computing device  100  and/or user of the computing device  100  are registered with site  750 . 
         [0167]    In some implementations the computing device can send data  740   d  to site  750  to initiate receiving streaming content from the site  750  prior to the time T 1 , for example at a time between T 0  and T 1 , and site  750  can transmit more or less advertising content depending on the time at which the content is transmitted. In some implementations the computing may send data  740   d  to site  750  to initiate receiving streaming content prior to time T 0 . 
         [0168]    In some implementations, as shown in the examples of  FIGS. 10 and 11 , the user has a set time to watch the content (e.g., minutes, hours, days, weeks etc.). 
         [0169]    In the United States of America it is usual for televisions to broadcast content with advertising, such as television serials, and this content can be watched by streaming the next day or several days after it having been broadcasted on television, whether by paying (e.g. at Amazon.com, Apple iTunes online stores, etc.) or by receiving the content with advertising (e.g. via site www.hulu.com). 
         [0170]    In some implementations, time T 0  is the time at which the content, a television series for example, is first broadcast on television. 
         [0171]    Although  FIG. 7  shows a single site  750 , in some implementations multiple sites may be involved, for example, by establishing communications between different sites through the Internet.  FIG. 12  shows an example of some implementations that involve the use of multiple sites. 
         [0172]    In some implementations the application program APP  510  purchased on-line and downloaded to computing device  100  enables the content of a broadcast program to be downloaded or streamed to the computing device from an on-line source prior to the scheduled broadcast time. In some implementations, an application program APP  510  purchased on-line and downloaded to computing device enables a user of the computing device to divert the reception of content from a broadcast source to an on-line source. For example, a user may begin watching a TV program that includes advertising from a broadcast source and may, by the use of an application program  510 , divert the reception of the TV program content to an on-line source (e.g., streaming source) that transmits the content without advertising 
         [0173]    In some implementations an application program APP  510  purchased on-line and downloaded to computing device  100  provides passwords, codes, decryption, descrambling, or other data that is useable to enable an encrypted, scrambled, or otherwise unavailable broadcast channel to be received and/or viewed in the computing device. For example, in lieu of paying a monthly fee to obtain access to the Discovery Channel, a user of the computing device may purchase on-line an application program APP  510  that when downloaded to the computing device enables receiving and/or viewing of the Discovery Channel for a designated time period or permits the viewing of a specific program or sets of programs. In some implementations APP  510  provides functions or otherwise enables the reception and/or viewing. The functions may be, for example, decryption and/or unscrambling functions. The functions may also include providing decryption keys, passwords or other data that is transmitted to a set-top box, or other equipment within or associated with the computing device, that cause the other equipment to appropriately decrypt, unscramble, or otherwise make available broadcast content normally not receivable or viewable in the computing device. 
         [0174]    In some implementations the program APP  510  is acquired and/or downloaded online from an application store or vendor site  20 . In some implementations, the APP  510  contains a software module  520 . When the program APP  510  is executed in the computing device  100 , it performs one or more of the implementations disclosed herein. In some implementations APP  510  uses the software module  520  to perform one or more processes, for example the implementations disclosed in conjunction with  FIGS. 7 to 11 . The software module  520  may interact with the application program APP  510 , for example, by a series of functions, classes or methods. 
         [0175]    In the example of  FIG. 12 , the data network in which the processes are executed is the Internet. In some implementations the system may be made up of at least one developer company having a developer site  30 , at least one vendor site  20  where the software product APP is offered, and a plurality of computing devices  100  (only one shown in  FIG. 12 ). In some implementations the vendor site  20  is an application store, like for example the Apple App Store or the Android Marketplace 
         [0176]    In some implementations site  234 S and a supervising site  50  are also involved. The vendor site  20 , the developer site  30  and the supervising site  50  may execute different program applications like for example a main webpage, respectively  22 ,  32 ,  52 , and a database, respectively  21 ,  31 ,  51 . 
         [0177]    In some implementations site  30  and site  750  are different sites that may communicate with each other using the communication  1230 . In some implementations the developer site  30  and the site  750  may be the same site. 
         [0178]    Software products APP  510  are generally computer programs and may comprise entire programs, an installation program which installs a computer program or downloads the installation files from a computer program, upgrades or updates of programs that are already installed, etc. 
         [0179]    In this example, the user chooses an application program APP  510  offered on the vendor site  20  and downloads the program APP into the computing device  100  using communications  1220 . APP  510  is downloaded on-line to the computing device  100  that is the equipment where the program APP  510  will be executed. In some implementations APP  510  is purchased and/or downloaded from another computing device and then installed and executed in computing device  100 . 
         [0180]    In some implementations the computing device  100  establishes communication with the vendor site  20  directly through communication  1220  or indirectly via the supervising site  50  through communication  1225  and/or  1250 . 
         [0181]    In some implementations the vendor site  20  or the supervising site  50  deal with authenticating the identity of the computing device  100  or the user of the computing device using communications  1220  or  1250 , respectively. 
         [0182]    Identifying data of the vendor site  20 , and/or the computing device  100 , and/or the user of the computing device may be transmitted along with the download of APP  510  into the computing device  100 . The transmission of this identifying data can be done in different ways. 
         [0183]    In some implementations APP  510  is contained in a single downloadable file that possesses the identifying data, for example, in the form of metadata. In some implementations inclusion of identifying data is performed at the vendor site before or during the download. 
         [0184]    In some implementations the identifying data is transmitted to the computing device  100  separately from APP  510 . In some implementations the identifying data is stored in the computing device  100  and may be read by the APP  510  and/or the software module  520 . 
         [0185]    In some implementations the vendor site  20  provides to the user of the computing device the identifying data or a code associated with the identifying data, for example, by an on-screen display or by sending an e-mail, during the download of APP  510 , and the user later subsequently furnishes the identifying data and/or code to APP  510  and/or software module  520  at the request of the latter. 
         [0186]    In some implementations the vendor site  20  and the developer site  30  exchange information relating to the download and/or purchase of APP  510 . For example, on-line communication  1201  may allow the developer site  30  to know that APP  510  has been downloaded and/or paid for from a specific and authorized vendor site  20 . When a purchase of APP  510  has been completed through an authorized vendor site  20 , the vendor site  20  may send a copy of the purchase receipt to the developer site  30  via on-line communication  1201 . 
         [0187]    A software module means a set of instructions integrated with, incorporated with, or otherwise designated to run with a software product to provide specific functions. Software modules may be, for example, a component, a function or set of functions, a dynamic library, a class or set of classes, a control or class with a graphical interface, etc. 
         [0188]    The software module  520  operation may be identical or different for different software developer sites or developer companies. In some implementations, to distinguish between different sites  750 , developer sites  30  and/or vendor sites  20 , modifiable properties of the software module  520  may be modified during design time or programming time. In other implementations, modifiable properties of the software module may be modified during execution time, for example during the execution of an application program in the computing device  100  that uses or contains the software module. 
         [0189]    In some implementations, the software module  520  may contain a class or a group of classes with their corresponding properties and methods, which allows by interface or integration thereof in an application, the execution of certain functionalities which are predefined in the software module. 
         [0190]    In some implementations the software module may comprise executable instructions, for example an executable file or dynamic library, which are included or invoked from a program application, during the design time or execution time of said application, for example executing some executable instructions of the software module within the execution environment of said application. 
         [0191]    In some implementations the software module may comprise source code that may be converted to executable instructions, for example using a compiler, a just in time compiler or an interpreter. 
         [0192]    According to some implementations, software module incorporation refers to interfacing and/or integrating the software module in the application program in design or programming time of the application program. 
         [0193]    The ways of including a software module within an application may vary according to the programmer or the developer tool in which the application is programmed, the following ways of doing so being the most common examples:
       Including the software module from a graphic menu. The programmer drags the software module (graphic representation thereof) from the toolbox of the programming environment and inserts the software module in the application. From that moment on, the programmer has access to the software module properties and methods, and can modify them and/or invoke the methods that have been described in the software module.   Including the software module from source code. The programmer includes the code lines necessary for invoking the software module (whether it is in library or executable form) within the source code block belonging to a form of the application. From that moment on the programmer has access to the software module properties and methods and can modify them and/or invoke the methods which have been described in the software module.       
 
         [0196]    One skilled in the art of programming may include a software module within a program in different ways and the different implementations are not limited to this description. 
         [0197]    The software module  520  may communicate with the site  750  using the communications  755 . 
         [0198]    Optionally, instead of setting up direct communication  755  with the site  750 , the application program or software module  520  may do so by indirect communications  1250 ,  1235 , and  1230  with the supervising site  50 , which in turn sets up communications  1235  and/or  1230  with the developer site  30 . 
         [0199]    In some implementations, the system is supervised by a supervising site  50  controlled by a supervising entity although the system implementations are not limited to such a configuration. Moreover, a plurality of supervising sites can be provided. The developer sites which adhere to the system request the supervising site  50  to register their sites and identify the programs which they wish to offer in the vendor site(s) along with defining the condition for the sale or download thereof. The vendors that wish to offer on their sites the application programs request in the supervisor site to register their vendor site. A developer site and a vendor site can agree, in the supervising site, on the conditions of the sale of a program, for example, the sale price and the allocation of sales revenue. 
         [0200]    In some implementations the supervising site provides the software module  520  to the developer site  30  so that the software module may be incorporated with the application programs. The vendor sites can obtain the programs directly from the developer site  30  or through the supervising site  50  (as the case may be). 
         [0201]    In addition to the component  520  supplied to the developer site  30  so that the component can be incorporated with their application programs, the supervising site may also provide specific applications which may be executed remotely, for example with a browser, or which may be installed in the developer sites and in the vendor sites for the purpose of implementing communications associated with the different process. 
         [0202]    In some implementations where the user pays to receive on-line content in a desired manner (e.g., without advertising), the user may submit payment information to one or more of sites  20 ,  50 ,  30  and  750 . Other payments systems like, for example, Paypal or Google Checkout may also be used. In some implementations the purchase transaction is accomplished through the vendor site  20  with the download of the content to the computing device occurring from a different site such as, for example, site  750 . 
         [0203]    In some implementations where the user receives content with advertisement, the vendor site  20 , the supervising site  50  and/or the developer site  30  may receive a fixed amount or a percentage of the amount paid by advertisers, for each advertisement received in the computing device  100  by means of APP  510 .