<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ep-patent-document PUBLIC "-//EPO//EP PATENT DOCUMENT 1.5//EN" "ep-patent-document-v1-5.dtd">
<!-- This XML data has been generated under the supervision of the European Patent Office -->
<ep-patent-document id="EP12425179B1" file="EP12425179NWB1.xml" lang="en" country="EP" doc-number="2728893" kind="B1" date-publ="20200422" status="n" dtd-version="ep-patent-document-v1-5">
<SDOBI lang="en"><B000><eptags><B001EP>ATBECHDEDKESFRGBGRITLILUNLSEMCPTIESILTLVFIROMKCYALTRBGCZEEHUPLSK..HRIS..MTNORS..SM..................</B001EP><B005EP>J</B005EP><B007EP>BDM Ver 1.7.2 (20 November 2019) -  2100000/0</B007EP></eptags></B000><B100><B110>2728893</B110><B120><B121>EUROPEAN PATENT SPECIFICATION</B121></B120><B130>B1</B130><B140><date>20200422</date></B140><B190>EP</B190></B100><B200><B210>12425179.4</B210><B220><date>20121105</date></B220><B240><B241><date>20140925</date></B241><B242><date>20170116</date></B242></B240><B250>en</B250><B251EP>en</B251EP><B260>en</B260></B200><B400><B405><date>20200422</date><bnum>202017</bnum></B405><B430><date>20140507</date><bnum>201419</bnum></B430><B450><date>20200422</date><bnum>202017</bnum></B450><B452EP><date>20200224</date></B452EP></B400><B500><B510EP><classification-ipcr sequence="1"><text>H04N  21/6587      20110101AFI20191014BHEP        </text></classification-ipcr><classification-ipcr sequence="2"><text>H04N  21/6437      20110101ALI20191014BHEP        </text></classification-ipcr><classification-ipcr sequence="3"><text>H04N  21/443       20110101ALI20191014BHEP        </text></classification-ipcr><classification-ipcr sequence="4"><text>H04L  29/06        20060101ALI20191014BHEP        </text></classification-ipcr><classification-ipcr sequence="5"><text>G06F   1/3234      20190101ALI20191014BHEP        </text></classification-ipcr><classification-ipcr sequence="6"><text>G06F   1/3206      20190101ALI20191014BHEP        </text></classification-ipcr></B510EP><B540><B541>de</B541><B542>Steuerung eines Datenstroms</B542><B541>en</B541><B542>Controlling a data stream</B542><B541>fr</B541><B542>Commander un flux de données</B542></B540><B560><B561><text>WO-A2-2008/072093</text></B561><B561><text>US-A1- 2010 125 890</text></B561><B562><text>Anonymous: "Advanced Configuration and Power Interface", Wikipedia, the free encyclopedia , 14 November 2011 (2011-11-14), XP055050204, Retrieved from the Internet: URL:http://en.wikipedia.org/w/index.php?ti tle=Advanced_Configuration_and_Power_Inter face&amp;oldid=460583475 [retrieved on 2013-01-18]</text></B562><B562><text>Anonymous: "Developments &gt; XMPlay &gt; Topic: Wishlist for XMPlay 3.2", Un4seen Developments Forum , 16 September 2004 (2004-09-16), XP002693942, Retrieved from the Internet: URL:http://www.un4seen.com/forum/?topic=30 22.0 [retrieved on 2013-03-14]</text></B562><B562><text>Anonymous: "Software dev help, standby resume issue playing live TV", TheGreenButton , 3 December 2011 (2011-12-03), XP002693943, Retrieved from the Internet: URL:http://www.thegreenbutton.tv/forums/vi ewtopic.php?f=5&amp;t=1014 [retrieved on 2013-03-15]</text></B562></B560></B500><B700><B720><B721><snm>Capuozzo, Giuseppe</snm><adr><str>Via Pellegrino Matteucci 41</str><city>00154 Rome</city><ctry>IT</ctry></adr></B721><B721><snm>Onorato, Orlando</snm><adr><str>Via Sagunto, 4</str><city>00174 Rome</city><ctry>IT</ctry></adr></B721><B721><snm>Enei, Donatella</snm><adr><str>Via Castro dei Volsci, 10</str><city>00179 Rome</city><ctry>IT</ctry></adr></B721><B721><snm>Dzah, Eli Komlan</snm><adr><str>Via Colonnello Tommaso Masala 42</str><city>Rome</city><ctry>IT</ctry></adr></B721></B720><B730><B731><snm>Accenture Global Services Limited</snm><iid>101210991</iid><irf>A 6983EU - hy</irf><adr><str>3 Grand Canal Plaza 
Grand Canal Street Upper</str><city>Dublin 4</city><ctry>IE</ctry></adr></B731></B730><B740><B741><snm>Müller-Boré &amp; Partner 
Patentanwälte PartG mbB</snm><iid>100060440</iid><adr><str>Friedenheimer Brücke 21</str><city>80639 München</city><ctry>DE</ctry></adr></B741></B740></B700><B800><B840><ctry>AL</ctry><ctry>AT</ctry><ctry>BE</ctry><ctry>BG</ctry><ctry>CH</ctry><ctry>CY</ctry><ctry>CZ</ctry><ctry>DE</ctry><ctry>DK</ctry><ctry>EE</ctry><ctry>ES</ctry><ctry>FI</ctry><ctry>FR</ctry><ctry>GB</ctry><ctry>GR</ctry><ctry>HR</ctry><ctry>HU</ctry><ctry>IE</ctry><ctry>IS</ctry><ctry>IT</ctry><ctry>LI</ctry><ctry>LT</ctry><ctry>LU</ctry><ctry>LV</ctry><ctry>MC</ctry><ctry>MK</ctry><ctry>MT</ctry><ctry>NL</ctry><ctry>NO</ctry><ctry>PL</ctry><ctry>PT</ctry><ctry>RO</ctry><ctry>RS</ctry><ctry>SE</ctry><ctry>SI</ctry><ctry>SK</ctry><ctry>SM</ctry><ctry>TR</ctry></B840></B800></SDOBI>
<description id="desc" lang="en"><!-- EPO <DP n="1"> -->
<heading id="h0001"><u>Technical field</u></heading>
<p id="p0001" num="0001">The present application relates to a computer implemented method, a computer program product, and a computer system for controlling a data stream.</p>
<heading id="h0002"><u>Background</u></heading>
<p id="p0002" num="0002">Data streaming, particularly media streaming, is becoming more and more common. Services that provide data streaming make use of network resources. In particular, data streaming, particularly video streaming, consumes network bandwidth, data stream server processing power, and routing and switching resources.</p>
<p id="p0003" num="0003">Accordingly, it may be a problem to conserve network resources consumed by a data stream.</p>
<p id="p0004" num="0004"><patcit id="pcit0001" dnum="US2010125890A"><text>US 2010/125890</text></patcit> discloses a method of managing bandwidth usage at a customer premises by sending a signal to a content source to cease the sending of content stream to the set-top-box device in response to receiving the signal indicating a low power state detected at a power outlet associated with the display device.</p>
<p id="p0005" num="0005"><patcit id="pcit0002" dnum="WO2008072093A"><text>WO 2008/072093</text></patcit> discloses a method for optimization of mobile media delivery and facilitating access to content on a mobile device. In particular, a mobile device that enters the blackout area during live playback of the event may be paused automatically and upon exiting the blackout area, the playback may be resumed.</p>
<heading id="h0003"><u>Technical definitions</u></heading>
<p id="p0006" num="0006">A <i>data stream</i> may be understood as a sequence of digitally coherent signals (e.g. data packets) used to transmit information. In some cases, a data stream may be transmitted in a continuous (or substantially continuous) manner from a server computer to a client computer. Also, the data stream may be continuously (or substantially continuously) received by the client computer.</p>
<p id="p0007" num="0007">The data stream may be implemented as a media stream, e.g. an audio, video, text stream. The data stream may be streamed live or on demand. Live streaming is also referred to as "true streaming". True streaming sends the information straight to the client computer without saving the file to a hard disk. On demand streaming may also<!-- EPO <DP n="2"> --> be referred to as progressive streaming or progressive download. Progressive streaming may be implemented by saving a file to a hard disk and then playing the file stored on the hard disk. The content of the data stream may be processed or displayed by the client's computer before the entire data stream is sent or transmitted by the server computer. In other words, the client computer may process the data stream while it is being received.</p>
<p id="p0008" num="0008">The client computer (e.g. a data stream client of the client computer) may be the data stream sink and the server computer (e.g. a data stream server of the server computer) may be the data stream source. Thus, the server computer generates the data stream, sends it across a network (e.g. the Internet) in messages, and the sink processes the data stream as it arrives. In the example of a video stream, the server computer generates the video stream (e.g. using a video capture card), sends it across the network in messages, and the sink displays the video stream as it arrives.</p>
<p id="p0009" num="0009">The data stream may be transmitted in raw form, e.g. with a throughput rate of 75 Mbps. The data stream may also be compressed (i.e. transmitted using a codec or encoded), e.g. transmitted at an average rate of 2 Mbps.</p>
<p id="p0010" num="0010">The data stream may be sent using a unicast protocol or a multicast protocol. When using the multicast protocol, the server computer sends out a single data stream that is common to all client computers.</p>
<p id="p0011" num="0011">The <i>data stream client</i> (also referred to as the streaming client) may be implemented as a media player, such as the QuickTime (QuickTime is a trademark of Apple Corporation) player or the Winamp player. The data stream client may be understood as software that is executable on the client computer, and which is capable of processing the data stream.</p>
<p id="p0012" num="0012">The <i>data stream server</i> may be implemented as a streaming server, such as the QuickTime streaming server, Helix Universal Server, or Windows Media Services (Windows is a trademark of Microsoft Corporation).<!-- EPO <DP n="3"> --></p>
<p id="p0013" num="0013">A <i>power state,</i> or <i>power consumption state</i> may be understood according to the advanced configuration and power interface (ACPI) specification, the advanced power management (APM) specification or another standard or specification defining power management states.</p>
<p id="p0014" num="0014">A <i>fully working power state</i> may be understood as a state in which the corresponding computer is functional. The computer is powered on. Also, individual devices can be in low or decreased power consumption states. In addition, processors can be in low or decreased power states. Alternatively, the fully working power state can mean that no devices are in a power saving mode (i.e. no devices are in a decreased power state, a decreased power consumption state, or a low power state).</p>
<p id="p0015" num="0015">The terms "power state" and "power consumption state" are used interchangeably. A decreased power consumption state may also be referred to as a low power consumption state or a reduced power consumption state.</p>
<p id="p0016" num="0016">A <i>power management event</i> (also referred to as a system power management event), such as a power management decrease event or a power management increase event, may be generated by a computer's firmware or by the operating system of the computer. When generated by the computer's firmware, the power management event may be generated by the basic input/output system (BIOS) of the computer. There may be a causal relationship between power management events and power consumption of the computer. In particular, the power management event may be generated in view of a pending change in power consumption of the computer, or the power management event may be generated because a change in the power consumption of the computer has occurred. In addition, there may be a temporal relationship between power management events (also referred to as power management events) and power consumption of the computer. In particular, the power management event may be generated before a change in power consumption of the computer or after a change in power consumption of the computer.<!-- EPO <DP n="4"> --></p>
<p id="p0017" num="0017">The power management event may be triggered by a change in the power status of the computer, a change in the operational mode of a device or the computer, or a change in the value of a power setting. The power management event may be triggered by switching the computer to a sleep state, e.g. due to inactivity of the computer or because the user manually puts the computer to sleep, e.g. by hitting a sleep key.</p>
<p id="p0018" num="0018">Accordingly, it may be that a power management decrease event is generated because of a pending reduction in power consumption of the computer (e.g. the computer is transitioning from a fully working state to a sleeping state). Also, the power management decrease event may be generated before the change in power consumption of the computer, i.e. before a transition form a fully working power state to a decreased power consumption state.</p>
<p id="p0019" num="0019">The decreased power consumption state may also be referred to as a decreased power state, a low power state, or a reduced power state.</p>
<p id="p0020" num="0020">The power management increase event may be generated because of an increase in power consumption of the computer. Also, the power management increase event may be generated after an increase in power consumption of the computer. More specifically, the power management increase event may be generated after a transition from the decreased power consumption state to the fully working power state.</p>
<p id="p0021" num="0021">The subject matter described in the specification can be implemented as a method or as a system, possibly in the form of one or more computer program products. The subject matter described in the specification can be implemented in a data signal, or on a machine readable medium, where the medium is embodied in one or more information carriers, such as a CD-ROM, a DVD-ROM, a semiconductor memory, or a hard disk. Such a computer program product may cause a data processing apparatus to perform one or more operations described in the specification.<!-- EPO <DP n="5"> --></p>
<p id="p0022" num="0022">In addition, subject matter described in the specification can also be implemented as a system including a processor, and a memory coupled to the processor. The memory may include one or more programs to cause the processor to perform one or more of the methods described in the specification. Further subject matter described in the specification can be implemented using various machines.</p>
<p id="p0023" num="0023">Details of one or more implementations are set forth in the exemplary drawings and description below. Other features will be apparent from the description, the drawings, and from the claims.</p>
<heading id="h0004"><u>Brief description of the figures</u></heading>
<p id="p0024" num="0024">
<ul id="ul0001" list-style="none" compact="compact">
<li><figref idref="f0001">Figure 1</figref> illustrates an exemplary method for controlling a data stream.</li>
<li><figref idref="f0002">Figure 2</figref> illustrates a functional architecture for implementing a method for controlling the data stream.</li>
<li><figref idref="f0003">Figure 3</figref> provides further details regarding the functional architecture of <figref idref="f0002">figure 2</figref>.</li>
<li><figref idref="f0004">Figure 4</figref> illustrates a way that the method for controlling the data stream can be used to conserve network resources.</li>
<li><figref idref="f0005">Figure 5</figref> illustrates another way that the method for controlling the data stream can be used to conserve network resources.</li>
<li><figref idref="f0006">Figure 6</figref> illustrates in an action that may occur between various computers when carrying out the method for controlling the data stream.</li>
<li><figref idref="f0007">Figure 7</figref> illustrates states of a system for controlling a data stream.</li>
<li><figref idref="f0008">Figure 8</figref> shows an exemplary system for implementing the claimed subject matter, e.g. a client computer and/or a server computer.</li>
</ul></p>
<heading id="h0005"><u>Detailed description</u></heading>
<p id="p0025" num="0025">In the following text, a detailed description of examples will be given with reference to the drawings. It should be understood that various modifications to the examples may be made. In particular, elements of one example may be combined and used in other examples to form new examples.<!-- EPO <DP n="6"> --></p>
<p id="p0026" num="0026">In the context of the present description, the terms "first" and "second" are used to distinguish elements, e.g. requests, and are not meant to indicate a temporal relationship.</p>
<p id="p0027" num="0027"><figref idref="f0001"><b>Figure 1</b></figref> shows an exemplary implementation of a method for controlling a data stream.</p>
<p id="p0028" num="0028">At step S101, a user may command a data stream to be sent from a data stream server 602 (see <figref idref="f0006">figure 6</figref>) to a data stream client 203 (see <figref idref="f0002">figure 2</figref>). The data stream client 203 may be executed on a client computer 200 (see <figref idref="f0002">figure 2</figref>). The client computer 200 may be implemented as a mobile computer or a desktop computer. The mobile computer may be implemented as a tablet (e.g. an iPad; iPad is a trademark of Apple Corporation) or a smartphone. A server computer 301 (see <figref idref="f0003">figure 3</figref>) may be implemented as a desktop computer, i.e. a general purpose computer) or a mobile computer. The data stream client 203 may execute on the client computer 200 and the data stream server 602 may execute on the server computer 301.</p>
<p id="p0029" num="0029">In response to a user command entered at step S103, the data stream client 203 may establish a session with the data stream server 602. According to an example, the data stream client 203 is implemented as a media player which establishes a session with a media streaming server, such as data stream server 602. According to the example, the session may be established using the real time streaming protocol (RTSP). Other application protocols, in particular Internet application protocols according to the Open Systems Interconnection (OSI) model, could also be used. The session may be established by means of an RTSP setup request. An RTSP play request may be sent from the data stream client 203 to the data stream server 602 to trigger sending of the data stream.</p>
<p id="p0030" num="0030">At step S105, the data stream server 602 begins to send a data stream to the data stream client 203. According to an example, the data stream sent from the data stream server 602 to the data stream client 203 includes video data and is sent using<!-- EPO <DP n="7"> --> a connectionless Internet transport protocol. More particularly, the data stream may be sent using the real time transport protocol (RTP). RTP may be used in conjunction with the RTP control protocol (RTCP). RTP may be supported by another protocol, such as the user datagram protocol (UDP).</p>
<p id="p0031" num="0031">In cases where the data stream is sent using the connectionless Internet transport protocol, the server computer 301 has no knowledge of what happens after a packet of the data stream is sent and receives no indication that the client computer 200 is receiving or processing the data stream (i.e. the server receives no acknowledgements of individual data packets from the client computer 200). In particular, the client computer 200 may no longer process the data stream (e.g. packets of the data stream may be dropped by the client computer 200) when the client computer 200 is no longer in a fully working power state. For example, when the client computer 200 is transitioning (or has transitioned) from a fully working power state to a decreased power consumption state, the data stream client 203 may no longer be in a position (i.e. the data stream client 203 may no longer be able) to process the data stream. Similarly, a user may be unable to view video at the data stream client 203 during a decreased power consumption state even if the data stream is being processed by client computer 200. This can occur, for example, when a display of the client computer 200 has been shut off but data stream packets received by the client computer 200 continue to be processed. Thus, when the client computer 200 is in a decreased power consumption state, continuing to send the data stream from the data stream server 602 to the data stream client 203 may waste network resources.</p>
<p id="p0032" num="0032">At step S107, the client computer 200 may generate a power management decrease event. The power management decrease event may be generated as a result of a change in one or more of the following: system power status, the operational mode of a device or the system, or a change in the value of a power setting. In particular, the power management decrease event may occur when there is a pending transition from a fully working power state to a decreased power consumption state. Such a transition may be triggered by user interaction with the client computer 200, e.g. the<!-- EPO <DP n="8"> --> user hits a sleep key or pushes a power button of the client computer 200. The transition from the fully working power state to the decreased power consumption state could also be triggered by inactivity of the user.</p>
<p id="p0033" num="0033">At step S109, a first pause request may be sent from the data stream client 203 to the data stream server 602. The first pause request may have the purpose of temporarily halting the data stream. The first pause request may have a temporal relation as well as a causal relation to the power management decrease event. In particular, the first pause request may be sent after the power management decrease event. Also, the first pause request may be triggered by the power management decrease event.</p>
<p id="p0034" num="0034">The power management decrease event may serve as an indication that the client computer 200 can no longer process the data stream and/or the user is no longer interested in the data stream. In particular, when the data stream is implemented as a video stream, the power management decrease event may indicate that the user is no longer watching the video stream. Sending the first pause request to the data stream server 602 may be understood as forwarding the power state of the client computer 200 to the data stream server 602.</p>
<p id="p0035" num="0035">At step S111, the data stream server 602 receives the pause request from the data stream client 203. In response to the pause request, the data stream server 602 temporarily halts (pauses) the data stream. Pausing the data stream may have the technical effect of conserving network resources, or more specifically conserving network bandwidth, particularly since network bandwidth is not used to send the data stream to the client computer 200 when the client computer 200 cannot process the data stream. Pausing the data stream may also conserve processing and storage resources on the server computer 301.</p>
<p id="p0036" num="0036">Also, pausing the data stream according to the approach described above may have the advantage of improving quality of service for other network users. For example, as discussed in more detail in connection with <figref idref="f0005">Figure 5</figref>, if a second client computer<!-- EPO <DP n="9"> --> uses the same network connection as the client computer 200 and both share the network bandwidth of the network connection (e.g. the network connection is a cable or wireless connection), then pausing the data stream to the client computer 200 may have the effect of increasing the bandwidth available to the second client computer.</p>
<p id="p0037" num="0037"><figref idref="f0002"><b>Figure 2</b></figref> shows a functional architecture that may be used for implementing the method for controlling the data stream on the client computer 200. The client computer 200 includes an operating system 201. The operating system 201 may be a version of Microsoft Windows (e.g. Windows 8, Windows 7, Windows Vista, Windows XP, Windows 2000 or Windows 98), Mac OS X (e.g. Leopard, Snow Leopard, Lion; Mac is a trademark of Apple Corporation), or Linux. In particular, the operating system 201 may be compliant with ACPI or may implement a customized power management solution based on Advanced Power Management and/or the Hardware Abstraction Layer (HAL). Other operating systems capable of running the data stream client 203 and processing power management events are also possible.</p>
<p id="p0038" num="0038">The data stream client 203 interacts with the operating system 201. The data stream client 203 may be implemented as a media player or as other software capable of processing the data stream. The data stream client 203 may include a synchronization/decryption module 205. The synchronization/decryption module 205 may decrypt and/or synchronize the data stream in order to present a consistent and unrestricted data stream. In particular, the synchronization/decryption module 205 may be responsible for negotiating and adapting the rate at which the data stream is sent from the data stream server 602 to the data stream client 203, and dealing with authentication and/or copy protection.</p>
<p id="p0039" num="0039">According to the example where the data stream is a video stream, a video decoder 207 may be part of the data stream client 203. The video decoder 207 can be used to decompress the video stream received by the data stream client 203. In particular, the video decoder 207 may operate by applying the reverse of the algorithm used to encode the video stream.<!-- EPO <DP n="10"> --></p>
<p id="p0040" num="0040">An audio decoder 209 may enable the decompression of audio data received by the data stream client 203. The audio decoder 209 may operate by applying the reverse of the algorithm used to encode audio data in the data stream.</p>
<p id="p0041" num="0041">If the data stream is implemented as an audio stream, the data stream may be compressed using an audio codec such as MP3 or AAC. If the data stream is implemented as a video stream, the data stream may be compressed using a video codec such as H.264 or VP8. The data stream may be assembled in a container bit stream such as FLV or WebM.</p>
<p id="p0042" num="0042">The video decoder 207 and the audio decoder 209 may be used in combination with specific compression formats, such as MPEG-2 (for a video stream) or MP3 (for an audio stream). Alternatively, a data stream including video and/or audio that is received by the client computer 200 may be in raw format, such that no compression is used to send the data stream and no decompression is needed to process the data stream.</p>
<p id="p0043" num="0043">The data stream client 203 may also include an application layer 210. The application layer 210 may manage application protocols used to process data received by the data stream client 203 from the data stream server 602. For example, the application layer 210 may manage RTSP and/or Microsoft media server (MMS) protocols. The application layer 210 may also be responsible for quality of service (QOS) management. The application layer may provide services and functionality according to the OSI model.</p>
<p id="p0044" num="0044">An automatic user activity recognition (AUAR) module 211 may intercept power management events, e.g. from the operating system 201, and generate a pause request to temporarily halt the data stream from the data stream server 602. In particular, based on a received power management decrease event, the AUAR module 211 may determine when the user is no longer interested in the data stream (e.g. the user is no longer watching video data transported over the data stream) and generate the pause request to be sent to the data stream server 602. The result of<!-- EPO <DP n="11"> --> the pause request may be a temporary halt in the flow of the data stream from the data stream server 602 to the data stream client 203.</p>
<p id="p0045" num="0045">The automatic user activity recognition module may be embedded in the data stream client 203. Functions of the automatic user activity recognition module 211 may include listening for power management events (e.g. power management decrease events or power management increase events) and triggering the sending of pause or resume requests based on the receipt of the power management events.</p>
<p id="p0046" num="0046">In cases where power management events are distributed by the operating system 201 as part of messages, the power management events may be distributed in broadcast messages such as the WM_POWERBROADCAST message, which is sent to applications and installable drivers whenever a power management event occurs. The events sent in a WM_POWERBROADCAST messages may include PBT_APMSUSPEND and PBT_APMRESUMESUSPEND events. These events may be intercepted by the automatic user activity recognition module 211 of the data stream client 203. The automatic user activity recognition module 211 may communicate using the network control protocol of the data stream client 203.</p>
<p id="p0047" num="0047">A transport protocol layer 213 may manage transport protocols used to process data sent from the data stream server 602 to the data stream client 203. In particular, the transport protocol layer 213 may manage Internet transport protocols such as the transmission control protocol (TCP), UDP and RTP.</p>
<p id="p0048" num="0048"><figref idref="f0003"><b>Figure 3</b></figref> shows an exemplary implementation for a system controlling a data stream including the functional architecture of <figref idref="f0002">figure 2</figref>.</p>
<p id="p0049" num="0049"><figref idref="f0003">Figure 3</figref> depicts the functional architecture of the client computer 200 including the operating system 201, the data stream client 203, the synchronization/decryption module 205, the video decoder 207, the audio decoder 209, the application layer 210, the automatic user activity recognition module 211, and the transport protocol layer 213. Unless otherwise noted or implied, the components of the functional<!-- EPO <DP n="12"> --> architecture depicted in <figref idref="f0003">figure 3</figref> perform as described with the respect to <figref idref="f0002">figure 2</figref>.</p>
<p id="p0050" num="0050"><figref idref="f0003">Figure 3</figref> also depicts multiple bi-directional arrows in the functional architecture of the client computer 200 showing interactions between components of the data stream client 203. In particular, the synchronization/decryption module 205 communicates in a bi-directional manner with the video decoder 207 and the audio decoder 209. The video decoder 207 and the audio decoder 209 communicate in a bi-directional manner with the application layer 210. The application layer 210 communicates in a bi-directional manner with the transport protocol layer 213. Also, the automatic user activity recognition module 211 communicates in a bi-directional manner with the transport protocol layer 213.</p>
<p id="p0051" num="0051">The AUAR module 211 may also be referred to as automatic video bandwidth control module.</p>
<p id="p0052" num="0052"><figref idref="f0003">Figure 3</figref> also depicts interactions between the client computer 200 and the server computer 301. As depicted in <figref idref="f0003">figure 3</figref>, the server computer 301 may be implemented as multiple streaming servers. Alternatively, the server computer 301 may be implemented as a single server. A thick bi-directional arrow 305 shows a request from the data stream client 203 to the server computer 301 for a data stream. Following the request, server computer 301 sends the data stream to the data stream client 203. In particular, the data stream may be sent from the data stream server 602 on the server computer 301. Thus, following the request, the data stream is received by the data stream client 203 from the data stream server 602. The data stream client 203 may be connected to the server computer 301 via a network 307, such as the Internet. A thin bi-directional arrow 309 shows a pause request sent from the data stream client 203 to the server computer 301. The thin arrow 309 is bi-directional in order to reflect the acknowledgment of the pause request by the server computer 301.</p>
<p id="p0053" num="0053">The network 307 may be implemented in multiple ways, including via physical cable (e.g. fiber optic cable) or via wireless technologies (e.g. WiFi, WiMAX, cellular/mobile,<!-- EPO <DP n="13"> --> etc.). Advantageously, the claimed subject matter may be applicable in situations where the available bandwidth is low or expensive, e.g. a cellular network operating at 1-2 Mbps.</p>
<p id="p0054" num="0054"><figref idref="f0004">Figures 4</figref> and <figref idref="f0005">5</figref> show ways that the method for controlling the data stream from the server computer 301 to the client computer 200 can be used to conserve (i.e. save or reduce consumption of) network resources. In particular, <figref idref="f0004">figures 4</figref> and <figref idref="f0005">5</figref> show how both users of the client computer 200 and content providers, such as media companies providing the data stream from the server computer 301, can save money through the reduction of network resources and the computer system architecture required. The network resources may include bandwidth used by the client computer 200, the server computer 301 or both. The computer system architecture may include hardware at the content provider, such as routers, switches and other types of network infrastructure. Thus, <figref idref="f0004">figures 4</figref> and <figref idref="f0005">5</figref> show how the method for controlling the data stream from the server computer 301 to the client computer 200 can be used to automatically conserve (e.g. reduce consumption of) network resources without any explicit intervention.</p>
<p id="p0055" num="0055">The users of the client computer 200 may have a variety of data plans, such as a plan providing unlimited network bandwidth for a fixed price or a pay as you go plan (i.e. a plan where the user is charged increasing amounts depending on bandwidth consumption). Users may also be enrolled in plans which reduce allowable bandwidth consumption after a certain amount has been used (e.g. after 500MB have been used during a month, the user's available bandwidth is reduced for the rest of that month).</p>
<p id="p0056" num="0056"><figref idref="f0004"><b>Figure 4</b></figref> shows how the method for controlling the data stream from the server computer 301 to the client computer 200 can be used to conserve network resources in the case where the client computer 200 does not share network bandwidth with another computer (e.g. via statistical multiplexing over a residential broadband connection such as Cable Internet).. An arrow 401 shows the data stream being sent from the data stream server 602 to the data stream client 203. According to the<!-- EPO <DP n="14"> --> example depicted, a user of the data stream client 203 is watching a video stream using a mobile device, where the video stream is an implementation of the data stream and the mobile device is an implementation of the client computer 200. The data stream may be consuming network bandwidth that has been paid for as part of a prepaid contract with a network access provider (e.g. an Internet Service Provider).</p>
<p id="p0057" num="0057">An arrow 403 shows the first pause request sent from the data stream client 203 to the data stream server 602. For example, when the user is no longer watching a video generated by means of the data stream, a power management decrease event may be generated by the operating system 201. The power management decrease event may be received by the data stream client 203. More specifically, the power management decrease event may be received by the automatic user activity recognition module 211.</p>
<p id="p0058" num="0058">After the power management decrease event is received by the data stream client 203, the first pause request may be sent from the data stream client 203 to the data stream server 602. The first pause request may cause the flow of the data stream to be halted, thereby conserving (or saving) network resources. In particular, by halting the data stream, the first pause request may save money (e.g. for the user of the data stream client 203 and/or the content provider) by reducing the consumption of network bandwidth. Moreover, sending the first pause request may avoid having the data stream server 602 perform unnecessary work. In particular, sending the first pause request may avoid having the data stream server 602 send the data stream when the data stream client 203 is not in a position to process the data stream.</p>
<p id="p0059" num="0059">Also, sending the first pause request may conserve processing resources on the server computer 301, e.g. to read the data stream from disk and copy the data stream to main memory or to copy the data stream from main memory to the network 307 to the client computer 200.</p>
<p id="p0060" num="0060"><figref idref="f0005"><b>Figure 5</b></figref> shows how the method for controlling the data stream from the server computer 301 to the client computer 200 can be used to conserve network resources<!-- EPO <DP n="15"> --> when there are multiple users simultaneously using an Internet connection.</p>
<p id="p0061" num="0061">Simultaneous use of Internet connections can occur in multiple situations, for example, cable Internet access or wireless Internet access. In other words, the situation depicted in <figref idref="f0005">figure 5</figref> may occur when a plurality of users share available network bandwidth. An arrow 501 shows a first data stream being sent to a first client computer 502 and an arrow 503 shows a second data stream being sent to a second client computer 504. The data streams may originate from multiple data streams servers, and possibly multiple server computers. Unless otherwise noted, the description of the client computer 200 applies to the first client computer 502 and the second client computer 504.</p>
<p id="p0062" num="0062">The data streams may contain the same data or different data. For example, the arrow 501 may show the first data stream being sent from <u>www.voutube.com</u> (or a media server associated with <u>www.youtube.com</u>), while the arrow 503 may show the second data stream being sent from <u>www.thedailvshow.com</u> (or a media server associated with <u>www.thedailvshow.com).</u> Because the first client computer 502 and the second client computer 504 are sharing limited network bandwidth, both the first client computer 502 and the second client computer 504 may experience poor performance, e.g. poor video quality or pauses in the video data stream.</p>
<p id="p0063" num="0063">An arrow 505 shows a pause request sent from the first client computer 502 to a server computer 506 (unless otherwise noted, the description of the server computer 301 applies to the server computer 506) in order to temporarily halt the data stream being received by the first client computer 502. The pause request may have been generated by an automatic user activity recognition module (identical to the automatic user activity recognition module 211) on the first client computer 502 in response to a power management decrease event generated by the first client computer 502.</p>
<p id="p0064" num="0064">An arrow 507 indicates that the second client computer 504 continues to receive a video stream. Since the second client computer 504 is no longer sharing network<!-- EPO <DP n="16"> --> bandwidth with the first client computer 502, the second client 504 may experience improved performance. In particular, according to the specific example in which the second client computer 50 is receiving a video data stream, the video data being received by the second client computer 504 may be of high quality without pauses or undesirable effects.</p>
<p id="p0065" num="0065"><figref idref="f0006"><b>Figure 6</b></figref> shows the steps carried out in the method for controlling the data stream from the server computer 301 to the client computer 200.</p>
<p id="p0066" num="0066">At step S603, a hypertext transfer protocol (HTTP) GET request is sent from the data stream client 203 (implemented as a video streaming client in <figref idref="f0006">figure 6</figref>) to a web server 601.</p>
<p id="p0067" num="0067">During step S603, the data stream client 203 may interact with the web server 601 using a uniform resource locator (URL) to retrieve information (e.g. a manifest) about a video the user wishes to view. Step S603 may also include the web server 601 providing a manifest to the data stream client 203 in response to the HTTP get request. In particular, the web server 601 may provide the data stream client 203 with information that can be used to retrieve the data stream from the data stream server 602 (implemented as a media server in <figref idref="f0006">figure 6</figref>).</p>
<p id="p0068" num="0068">Unless otherwise noted, description of the server computer 301 applies to the web server 601 and the data stream server 602. Particularly, the server computer 301 may include the web server 601 and the data stream server 602. Alternatively, the server computer 301 may only include the web server 601 and the data stream server 602 may be implemented on a separate computer. Other implementations are also possible (e.g. either the web server 601 or the data stream server 602 or both may be implemented via multiple computers).</p>
<p id="p0069" num="0069">At step S605, the data stream client 203 may send a request to the data stream server 602 specifying how the data stream is to be transported. According to the example depicted in <figref idref="f0006">figure 6</figref>, the data stream server 602 is a media server and the<!-- EPO <DP n="17"> --> data stream is a media stream. The request in step S605 may include a URL of the media stream and a transport specifier. The request may be an RTSP setup request. The transport specifier may include a first local port number for receiving audio and/or video data and a second local port number for receiving meta information. According to an example, the request of step S605 may be an RTSP request specifying a local port for receiving RTP data and another local port for receiving RTCP data. Step S605 may include a response from the server confirming the configuration information specified by the data stream client 203 and specifying additional information, such as one or more ports chosen by the data stream server 602. A timeout for the session may be specified, e.g. by the data stream server 602.</p>
<p id="p0070" num="0070">Although depicted separately in <figref idref="f0006">figure 6</figref>, the web server 601 and the data stream server 602 may be implemented on the same computer system. Alternatively, the web server 601 and the data stream server 602 may be implemented using different computer systems.</p>
<p id="p0071" num="0071">The exchange between the data stream client 203 and the data stream server 602 in step S605 may be an RTSP setup request and response.</p>
<p id="p0072" num="0072">At step S607, a request to start transmitting the data stream may be received at the data stream server 602. In particular, the request received at step S607 at the data stream server 602 from the data stream client 203 may be an RTSP play request. The request received at the data stream server 602 may cause the media stream to be played. In some cases, the request may cause multiple media streams to be played. Multiple play requests may be included in the request sent at step S607. Additional parameters may be included, such as a range, i.e. a starting point and an ending point of the data stream that should be transmitted from the data stream server 602 to the data stream client 203. The request sent from the data stream client 203 to the data stream server 602 in step S607 may cause the data stream server 602 to send the data stream to the data stream client 203. In particular, the data stream server 602 may send a video stream using the RTP protocol to the data stream client 203.<!-- EPO <DP n="18"> --></p>
<p id="p0073" num="0073">At step S609, the operating system 201 generates a power management decrease event. According to the example depicted in <figref idref="f0006">figure 6</figref>, the operating system 201 generates a PBT_ATMSUSPEND event. The power management decrease event is received by the data stream client 203. In particular, the automatic user activity recognition module 211 intercepts a message including the power management decrease event. The message may be a broadcast message sent to all applications and drivers in the client computer 200. After receiving the power management decrease event, the data stream client 203 may send a pause request to the data stream server 602 at step S611. According to the example, the pause request is implemented as an RTSP pause command. Receipt of the pause request may cause the data stream server 602 to temporarily halt (<i>i.e.,</i> stop) the data stream. After sending the pause request, the client computer 200 may transition from a fully working power state to a decreased power consumption state in response to the power management decrease event. The client computer 200 may transition from the fully working power state to the decreased power state before or after the data stream server temporarily halts the data stream.</p>
<p id="p0074" num="0074">As step S613, the operating system 201 may generate a power management increase event. The power management increase event may be generated after the client computer 200 transition from the decreased power consumption state to the fully working power state. According to the specific example depicted in <figref idref="f0006">figure 6</figref>, the power management increase event is implemented as a PBT_APMRESUMESUSPEND event. A message including the power management increase event may be received by the data stream client 203.</p>
<p id="p0075" num="0075">After receiving the power management increase event, the data stream client 203 may send a resume request to the data stream server 602 at step S615. There may be a causal relationship between the power management increase event and the resume request, i.e. the resume request may be triggered by the power management increase event. Also, there may be a temporal relationship between the power management increase event and the resume request, i.e. the resume request may<!-- EPO <DP n="19"> --> be sent after the power management increase event.</p>
<p id="p0076" num="0076">The resume request may be implemented as an RTSP play request. In response to the resume request, the data stream server 602 may start to send the data stream again. The data stream may be received at the data stream client 203. Alternatively, if the timeout for the session is specified in step S605 (e.g. in a timeout parameter), the session may timeout before the resume request is transmitted at step S615, e.g. because the time between sending the pause request at step S611 and the resume request at step S615 exceeds the time specified in the timeout parameter. In this case the session may need to be reestablished, e.g. by sending a new setup request as described in step S605. Thus, the new setup request may be sent at step S615 rather than the resume request if the session times out. In some cases, even if the session is reestablished, the data stream client 203 may be able to resume the data stream where it was paused, e.g. by saving a pause point of the data stream and transmitting the pause point in a new request to start transmitting the data stream (as described in S607).</p>
<p id="p0077" num="0077">The pause request sent at step S611 and the resume request sent at step S615 may be sent by means of the automatic user activity recognition module 211. Moreover, the power management decrease event received by the data stream client 203 at step S609 and the power management increase event received by the data stream client 203 at step S613 may be received and processed by means of the automatic user activity recognition module 211.</p>
<p id="p0078" num="0078">At step S617, a command may be sent form the data stream client 203 to the data stream server 602 to terminate the session in which the data stream is sent. The command may cause all data streams being sent from the data stream server 602 to the data stream client 203 to be stopped and free all session related data on the data stream server 602 that is associated with the data stream client 203. The command sent in step S617 may be implemented as an RTSP teardown request.</p>
<p id="p0079" num="0079">In the example of <figref idref="f0006">figure 6</figref>, the automatic user activity recognition module 211 may be<!-- EPO <DP n="20"> --> active during steps S609, S611, S613, and S615. The automatic user activity recognition module 211 may also be referred to as the automatic video bandwidth control (AVBC) module.</p>
<p id="p0080" num="0080"><figref idref="f0007"><b>Figure 7</b></figref> shows a state diagram for the data stream client 203.</p>
<p id="p0081" num="0081">According to the example depicted, the state transitions are executed by means of RTSP commands.</p>
<p id="p0082" num="0082">An RTSP setup command sent from the data stream client 203 to the data stream server 602 enables a transition from an init state 701 to a ready state 703. In the ready state 703, a session between the data stream client 203 and the data stream server 602 is established. Thus, after the RTSP setup command has been sent from the data stream client 203 to the data stream server 602, the data stream can be received at the data stream client 203 from the data stream server 602. Also, RTSP play and pause command can be sent from the data stream client 203 to the data stream server 602 and processed by the data stream server 602. Thus, in the ready state 703, the data stream client 203 (particularly the automatic user activity recognition module 211) is in a position to control the data stream from the server computer 301 to the client computer 200.</p>
<p id="p0083" num="0083">After execution of an RTSP play command, the data stream client 203 transitions from the ready state 703 to a playing state 705. In the playing state 705, the data stream client 203 receives the data stream from the data stream server 602. When the data stream client 203 sends a pause request to the data stream server 602, the data stream client 203 transitions from the playing state 705 to the ready state 703. As indicated in <figref idref="f0007">figure 7</figref>, the automatic user activity recognition module 211 is active when the data stream client 203 is in the ready state 703 or the playing state 705. A teardown command sent from the data stream client 203 to the data stream server 602 can cause the data stream client 203 to transition back to the init state 701. Sending of a teardown command causes the transition back to the init state 701 irrespective of whether the data stream client 203 is in the ready state 703 or the<!-- EPO <DP n="21"> --> playing state 705.</p>
<p id="p0084" num="0084"><figref idref="f0008"><b>Figure 8</b></figref> shows an exemplary system for implementing the claimed subject matter including a general purpose computing device in the form of a conventional computing environment 820 (e.g. a personal computer). The system of <figref idref="f0008">figure 8</figref> may be used to implement the server computer 301 or the client computer 200. Other implementations are possible.</p>
<p id="p0085" num="0085">The conventional computing environment includes a processing unit 822, a system memory 824, and a system bus 826. The system bus couples various system components including the system memory 824 to the processing unit 822. The processing unit 822 may perform arithmetic, logic and/or control operations by accessing the system memory 824. The system memory 824 may store information and/or instructions for use in combination with the processing unit 822. The system memory 824 may include volatile and non-volatile memory, such as a random access memory (RAM) 828 and a read only memory (ROM) 830. A basic input/output system (BIOS) containing the basic routines that helps to transfer information between elements within the personal computer 820, such as during start-up, may be stored in the ROM 830. The system bus 826 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.</p>
<p id="p0086" num="0086">The personal computer 820 may further include a hard disk drive 832 for reading from and writing to a hard disk (not shown), and an external disk drive 834 for reading from or writing to a removable disk 836. The removable disk may be a magnetic disk for a magnetic disk driver or an optical disk such as a CD ROM for an optical disk drive. The hard disk drive 832 and the external disk drive 834 are connected to the system bus 826 by a hard disk drive interface 838 and an external disk drive interface 840, respectively. The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the personal computer 820. The data structures may include relevant data for the implementation of the method for<!-- EPO <DP n="22"> --> controlling a data stream from a server computer to a client computer, as described above.</p>
<p id="p0087" num="0087">Although the exemplary environment described herein employs a hard disk (not shown) and an external disk 836, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories, read only memories, and the like, may also be used in the exemplary operating environment.</p>
<p id="p0088" num="0088">A number of program modules may be stored on the hard disk, external disk 836, ROM 830 or RAM 828, including an operating system (not shown), one or more application programs 844, other program modules (not shown), and program data 846. The application programs may include at least a part of the functionality as depicted in <figref idref="f0001 f0002 f0003 f0004 f0005 f0006 f0007">Figs. 1 to 7</figref>.</p>
<p id="p0089" num="0089">A user may enter commands and information, as discussed below, into the personal computer 820 through input devices such as keyboard 848 and mouse 850. Other input devices (not shown) may include a microphone (or other sensors), joystick, game pad, scanner, or the like. These and other input devices may be connected to the processing unit 822 through a serial port interface 852 that is coupled to the system bus 826, or may be collected by other interfaces, such as a parallel port interface 854, game port or a universal serial bus (USB). Further, information may be printed using printer 856. The printer 856, and other parallel input/output devices may be connected to the processing unit 822 through parallel port interface 854. A monitor 858 or other type of display device is also connected to the system bus 826 via an interface, such as a video input/output 860. In addition to the monitor, computing environment 820 may include other peripheral output devices (not shown), such as speakers or other audible output.</p>
<p id="p0090" num="0090">The computing environment 820 may communicate with other electronic devices such as a computer, telephone (wired or wireless), personal digital assistant,<!-- EPO <DP n="23"> --> television, or the like. To communicate, the computer environment 820 may operate in a networked environment using connections to one or more electronic devices. <figref idref="f0008">Figure 8</figref> depicts the computer environment networked with remote computer 862. The remote computer 862 may be another computing environment such as a server, a router, a network PC, a peer device or other common network node, and may include many or all of the elements described above relative to the computing environment 820. The logical connections depicted in <figref idref="f0008">Figure 8</figref> include a local area network (LAN) 864 and a wide area network (WAN) 866. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet and may particularly be encrypted.</p>
<p id="p0091" num="0091">When used in a LAN networking environment, the computing environment 820 may be connected to the LAN 864 through a network I/O 868. When used in a WAN networking environment, the computing environment 820 may include a modem 870 or other means for establishing communications over the WAN 866. The modem 870, which may be internal or external to computing environment 820, is connected to the system bus 826 via the serial port interface 852. In a networked environment, program modules depicted relative to the computing environment 820, or portions thereof, may be stored in a remote memory storage device resident on or accessible to remote computer 862. Furthermore other data relevant to the method for controlling a data stream from a server computer to a client computer (described above) may be resident on or accessible via the remote computer 862. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the electronic devices may be used.</p>
<p id="p0092" num="0092">The above-described computing system is only one example of the type of computing system that may be used to implement the method for controlling a data stream from a server computer to a client computer.</p>
<p id="p0093" num="0093">According to an aspect, a computer implemented method for controlling a data stream from a server computer to a client computer is provided. The client computer comprises a data stream client and the server computer comprises a data stream<!-- EPO <DP n="24"> --> server. While receiving, by the data streaming client from the data stream server, the data stream, the method may comprise generating, by the client computer, a power management decrease event. While receiving the data stream, the method may further comprise, receiving, by the data stream client, the power management decrease event. While receiving the data stream, the method may further comprise sending, from the data stream client to the data stream server, a first pause request to temporarily halt the data stream. The first pause request may be sent after the power management decrease event is received. The method may further comprise transitioning, by the client computer, from a fully working power state to a decreased power consumption state in response to the power management decrease event.</p>
<p id="p0094" num="0094">Transitioning from the fully working power state to the decreased power consumption state may also be performed after the power management decrease event. In other words, there may be a temporal relationship between the power management decrease event and the transition from the fully working power state to the decreased power consumption state.</p>
<p id="p0095" num="0095">In some cases, the fully working power state is the fully on ACPI power state and the decreased power consumption state is an ACPI power state other than the fully on ACPI power state.</p>
<p id="p0096" num="0096">The decreased power consumption state may be a sleeping state, such as a sleep state, a hibernating state, a standby state, or a suspend state. Also, the decreased power consumption state may be a soft off state, or a fully off state. The fully off state may also be referred to as a mechanical off state.</p>
<p id="p0097" num="0097">The fully working power state may be the full on APM state and the decreased power consumption state may be an APM state other than the full on APM state.</p>
<p id="p0098" num="0098">In some cases, the method further comprises pausing, by the data stream server, the data stream in response to the first pause request. The pause by the data stream server may occur before or after the client computer transitions from the fully working<!-- EPO <DP n="25"> --> power state to the decreased power consumption state.</p>
<p id="p0099" num="0099">Furthermore, the data stream may be a media stream, wherein the media stream includes audio data and/or video data.</p>
<p id="p0100" num="0100">Moreover, the data stream may be sent using a connectionless Internet transport protocol. The term "transport protocol" may be understood according to the open systems interconnection (OSI) model.</p>
<p id="p0101" num="0101">The data stream may be sent using the real time transport protocol.</p>
<p id="p0102" num="0102">In addition, the method may further comprise transitioning, by the client computer, from the decreased power consumption state to the fully working power state. Also, the method may comprise generating, by the client computer, a power management increase event after the transition from the decreased power consumption state to the fully working power state. In addition, the method may comprise receiving, by the data stream client, the power management increase event. Also, the method may comprise sending, from the data stream client to the data stream server, a first resume request. The first resume request may be sent after the power management increase event is received. Also, the method may comprise receiving, at the data stream client and from the data stream server, the data stream.</p>
<p id="p0103" num="0103">In addition, the power management increase event and/or the power management increase event may be operating system events.</p>
<p id="p0104" num="0104">The first pause request and/or the first resume request may be sent using an Internet application protocol for delivery of data with real time properties. The term application protocol may be understood according to the OSI model. In this context, delivery may refer to the setup of the session and control of the data. The application protocol may be the real time streaming protocol or the Microsoft media server protocol.</p>
<p id="p0105" num="0105">In some cases, the method may further comprise, broadcasting, by the client<!-- EPO <DP n="26"> --> computer, a power management decrease message. The power management decrease message may include the power management decrease event. Receiving the power management decrease event may comprise receiving the power management decrease message. The power management decrease event may be received at a first window of the data stream client.</p>
<p id="p0106" num="0106">Furthermore, the method may comprise broadcasting, by the client computer, a power management increase message. The power management increase message may include the power management increase event. Receiving the power management increase event may comprise receiving the power management increase message. The power management increase event may be received at the first window of the data stream client.</p>
<p id="p0107" num="0107">The power management decrease event may be generated approximately two seconds before the transition from the fully working power state to the decreased power consumption state. Alternatively, the power management decrease event may be generated approximately five or ten seconds before the transition from the fully power state to the decreased power consumption state. The power management decrease event may be generated between two and ten seconds before the transition from the fully working power state to the decreased power consumption state. The power management decrease event may be generated between ten and twenty seconds before the transition from the fully working power state to the decreased power consumption state. The power management decrease event may be generated between two and twenty seconds before the transition from the fully working power state to the decreased power consumption state. The power management decrease event may be generated up to twenty seconds (i.e. as much as twenty seconds) before the transition from the decreased power consumption state to the fully working power state.</p>
<p id="p0108" num="0108">Generating the power management decrease event approximately two seconds before the transition before the fully working power state to the decreased power consumption state corresponds to the functionality of Microsoft Windows Vista and<!-- EPO <DP n="27"> --> Microsoft Windows 7. Generating the power management decrease event up to twenty seconds before the transition from the decreased power consumption state to the fully working power state corresponds to the functionality of Windows 2003 and Windows XP. Thus, a temporal relationship between the power management increase event and the transition from the fully working power state to the decreased power consumption state may be defined according to the operating system of the client computer.</p>
<p id="p0109" num="0109">In some cases, the data stream is temporarily halted at a point in the data stream. The data stream client may begin receiving the data stream at the point where the data stream was temporarily halted.</p>
<p id="p0110" num="0110">Furthermore, the power management decrease event may be generated in response to one or more of the following: a decrease in power consumption of the client computer, inactivity of the client computer, user input (e.g. manually putting the client computer to sleep or receiving a command from the user instructing the client computer to sleep), or a pending transition from the fully working power state to the decreased power consumption state.</p>
<p id="p0111" num="0111">Moreover, the power management increase event may be generated in response to one or more of the following: user activity (e.g. pressing the power button), or user interaction (mouse or keyboard input).</p>
<p id="p0112" num="0112">In addition, the client computer may consume less power in the decreased power consumption state than in the fully working power state. The client computer may be fully on in the fully working power state. It is possible that the client computer is not fully on in the decreased power consumption state.</p>
<p id="p0113" num="0113">Also, at least one device of the client computer may be in a power saving mode in the decreased power consumption state.</p>
<p id="p0114" num="0114">In some cases, the method may further comprise executing the data stream client on<!-- EPO <DP n="28"> --> the client computer, and executing the data stream server on the server computer.</p>
<p id="p0115" num="0115">Also, the method may further comprise determining that the first window of the data stream client is not visible. In response to the determination that the first window is not visible the method may further comprise, sending, from the data stream client to the data stream server, a second pause request to temporarily halt the data stream.</p>
<p id="p0116" num="0116">The method may further comprise, after determining that the first window of the data stream client is not visible, determining that the first window of the data stream client is visible. Also, in response to the determination that the first window is visible, the method may further comprise sending a second resume request to the data stream server. Additionally, the method may comprise receiving, at the data stream client and from the data stream server, the data stream.</p>
<p id="p0117" num="0117">According to a specific implementation, the isWindowVisible function may be used to perform the determination of visibility and the determination of non-visibility. Alternatively, visibility of the first window may be determined according to whether the first window is obscured by one or more further windows. In other words, the determination that the first window is not visible may be made if the first window is partly or entirely covered by one or more further windows.</p>
</description>
<claims id="claims01" lang="en"><!-- EPO <DP n="29"> -->
<claim id="c-en-01-0001" num="0001">
<claim-text>A computer-implemented method for controlling a data stream from a server computer (301) to a client computer (200), the client computer (200) comprising a data stream client (203) and the server computer (301) comprising a data stream server (602), the method comprising:
<claim-text>- establishing, by the data stream client (203), a session with the data stream server (602), wherein the data stream server (602) specifies a timeout for the session by specifying a time in a timeout parameter;</claim-text>
<claim-text>- while receiving, by the data stream client (203) from the data stream server (602), the data stream:
<claim-text>-- generating (S107,S609), by the client computer (200), a power management decrease event in response to inactivity of a user of the client computer (200);</claim-text>
<claim-text>-- receiving, by the data stream client (203), the power management decrease event; and</claim-text>
<claim-text>-- sending (S109,S611), from the data stream client (203) to the data stream server (602), a first pause request to temporarily halt the data stream, wherein the first pause request is sent after the power management decrease event;</claim-text></claim-text>
<claim-text>- saving, by the data stream client (203), a pause point of the data stream;</claim-text>
<claim-text>- transitioning, by the client computer (200), from a fully working power state to a decreased power consumption state in response to the power management decrease event;</claim-text>
<claim-text>- determining an increase in power consumption of the client computer (200);</claim-text>
<claim-text>- transitioning, by the client computer (200), from the decreased power consumption state to the fully working power state;</claim-text>
<claim-text>- generating (S613), by the client computer (200), a power management increase event after the transition from the decreased power consumption state to the fully working power state;</claim-text>
<claim-text>- receiving, by the data stream client (203), the power management increase<!-- EPO <DP n="30"> --> event;</claim-text>
<claim-text>- sending (S615) a resume request to the data stream server;</claim-text>
<claim-text>- when a time between the first pause request and the resume request exceeds the time specified in the timeout parameter, reestablishing, by the data stream client (203), the session with the data stream server by transmitting the pause point in a new request to start transmitting the data stream; and</claim-text>
<claim-text>- receiving, at the data stream client (203) and from the data stream server (602), the data stream.</claim-text></claim-text></claim>
<claim id="c-en-01-0002" num="0002">
<claim-text>The method of claim 1, wherein the fully working power state is the fully on ACPI power state and the decreased power consumption state is an ACPI power state other than the fully on ACPI power state;</claim-text></claim>
<claim id="c-en-01-0003" num="0003">
<claim-text>The method of claim 1 or 2, wherein the decreased power consumption state is one of the following:
<claim-text>a sleeping state, such as a sleep state, a hibernating state, a standby state, or a suspend state; or</claim-text>
<claim-text>a soft off state or a fully off state.</claim-text></claim-text></claim>
<claim id="c-en-01-0004" num="0004">
<claim-text>The method of any one of the preceding claims, wherein the data stream is a media stream, wherein the media stream includes audio data and/or video data.</claim-text></claim>
<claim id="c-en-01-0005" num="0005">
<claim-text>The method of any one of the preceding claims, wherein the data stream is sent using a connectionless Internet transport protocol, and/or<br/>
wherein the data stream is sent using the Real-Time Transport Protocol.</claim-text></claim>
<claim id="c-en-01-0006" num="0006">
<claim-text>The method of claim 1, wherein the power management decrease event and/or the power management increase event are operating system events.</claim-text></claim>
<claim id="c-en-01-0007" num="0007">
<claim-text>The method of any one of the preceding claims,<br/>
wherein the first pause request and/or the first resume request are sent using an Internet application protocol for delivery of data with real-time properties; and<br/>
wherein the application protocol is optionally the Real-Time Streaming Protocol or the Microsoft Media Server protocol.<!-- EPO <DP n="31"> --></claim-text></claim>
<claim id="c-en-01-0008" num="0008">
<claim-text>The method of any one of the preceding claims, further comprising:
<claim-text>broadcasting, by the client computer (200), a power management decrease message, the power management decrease message including the power management decrease event;</claim-text>
<claim-text>wherein receiving the power management decrease event comprises receiving the power management decrease message; and</claim-text>
<claim-text>wherein the power management decrease event may be received at a first window of the data stream client (203).</claim-text></claim-text></claim>
<claim id="c-en-01-0009" num="0009">
<claim-text>The method of any one of the preceding claims,<br/>
wherein a temporal relationship between the power management decrease event and the transition from the fully working power state to the decreased power consumption state is defined according to an operating system of the client computer (200).</claim-text></claim>
<claim id="c-en-01-0010" num="0010">
<claim-text>The method of any one of the preceding claims, further comprising:
<claim-text>determining that the first window of the data stream client (203) is not visible; and</claim-text>
<claim-text>in response to the determination that the first window is not visible, sending, from the data stream client (203) to the data stream server (602), a second pause request to temporarily halt the data stream.</claim-text></claim-text></claim>
<claim id="c-en-01-0011" num="0011">
<claim-text>The method of claim 10, further comprising<br/>
after determining that the first window of the data stream client (203) is not visible, determining that the first window of the data stream client (203) is visible;<br/>
in response to the determination that the first window is visible, sending a second resume request to the data stream server (602); and<br/>
receiving, at the data stream client (203) and from the data stream server (602), the data stream.</claim-text></claim>
<claim id="c-en-01-0012" num="0012">
<claim-text>A computer program product comprising computer-readable instructions, which, when loaded and executed on a computer system, cause the computer system to perform operations according to the method of any one of the preceding<!-- EPO <DP n="32"> --> claims.</claim-text></claim>
<claim id="c-en-01-0013" num="0013">
<claim-text>A computer system for controlling a data stream from a server computer (301) to a client computer (200), the system comprising:
<claim-text>- a server computer (301), the server computer (301) comprising a data stream server (602);</claim-text>
<claim-text>- a client computer (200), the client computer (200) comprising a data stream client (203);</claim-text>
<claim-text>- wherein the data stream server (602) is operable to send the data stream to the data stream client (203);</claim-text>
<claim-text>- wherein the data stream client (203) is operable to receive the data stream and, while the data stream client (203) is receiving the data stream, the system is operable to:
<claim-text>-- establish, by the data stream client (203), a session with the data stream server (602), wherein the data stream server (602) specifies a timeout for the session by specifying a time in a timeout parameter;</claim-text>
<claim-text>-- generate, by the client computer (200), a power management decrease event in response to inactivity of a use of the client computer (200);</claim-text>
<claim-text>-- receive, by the data stream client (203), the power management decrease event; and</claim-text>
<claim-text>-- send, from the data stream client (203) to the data stream server (602), a first pause request to temporarily halt the data stream, wherein the first pause request is sent after the power management decrease event is received;</claim-text></claim-text>
<claim-text>- wherein the client computer (200) is further operable to:
<claim-text>-- cause the data stream client (203) to save a pause point of the data stream;</claim-text>
<claim-text>-- transition from a fully working power state to a decreased power consumption state in response to the power management decrease event;</claim-text>
<claim-text>-- determine an increase in power consumption of the client computer (200);</claim-text>
<claim-text>-- transition from the decreased power consumption state to the fully working power state;</claim-text>
<claim-text>-- generate a power management increase event after the transition<!-- EPO <DP n="33"> --> from the decreased power consumption state to the fully working power state;</claim-text>
<claim-text>-- cause the data stream client (203) to receive the power management increase event;</claim-text>
<claim-text>-- send a resume request to the data stream server;</claim-text>
<claim-text>-- when a time between the first pause request and the resume request exceeds the time specified in the timeout parameter, cause the data stream client (203) to reestablish the session with the data stream server by transmitting the pause point in a new request to start transmitting the data stream; and</claim-text>
<claim-text>-- cause the data stream client (203) to receive the data stream sent from the data stream server (602).</claim-text></claim-text></claim-text></claim>
</claims>
<claims id="claims02" lang="de"><!-- EPO <DP n="34"> -->
<claim id="c-de-01-0001" num="0001">
<claim-text>Ein computer-implementiertes Verfahren zum Steuern eines Datenstroms ausgehend von einem Server-Computer (301) zu einem Client-Computer (200), wobei der Client-Computer (200) einen Datenstrom-Client (203) und der Server-Computer (301) einen Datenstrom-Server (602) umfasst, wobei das Verfahren Folgendes umfasst:
<claim-text>- Einrichten, durch den Datenstrom-Client (203), einer Sitzung mit dem Datenstrom-Server (602), wobei der Datenstrom-Server (602) durch die Angabe einer Zeit in einem Timeout-Parameter einen Timeout für die Sitzung spezifiziert;</claim-text>
<claim-text>- während des Empfangens des Datenstroms durch den Datenstrom-Client (203) ausgehend von dem Datenstrom-Server (602):
<claim-text>-- Erzeugen (S107, S609), durch den Client-Computer (200), eines Energiemanagement-Verringerungsereignisses als Reaktion auf die Inaktivität eines Benutzers des Client-Computers (200);</claim-text>
<claim-text>-- Empfangen, durch den Datenstrom-Client (203), des Energiemanagement-Verringerungsereignisses; und</claim-text>
<claim-text>-- Senden (S109, S611), ausgehend vom Datenstrom-Client (203) an den Datenstrom-Server (602), einer erste Pausen-Anforderung, um den Datenstrom vorübergehend anzuhalten, wobei die erste Pausen-Anforderung nach dem Energiemanagement-Verringerungsereignis gesendet wird;</claim-text></claim-text>
<claim-text>- Speichern, durch den Datenstrom-Client (203), eines Pausenpunkts bzw. Anhaltepunkts des Datenstroms;</claim-text>
<claim-text>- Übergehen, durch den Client-Computer (200), von einem Zustand der vollen Arbeitsleistung in einen Zustand mit verringertem Energieverbrauch als Reaktion auf das Energiemanagement-Verringerungsereignis;</claim-text>
<claim-text>- Feststellen eines Anstiegs des Energieverbrauchs des Client-Computers (200);</claim-text>
<claim-text>- Übergehen, durch den Client-Computer (200), von dem Zustand mit verringertem Energieverbrauch in den Zustand der vollen Arbeitsleistung;</claim-text>
<claim-text>- Erzeugen (S613), durch den Client-Computer (200), eines Energiemanagement-Erhöhungsereignisses nach dem Übergang von dem Zustand mit verringertem Energieverbrauch in dem Zustand der vollen Arbeitsleistung;</claim-text>
<claim-text>- Empfangen, durch den Datenstrom-Client (203), des Energiemanagement-Erhöhungsereignisses;</claim-text>
<claim-text>- Senden (S615) einer Wiederaufnahme-Anforderung an den Datenstrom-Server;</claim-text>
<claim-text>- wenn eine Zeit zwischen der ersten Pausen-Anforderung und der Wiederaufnahme-Anforderung die Zeit überschreitet, die im Zeitüberschreitungs-Parameter angegeben ist, Wiederherstellen, durch den Datenstrom-Client (203), der Sitzung mit dem Datenstrom-Server durch das Übertragen des Pausenpunkts in einer neuen Anforderung, um die Übertragung des Datenstroms zu beginnen; und</claim-text>
<claim-text>- Empfangen des Datenstromes am Datenstrom-Client (203) und vom Datenstrom-Server (602).</claim-text></claim-text></claim>
<claim id="c-de-01-0002" num="0002">
<claim-text>Das Verfahren nach Anspruch 1, wobei der Zustand der vollen Arbeitsleistung der voll eingeschaltete ACPI-Leistungszustand ist, und der Zustand mit verringertem Energieverbrauch ein anderer ACPI-Leistungszustand als der voll eingeschaltete ACPI-Leistungszustand ist;<!-- EPO <DP n="35"> --></claim-text></claim>
<claim id="c-de-01-0003" num="0003">
<claim-text>Das Verfahren nach Anspruch 1 oder 2, wobei der Zustand mit verringertem Energieverbrauch einer der folgenden ist:
<claim-text>ein Ruhezustand, wie z.B. ein Schlafmodus, ein Ruhezustand <i>(hibernating state),</i> ein Bereitschaftszustand oder ein Aussetzzustand (<i>suspend state</i>); oder</claim-text>
<claim-text>ein <i>Soft</i>-<i>Off</i>-Zustand oder ein vollständig ausgeschalteter Zustand.</claim-text></claim-text></claim>
<claim id="c-de-01-0004" num="0004">
<claim-text>Das Verfahren nach irgendeinem der vorstehenden Ansprüche, wobei der Datenstrom ein Medienstrom ist, wobei der Medienstrom Audiodaten und/oder Videodaten enthält.</claim-text></claim>
<claim id="c-de-01-0005" num="0005">
<claim-text>Das Verfahren nach irgendeinem der vorstehenden Ansprüche, wobei der Datenstrom unter Verwendung eines verbindungslosen Internet-Transportprotokolls gesendet wird, und/oder<br/>
wobei der Datenstrom mit dem <i>Real-Time Transport Protocol</i> gesendet wird.</claim-text></claim>
<claim id="c-de-01-0006" num="0006">
<claim-text>Das Verfahren nach Anspruch 1, bei dem das Energieverwaltungs-Verringerungsereignis und/oder das Energieverwaltungs-Erhöhungsereignis Ereignisse des Betriebssystems sind.</claim-text></claim>
<claim id="c-de-01-0007" num="0007">
<claim-text>Das Verfahren nach einem der vorstehenden Ansprüche,<br/>
wobei die erste Pausen-Anforderung und/oder die erste Wiederaufnahme-Anforderung unter Verwendung eines Internet-Anwendungsprotokolls zur Bereitstellung von Daten mit Echtzeit-Eigenschaften gesendet werden; und<br/>
wobei das Anwendungsprotokoll wahlweise das <i>Real-Time Streaming -</i> Protokoll oder das <i>Microsoft Media Server</i> - Protokoll ist.</claim-text></claim>
<claim id="c-de-01-0008" num="0008">
<claim-text>Das Verfahren nach irgendeinem der vorstehenden Ansprüche, das ferner Folgendes umfasst:
<claim-text>Versenden, durch den Client-Computer (200), einer Energieverwaltungs-Verringerungs-Meldung, wobei die Energieverwaltungs-Verringerungs-Meldung das Energiemanagement-Verringerungsereignis einschließt;</claim-text>
<claim-text>wobei das Empfangen des Energiemanagement-Verringerungsereignisses das Empfangen der Energieverwaltungs-Verringerungs-Meldung umfasst; und</claim-text>
<claim-text>wobei das Energiemanagement-Verringerungsereignis in einem ersten Fenster des Datenstrom-Clients empfangen werden kann (203).</claim-text></claim-text></claim>
<claim id="c-de-01-0009" num="0009">
<claim-text>Das Verfahren nach irgendeinem der vorstehenden Ansprüche, wobei eine zeitliche Beziehung zwischen dem Energiemanagement-Verringerungsereignis und dem Übergang vom Zustand der vollen Arbeitsleistung in den Zustand mit verringertem Energieverbrauch abhängig vom Betriebssystem des Client-Computers (200) definiert ist.</claim-text></claim>
<claim id="c-de-01-0010" num="0010">
<claim-text>Das Verfahren nach irgendeinem der vorstehenden Ansprüche, das ferner Folgendes umfasst:
<claim-text>Bestimmen, dass das erste Fenster des Datenstrom-Clients (203) nicht sichtbar ist; und</claim-text>
<claim-text>als Reaktion auf das Bestimmen, dass das erste Fenster nicht sichtbar ist, Senden einer zweiten Pausen-Anforderung vom Datenstrom-Client (203) an den Datenstrom-Server (602), um den Datenstrom vorübergehend anzuhalten.</claim-text></claim-text></claim>
<claim id="c-de-01-0011" num="0011">
<claim-text>Das Verfahren nach Anspruch 10, das ferner Folgendes umfasst:<!-- EPO <DP n="36"> -->
<claim-text>nachdem bestimmt wurde, dass das erste Fenster des Datenstrom-Clients (203) nicht sichtbar ist, bestimmen, dass das erste Fenster des Datenstrom-Clients (203) sichtbar ist;</claim-text>
<claim-text>als Antwort auf die Bestimmung, dass das erste Fenster sichtbar ist, Senden einer zweiten Wiederaufnahme-Anforderung an den Datenstrom-Server (602); und</claim-text>
<claim-text>Empfangen am Datenstrom-Client (203) und vom Datenstrom-Server (602) des Datenstroms.</claim-text></claim-text></claim>
<claim id="c-de-01-0012" num="0012">
<claim-text>Ein Computerprogrammprodukt, das computerlesbare Anweisungen umfasst, die, wenn sie auf ein Computersystem geladen und dort ausgeführt werden, das Computersystem dazu veranlassen, Operationen gemäß eines Verfahren nach irgendeinem der vorstehenden Ansprüche durchzuführen.</claim-text></claim>
<claim id="c-de-01-0013" num="0013">
<claim-text>Ein Computersystem zum Steuern eines Datenstroms ausgehend von einem Server-Computer (301) zu einem Client-Computer (200), wobei das System Folgendes umfasst:
<claim-text>- einen Server-Computer (301), wobei der Server-Computer (301) einen Datenstrom-Server (602) umfasst;</claim-text>
<claim-text>- einen Client-Computer (200), wobei der Client-Computer (200) einen Datenstrom-Client (203) umfasst;</claim-text>
<claim-text>- wobei der Datenstrom-Server (602) betreibbar ist, um den Datenstrom an den Datenstrom-Client (203) zu senden;</claim-text>
<claim-text>- wobei der Datenstrom-Client (203) betreibbar ist, um den Datenstrom zu empfangen, wobei, während der Datenstrom-Client (203) den Datenstrom empfängt, das System betriebsbereit ist, um Folgendes zu bewerkstelligen:
<claim-text>-- Einrichten, durch den Datenstrom-Client (203), einer Sitzung mit dem Datenstrom-Server (602), wobei der Datenstrom-Server (602) durch die Angabe einer Zeit in einem Timeout-Parameter einen Timeout für die Sitzung spezifiziert;</claim-text>
<claim-text>-- Erzeugen (S107, S609), durch den Client-Computer (200), eines Energiemanagement-Verringerungsereignisses als Reaktion auf die Inaktivität bei der Verwendung des Client-Computers (200);</claim-text>
<claim-text>-- Empfangen, durch den Datenstrom-Client (203), des Energiemanagement-Verringerungsereignisses; und</claim-text>
<claim-text>-- Senden (S109, S611), ausgehend vom Datenstrom-Client (203) an den Datenstrom-Server (602), einer erste Pausen-Anforderung, um den Datenstrom vorübergehend anzuhalten, wobei die erste Pausen-Anforderung nach dem Energiemanagement-Verringerungsereignis gesendet wird;</claim-text></claim-text>
<claim-text>- wobei der Client-Computer (200) ferner betreibbar ist, um Folgendes zu bewerkstelligen:
<claim-text>-- Veranlassen des Datenstrom-Clients (203), einen Pausenpunkt bzw. Anhaltepunkt des Datenstroms zu speichern;</claim-text>
<claim-text>-- Übergehen von einem Zustand der vollen Arbeitsleistung in einen Zustand mit verringertem Energieverbrauch als Reaktion auf das Energiemanagement-Verringerungsereignis;</claim-text>
<claim-text>-- Bestimmen eines Anstiegs des Energieverbrauchs des Client-Computers (200);</claim-text>
<claim-text>-- Übergehen, durch den Client-Computer (200), von dem Zustand mit verringertem Energieverbrauch in den Zustand der vollen Arbeitsleistung;</claim-text>
<claim-text>-- Erzeugen eines Energiemanagement-Erhöhungsereignisses nach dem Übergang von dem Zustand mit verringertem Energieverbrauch in dem Zustand der vollen Arbeitsleistung;<!-- EPO <DP n="37"> --></claim-text>
<claim-text>-- Veranlassen des Datenstrom-Clients (203) das Energiemanagement-Erhöhungsereignis zu empfangen;</claim-text>
<claim-text>-- Senden einer Wiederaufnahme-Anforderung an den Datenstrom-Server;</claim-text>
<claim-text>-- wenn eine Zeit zwischen der ersten Pausen-Anforderung und der Wiederaufnahme-Anforderung die Zeit überschreitet, die im Zeitüberschreitungs-Parameter angegeben ist, Veranlassen des Datenstrom-Clients (203), die Sitzung mit dem Datenstrom-Server wiederherzustellen, durch das Übertragen des Pausenpunkts in einer neuen Anforderung, um die Übertragung des Datenstroms zu beginnen; und</claim-text>
<claim-text>-- Veranlassen des Datenstrom-Clients (203) den ausgehend vom Datenstrom-Server (602) gesendeten Datenstrom zu empfangen.</claim-text></claim-text></claim-text></claim>
</claims>
<claims id="claims03" lang="fr"><!-- EPO <DP n="38"> -->
<claim id="c-fr-01-0001" num="0001">
<claim-text>Un procédé mis en œuvre par ordinateur pour commander un flux de données depuis un ordinateur serveur (301) vers un ordinateur client (200), l'ordinateur client (200) comprenant un client de flux de données (203) et l'ordinateur serveur (301) comprenant un serveur de flux de données (602), le procédé comprenant le fait de :
<claim-text>- établir, par le client de flux de données (203), une session avec le serveur de flux de données (602), sachant que le serveur de flux de données (602) spécifie un délai d'attente pour la session en spécifiant un temps dans un paramètre de délai d'attente ;</claim-text>
<claim-text>- pendant la réception, par le client de flux de données (203) de la part du serveur de flux de données (602), du flux de données :
<claim-text>-- générer (S107, S609), par l'ordinateur client (200), un événement de diminution en gestion de la consommation d'énergie en réponse à l'inactivité d'un utilisateur de l'ordinateur client (200) ;</claim-text>
<claim-text>-- recevoir, par le client de flux de données (203), l'événement de diminution en gestion de la consommation d'énergie; et</claim-text>
<claim-text>-- envoyer (S109, S611), depuis le client de flux de données (203) au serveur de flux de données (602), une première demande de pause pour arrêter temporairement le flux de données, sachant que la première demande de pause est envoyée après l'événement de diminution en gestion de la consommation d'énergie ;</claim-text></claim-text>
<claim-text>- sauvegarder, par le client de flux de données (203), un point de pause du flux de données ;</claim-text>
<claim-text>- effectuer une transition, par l'ordinateur client (200), depuis un état de puissance entièrement fonctionnel à un état de consommation de puissance réduite en réponse à l'événement de diminution en gestion de la consommation d'énergie ;</claim-text>
<claim-text>- déterminer une augmentation de la consommation de puissance de l'ordinateur client (200) ;</claim-text>
<claim-text>- effectuer une transition, par l'ordinateur client (200), d'un état de puissance réduite à l'état de puissance entièrement fonctionnel ;</claim-text>
<claim-text>- générer (S613), par l'ordinateur client (200), un événement d'augmentation en gestion de la consommation d'énergie après la transition de l'état de consommation de puissance réduite à l'état de puissance entièrement fonctionnel;</claim-text>
<claim-text>- recevoir, par le client de flux de données (203), l'événement d'augmentation en gestion de la consommation d'énergie ;</claim-text>
<claim-text>- envoyer (S615) une demande de reprise au serveur de flux de données ;</claim-text>
<claim-text>- lorsqu'un temps entre la première demande de pause et la demande de reprise dépasse le temps spécifié dans le paramètre de délai d'attente, rétablir, par le client de flux de données (203), la session avec le serveur de flux de données en transmettant le point de pause dans une nouvelle demande pour commencer à transmettre le flux de données ; et</claim-text>
<claim-text>- recevoir, au niveau du client de flux de données (203) et depuis le serveur de flux de données (602), le flux de données.</claim-text></claim-text></claim>
<claim id="c-fr-01-0002" num="0002">
<claim-text>Le procédé d'après la revendication 1, sachant que l'état de puissance entièrement fonctionnel est l'état de puissance entièrement activé ACPI et que l'état de consommation de puissance réduite est un état de puissance ACPI autre que l'état de puissance entièrement activé ACPI ;<!-- EPO <DP n="39"> --></claim-text></claim>
<claim id="c-fr-01-0003" num="0003">
<claim-text>Le procédé d'après la revendication 1 ou 2, sachant que l'état de consommation de puissance réduite est l'un des suivants :
<claim-text>un état de veille, tel qu'un état de veille (<i>sleep state</i>), un état d'hibernation (<i>hybernating state</i>), un état d'attente (<i>standby state</i>)ou un état de suspension (<i>suspend state</i>) ; ou</claim-text>
<claim-text>un état <i>soft-off</i> ou un état d'arrêt complet.</claim-text></claim-text></claim>
<claim id="c-fr-01-0004" num="0004">
<claim-text>Le procédé d'après l'une quelconque des revendications précédentes, sachant que le flux de données est un flux multimédia, sachant que le flux multimédia comprend des données audio et/ou des données vidéo.</claim-text></claim>
<claim id="c-fr-01-0005" num="0005">
<claim-text>Le procédé d'après l'une quelconque des revendications précédentes, sachant que le flux de données est envoyé en utilisant un protocole de transport Internet sans-connexion, et/ou<br/>
sachant que le flux de données est envoyé en utilisant le <i>Real-Time Transport Protocol.</i></claim-text></claim>
<claim id="c-fr-01-0006" num="0006">
<claim-text>Le procédé d'après la revendication 1, sachant que l'événement de diminution en gestion de la consommation d'énergie et/ou l'événement d'augmentation en gestion de la consommation d'énergie sont des événements du système d'exploitation.</claim-text></claim>
<claim id="c-fr-01-0007" num="0007">
<claim-text>Le procédé d'après l'une quelconque des revendications précédentes,<br/>
sachant que la première demande de pause et/ou la première demande de reprise sont envoyées en utilisant un protocole d'application Internet pour la livraison de données présentant des propriétés en temps réel ; et<br/>
sachant que le protocole d'application est au choix le <i>Real-Time Streaming Protocol</i> ou le protocole <i>Microsoft Media Server.</i></claim-text></claim>
<claim id="c-fr-01-0008" num="0008">
<claim-text>Le procédé d'après l'une quelconque des revendications précédentes, comprenant en outre le fait de :
<claim-text>diffuser, par l'ordinateur client (200), un message de diminution en gestion de la consommation d'énergie, le message de diminution en gestion de la consommation d'énergie comprenant l'événement de diminution en gestion de la consommation d'énergie ;</claim-text>
<claim-text>sachant que le fait de recevoir l'événement de diminution en gestion de la consommation d'énergie comprend le fait de recevoir le message de diminution en gestion de la consommation d'énergie ; et</claim-text>
<claim-text>sachant que l'événement de diminution en gestion de la consommation d'énergie peut être reçu au niveau d'une première fenêtre du client de flux de données (203).</claim-text></claim-text></claim>
<claim id="c-fr-01-0009" num="0009">
<claim-text>Le procédé d'après l'une quelconque des revendications précédentes,<br/>
sachant qu'une relation temporelle entre l'événement de diminution en gestion de la consommation d'énergie et la transition depuis l'état de puissance entièrement fonctionnel à l'état de consommation de puissance diminuée est définie conformément à un système d'exploitation de l'ordinateur client (200).</claim-text></claim>
<claim id="c-fr-01-0010" num="0010">
<claim-text>Le procédé d'après l'une quelconque des revendications précédentes, comprenant en outre le fait de :<!-- EPO <DP n="40"> -->
<claim-text>déterminer que la première fenêtre du client de flux de données (203) n'est pas visible ; et de</claim-text>
<claim-text>en réponse à la détermination que la première fenêtre n'est pas visible, envoyer, depuis le client de flux de données (203) au serveur de flux de données (602), une deuxième demande de pause pour arrêter temporairement le flux de données.</claim-text></claim-text></claim>
<claim id="c-fr-01-0011" num="0011">
<claim-text>Le procédé d'après la revendication 10, comprenant en outre le fait de :
<claim-text>après avoir déterminé que la première fenêtre du client de flux de données (203) n'est pas visible, déterminer que la première fenêtre du client de flux de données (203) est visible ;</claim-text>
<claim-text>en réponse à la détermination que la première fenêtre est visible, envoyer une deuxième demande de reprise au serveur de flux de données (602) ; et de</claim-text>
<claim-text>recevoir le flux de données au niveau du client de flux de données (203) et depuis le serveur de flux de données (602).</claim-text></claim-text></claim>
<claim id="c-fr-01-0012" num="0012">
<claim-text>Un produit de programme informatique comprenant des instructions lisibles par ordinateur qui, lorsqu'elles sont chargées et exécutées sur un système informatique, amènent le système informatique à effectuer des opérations conformément au procédé d'après l'une quelconque des revendications précédentes.</claim-text></claim>
<claim id="c-fr-01-0013" num="0013">
<claim-text>Un système informatique pour commander un flux de données depuis un ordinateur serveur (301) vers un ordinateur client (200), le système comprenant :
<claim-text>- un ordinateur serveur (301), l'ordinateur serveur (301) comprenant un serveur de flux de données (602) ;</claim-text>
<claim-text>- un ordinateur client (200), l'ordinateur client (200) comprenant un client de flux de données (203) ;</claim-text>
<claim-text>- sachant que le serveur de flux de données (602) peut être utilisé pour envoyer le flux de données au client de flux de données (203) ;</claim-text>
<claim-text>- sachant que le client de flux de données (203) peut être utilisé pour recevoir le flux de données et, pendant que le client de flux de données (203) reçoit le flux de données, le système est utilisable pour :
<claim-text>-- établir, par le client de flux de données (203), une session avec le serveur de flux de données (602), sachant que le serveur de flux de données (602) spécifie un délai d'attente pour la session en spécifiant un temps dans un paramètre de délai d'attente ;</claim-text>
<claim-text>-- générer (S107, S609), par l'ordinateur client (200), un événement de diminution en gestion de la consommation d'énergie en réponse à l'inactivité à l'égard d'une utilisation de l'ordinateur client (200) ;</claim-text>
<claim-text>-- recevoir, par le client de flux de données (203), l'événement de diminution en gestion de la consommation d'énergie; et</claim-text>
<claim-text>-- envoyer (S109, S611), depuis le client de flux de données (203) au serveur de flux de données (602), une première demande de pause pour arrêter temporairement le flux de données, sachant que la première demande de pause est envoyée après l'événement de diminution en gestion de la consommation d'énergie ;</claim-text></claim-text>
<claim-text>- sachant que l'ordinateur client (200) peut être utilisé en outre pour :
<claim-text>-- amener le client de flux de données (203) à sauvegarder un point de pause du flux de données ;<!-- EPO <DP n="41"> --></claim-text>
<claim-text>-- effectuer une transition depuis un état de puissance entièrement fonctionnel à un état de consommation de puissance réduite en réponse à l'événement de diminution en gestion de la consommation d'énergie ;</claim-text>
<claim-text>-- déterminer une augmentation de la consommation de puissance de l'ordinateur client (200) ;</claim-text>
<claim-text>-- effectuer une transition d'un état de puissance réduite à l'état de puissance entièrement fonctionnel ;</claim-text>
<claim-text>-- générer un événement d'augmentation en gestion de la consommation d'énergie après la transition de l'état de consommation de puissance réduite à l'état de puissance entièrement fonctionnel;</claim-text>
<claim-text>-- amener le client de flux de données (203) à recevoir l'événement d'augmentation en gestion de la consommation d'énergie ;</claim-text>
<claim-text>-- envoyer une demande de reprise au serveur de flux de données ;</claim-text>
<claim-text>-- lorsqu'un temps entre la première demande de pause et la demande de reprise dépasse le temps spécifié dans le paramètre de délai d'attente, amener le client de flux de données (203) à rétablir la session avec le serveur de flux de données en transmettant le point de pause dans une nouvelle demande pour commencer à transmettre le flux de données ; et</claim-text>
<claim-text>-- amener le client de flux de données (203) à recevoir le flux de données envoyé depuis le serveur de flux de données (602).</claim-text></claim-text></claim-text></claim>
</claims>
<drawings id="draw" lang="en"><!-- EPO <DP n="42"> -->
<figure id="f0001" num="1"><img id="if0001" file="imgf0001.tif" wi="150" he="216" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="43"> -->
<figure id="f0002" num="2"><img id="if0002" file="imgf0002.tif" wi="165" he="190" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="44"> -->
<figure id="f0003" num="3"><img id="if0003" file="imgf0003.tif" wi="165" he="229" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="45"> -->
<figure id="f0004" num="4"><img id="if0004" file="imgf0004.tif" wi="162" he="233" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="46"> -->
<figure id="f0005" num="5"><img id="if0005" file="imgf0005.tif" wi="88" he="233" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="47"> -->
<figure id="f0006" num="6"><img id="if0006" file="imgf0006.tif" wi="165" he="193" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="48"> -->
<figure id="f0007" num="7"><img id="if0007" file="imgf0007.tif" wi="133" he="210" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="49"> -->
<figure id="f0008" num="8"><img id="if0008" file="imgf0008.tif" wi="154" he="233" img-content="drawing" img-format="tif"/></figure>
</drawings>
<ep-reference-list id="ref-list">
<heading id="ref-h0001"><b>REFERENCES CITED IN THE DESCRIPTION</b></heading>
<p id="ref-p0001" num=""><i>This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.</i></p>
<heading id="ref-h0002"><b>Patent documents cited in the description</b></heading>
<p id="ref-p0002" num="">
<ul id="ref-ul0001" list-style="bullet">
<li><patcit id="ref-pcit0001" dnum="US2010125890A"><document-id><country>US</country><doc-number>2010125890</doc-number><kind>A</kind></document-id></patcit><crossref idref="pcit0001">[0004]</crossref></li>
<li><patcit id="ref-pcit0002" dnum="WO2008072093A"><document-id><country>WO</country><doc-number>2008072093</doc-number><kind>A</kind></document-id></patcit><crossref idref="pcit0002">[0005]</crossref></li>
</ul></p>
</ep-reference-list>
</ep-patent-document>
