RE: [Re-Send] Add power save mode support for offload music playback (Framework part only)
Sheldon fu <[email protected]> Thu, 17 Sep 2009 09:56:31 -0400
| Newsgroups | gmane.comp.multimedia.helix.devel |
|---|---|
| Message-ID | <1253195791.6579.73.camel@mini-linux> |
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
>