RE: [Helix-client-dev] [Re-Send] Add power save mode support for offload music playback (Framework part only)
"Zhao, Halley" <[email protected]> Thu, 1 Jul 2010 08:34:38 +0800
| Newsgroups | gmane.comp.multimedia.helix.devel |
|---|---|
| Message-ID | <5D8008F58939784290FAB48F54975198181015A205@shsmsx502.ccr.corp.intel.com> |
Hi Xiaolin: The IHXTimeLineLimit interface is in an older design, we canceled that because that can't work well. See the final design in the first attachment, and final patch in the second attachment. -----Original Message----- From: [email protected] [mailto:[email protected]] Sent: 2010年6月30日 23:31 To: Zhao, Halley Cc: [email protected] Subject: RE: [Helix-client-dev] [Re-Send] Add power save mode support for offload music playback (Framework part only) Hello Halley, Thanks for your reply. I am trying to add powersave support on brizo branch for Symbian (we have it on cays210 branch). I could not find the new interface IHXTimelineLimit implemented in the helix audio player /audio session in your CR, I am just wondering if there is another way around for this interface or I should add it into brizo. This new interface was mentioned in the notes on power save design/implementation by Realnetwork as following: -> New concept of limiting the audio session time-line will be introduced to allow audio device to kick out of the power save mode when approaching end of playback. In order to avoid problematic bindings between player and audio subsystem, new interface needs to be created: IHXTimelineLimit: HX_RESULT SetLimit(UINT32 ulLimitInMs); HX_RESULT GetLimit(UINT32 &ulLimitMs); HX_RESULT ResetLimit(); -> This (above) interface should be exposed by the audio player object (as optional interface). When duration is computed/updated ( HXPlayer::AdjustPresentationTime( void )), the new presentation time is to be Set on audio player via SetLimit(). No limit is to be set for live or otherwise open ended streams. -> Audio player will record the limit in SetLimit and call SetLimit on audio session on transition to playing state or immediately if already in the playing state. The time information will need to be converted to audio session timeline: ulLimitInMs - m_ulAPstartTime + m_ulADresumeTime -> Audio Player will ResetLimit on audio session when paused or stopped (moved out of playing state). -> Audio session when receiving SetLimit call will query GetLimit from all audio players and discover to the latest limit value set on the players. -> When mixing, audio session mix and write audio to audio device only up to and including the first block reaching to or exceeding the set time-limit. This will be in effect only in power save mode. -> Audio session will recompute the current time limit whenever the limit is set or reset and whenever an audio player enters or leaves the audio session. -> Audio session will call SetLimit on Audio Device with the earliest time limit value vua new IHXTimelineLimit interface. It will be tolerated If audio device does not support IHXTimelineLimit interface. Thanks ! Xiaolin -----Original Message----- From: ext Zhao, Halley [mailto:[email protected]] Sent: Tuesday, June 29, 2010 9:27 PM To: Lliu Xiaolin (Nokia-D/Dallas) Cc: [email protected] Subject: RE: [Helix-client-dev] [Re-Send] Add power save mode support for offload music playback (Framework part only) Not sure your target. My patch make helix engine be marshaled by an external clock, especially when the HW decoder provides the clock. So that Helix engine could have a longer sleep when HW decoder could run without engines' intervene. So it needs cooperate with decoder, but the decoder is not in Helix yet. -----Original Message----- From: [email protected] [mailto:[email protected]] Sent: 2010年6月30日 0:44 To: Zhao, Halley Subject: RE: [Helix-client-dev] [Re-Send] Add power save mode support for offload music playback (Framework part only) Hello Hallay, Would you please let me know if there is any other powersave changes besides the one you committed? I am looking at the brizo banch for powersave in cays210 branch. I do not see the scheduler (for pause/resume) support in brizo/head, also cays210 implemented timelimit as following which is not in brizo/head: IHXTimelineLimit: HX_RESULT SetLimit(UINT32 ulLimitInMs); HX_RESULT GetLimit(UINT32 &ulLimitMs); HX_RESULT ResetLimit(); Thank you ! Xiaolin -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of ext Zhao, Halley Sent: Friday, September 18, 2009 10:37 AM To: 'Sheldon fu' Cc: '[email protected]' Subject: RE: [Helix-client-dev] [Re-Send] Add power save mode support for offload music playback (Framework part only) Commit to HEAD,310Atlas and brizo_4_0_1 BR -----Original Message----- From: Sheldon fu [mailto:[email protected]] Sent: 2009年9月17日 21:57 To: Zhao, Halley Cc: 'Tony Seaward'; '[email protected]' Subject: RE: [Helix-client-dev] [Re-Send] Add power save mode support for offload music playback (Framework part only) Looks good. fxd On Thu, 2009-09-17 at 18:48 +0800, Zhao, Halley wrote: > Thanks Sheldon. > Here is my follow up > > 1. Move pIPowerSave to be a class member variable m_ pIPowerSave, and > release it during class destroy. (CHXClientEngine.cpp and > hxaudply.cpp) > 2,3,4,5 followed your suggestion. > 6. use base class HXSource for cast, and add HXNetSource with: virtual HXBOOL UsesNetworkAccess(){return TRUE;} ; > > > -----Original Message----- > From: Sheldon fu [mailto:[email protected]] > Sent: Tuesday, September 01, 2009 4:42 AM > To: Zhao, Halley > Cc: '[email protected]' > Subject: Re: [Helix-client-dev] [Re-Send] Add power save mode support > for offload music playback (Framework part only) > > 1. pIPowerSave needs to be released in the new methods added to > CHXClientEngine.cpp. > > 2. Can not return HXR_FAIL from methods with HXBOOL (or anything other > than HX_RESULT) return type, in file CHXClientEngine.cpp. > > 3. STDMETHODIMP_ shouldn't be used in the header file CHXClientEngine.h. > Should just use STDMETHOD or STDMETHOD_ > > 4. In hxcore.h, "STDMETHOD_(HX_RESULT,xxx)" should be just > "STDMETHOD(xxx)". > > 5. In hxcleng.cpp > > + LISTPOSITION lPosition = m_PlayerList.GetHeadPosition(); > + if (lPosition != NULL) > + { > + HXPlayer* pPlayer = (HXPlayer*) > m_PlayerList.GetAt(lPosition); > + if (pPlayer != NULL) > + pPlayer->AdjustWakeUpInterval(m_ulWakeUpInterval); > > can be simplified by using m_PlayerList.GetHead or > m_PlayerList.GetTail(). > > 6. Helix coding convention normally suggests putting body of > conditional statements in '{}' pair, at least in the client core > source files. e.g, > > + if (theErr == HXR_OK) > + m_bInPowerSave = TRUE; > + else > + EndPowerSave(); > > would be > > + if (theErr == HXR_OK) > + { > + m_bInPowerSave = TRUE; > + } > + else > + { > + EndPowerSave(); > + } > > 7. in hxplay.cpp > > + if (((HXFileSource*)pSource)->UsesNetworkAccess()) > > is dangerous. You may be casting a HXNetSource to HXFileSource. > > The overall logic looks ok to me. > > I assume this is un-tested code since we don't have any audio renderer > that supports IHXPowerSave interface and behavior yet, right? > > fxd > > On Fri, 2009-08-28 at 10:21 +0800, Zhao, Halley wrote: > > Send it again since there is no response yet. > > > > > > > > > > ____________________________________________________________________ > > __ From:[email protected] > > [mailto:[email protected]] On Behalf Of > > Zhao, Halley > > Sent: 2009年8月20日15:09 > > To: '[email protected]' > > Subject: [Helix-client-dev] Add power save mode support for offload > > music playback (Framework part only) > > > > > > > > > > Synopsis: > > > > Some audio dsp could playback(decode and render) long period of > > audio data without interaction with Helix core. > > > > we need reduce wakeup from Helix audio service to achieve power > > saving. > > > > This is achieved by: > > > > audio codec/render doesn't register audio stream to audio > > service idle. > > > > audio codec/render register as a IHXClockSource to drive the > > timeline > > > > > > > > Overview: > > > > Details see attached design-note.txt > > > > > > > > Files Added: > > > > No file added > > > > Files Modified: > > > > |-- client > > > > | |-- audiosvc > > > > | | |-- hxaudply.cpp > > > > | | |-- hxaudses.cpp > > > > | | `-- pub > > > > | | |-- hxaudply.h > > > > | | `-- hxaudses.h > > > > | `-- core > > > > | |-- hxbsrc.h > > > > | |-- hxcleng.cpp > > > > | |-- hxflsrc.cpp > > > > | |-- hxflsrc.h > > > > | |-- hxplay.cpp > > > > | `-- pub > > > > | |-- hxcleng.h > > > > | `-- hxplay.h > > > > |-- common > > > > | `-- include > > > > | |-- hxausvc.h > > > > | |-- hxcore.h > > > > | `-- hxevent.h > > > > |-- list.txt > > > > `-- player > > > > `-- hxclientkit > > > > |-- pub > > > > | `-- HXClientCFuncs.h > > > > `-- src > > > > |-- CHXClientEngine.cpp > > > > |-- CHXClientEngine.h > > > > `-- HXClientCFuncs.cpp > > > > > > > > Image Size and Heap Use impact (Client -Only): > > > > little > > > > Platforms and Profiles Affected: > > > > platform: linux-2.2-libc6-gcc32-i586 > > > > profile: helix-client-all-defines > > > > > > > > Distribution Libraries Affected: > > > > <hxmedpcleng.so> > > > > Distribution library impact and planned action: > > > > <None> > > > > Platforms and Profiles Build Verified: > > > > Set BIF branch -> realplay_gtk_atlas_restricted > > > > Set Target(s) -> player_all > > > > Set Profile -> helix-client-moblin > > > > System ID -> linux-2.2-libc6-gcc32-i586 > > > > Branch: > > > > HEAD > > > > Copyright assignment: <MUST be one of the following statements > > > > > 2. Intel has signed and delivered a Joint Copyright Assignment > > > > to RealNetworks, and received acknowledgment that the > > > > agreement was received. > > > > Files Attached: > > > > Design-note.txt, client-audiosvc.diff.txt, client-core.diff.txt, > > common-include.diff.txt, player-hxclientkit.diff.txt > > > > > > > > > > > > ZHAO, Halley (Aihua) > > > > Email: [email protected] > > > > Tel: +86(21)61166476 > > > > iNet: 8821-6476 > > > > SSG/OTC/Moblin 3W038 Pole: F4 > > > > > > > > > > > > _______________________________________________ > > Helix-client-dev mailing list > > [email protected] > > http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev > _______________________________________________ Helix-client-dev mailing list [email protected] http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev
(unnamed)
(message/rfc822, 67.6 KB) - not displayed
(unnamed)
(message/rfc822, 62.8 KB) - not displayed