>Well, I mean the two streams should has the same priority, same conflict 
>rules. From this view >point, they can be taken as ONE stream except the audio 
>path. In your >framework, such case >can be handled in an unified way, no 
>special work.  What I concern is, take them as ONE >stream is benefit for 
>simplify the logic.
The design idea is to treat capture and playback differently, so that capture 
stream wouldn't affect playback stream. They are in different queues inside AM. 
If a group is introduced rather than treat them in an unified way, the logic 
may not be simplified.

>If AM do work like this, there will be a side effects. For AM, the music 
>stream is first >unregister, then register again, a variation will be 
>introduced into AM policy.
I don't see any side effect for this. The LPEUnregister is done by APP or MMF 
after DisableLPEDirectRender signal is received. After that, a new PA stream is 
created. Please see AM API on website.

Best Regards, Zheng, Huan(ZBT)
OTC/SSD/SSG
Intel Asia-Pacific Research & Developement Ltd
Tel: 021-6116 6435
Inet: 8821 6435
Cub: 3W035
________________________________________
From: tieg [mailto:[email protected]] 
Sent: 2010年1月12日 10:17
To: Zheng, Huan
Cc: [email protected]
Subject: RE: Audio Streams

Hi,  Zheng.Hua:

Thanks very much for your feedback. Please see my comments.

> I don't understand the group concept you mentioned.

Well, I mean the two streams should has the same priority, same conflict rules. 
From this view point, they can be taken as ONE stream except the audio path. In 
your framework, such case can be handled in an unified way, no special work.  
What I concern is, take them as ONE stream is benefit for simplify the logic.

> Decode-and-return LPE stream is not supposed to LPERegister itself, and 
> before decode-and-return LPE stream actually rendered into PA, it is not a 
> real audio stream. For this scenario, there's only one PA stream which 
> actually gets data from LPE decode-n-return.

Let me clarify this case more clearly. 
The typical scenario is while you are listening music with speaker, then BT is 
paired, and the music should be routed to BT.
When listening with speaker, Fire-and-forget mode is used.  We need to use 
LPERegister to register a LPE stream to Audio Manager. And such LPE stream is 
correspond to music stream. We can apply policy to such stream.
When BT is paired, we need to switch form fire-n-forget to decode-n-return.  I 
guess for this case, the former LPE stream should be unregistered, and a PA 
stream will be created for music stream. Am I right?   If AM do work like this, 
there will be a side effects. For AM, the music stream is first unregister, 
then register again, a variation will be introduced into AM policy.

BR
Tie


On Tue, 2010-01-12 at 09:17 +0800, Zheng, Huan wrote: 

>For VOIP application, two streams will be created, one is to remote
>side, the other is from remote side. For PA, these two streams are
>separated; for VOIP APP, they should be one group. Does moblin AM has
>any special consideration on grouped streams?
For this case, one is capture stream(to remote side), the other is playback 
stream(from remote side). Playback/capture streams are handled in different 
ways in AM. I don't understand the group concept you mentioned.

>About 3g stream, you assume that voice data will bypass PA, the only
>thing we need to do is register/unregister 3g stream and do related
>stream control. 
It's not an assumption, this code is written inside MRST module which is 
specific for one platform where 3g actually bypass PA. If in your platform, 3g 
go through PA, it could be handled in different ways in your platform related 
module.
>My problem is if voice data need to be render at user space, for
>example, noise/echo cancellation. And we need to add a special real-time
>like module to handle voice data. How to manage such kind streams?
If your 3g implementation is sufficient, and provides API for post-processing, 
you could just bypass PA, and do your own work separately, just 
register/unregister your 3g stream when needed. Or, your 3g stream go through 
PA, you may check whether PA's post processing capability is enough for you(I'm 
not familiar with this part).

>The problem is, decode-and-return mode LPE stream is consisted of two types of 
>stream:
>decode-and-return stream and PA stream. How to handle such special
>stream?
Decode-and-return LPE stream is not supposed to LPERegister itself, and before 
decode-and-return LPE stream actually rendered into PA, it is not a real audio 
stream. For this scenario, there's only one PA stream which actually gets data 
from LPE decode-n-return.

Best Regards, Zheng, Huan(ZBT)
OTC/SSD/SSG
Intel Asia-Pacific Research & Developement Ltd
Tel: 021-6116 6435
Inet: 8821 6435
Cub: 3W035

-----Original Message-----
From: tieg [mailto:[email protected]] 
Sent: 2010年1月11日 18:45
To: Zheng, Huan
Cc: [email protected]
Subject: Audio Streams

Hi, Zheng Huan:

In moblin audio manager, all audio streams are managed, no matter the
streams pass or bypass pulseaudio. 

According your design document and audio manager source code.  I can
find three kinds of streams: PA stream, LPE stream, 3g stream.

Here I would like to do more discussing on stream issues:

1. VOIP stream

For VOIP application, two streams will be created, one is to remote
side, the other is from remote side. For PA, these two streams are
separated; for VOIP APP, they should be one group. Does moblin AM has
any special consideration on grouped streams? 

2. Voice Call Stream / 3g stream

About 3g stream, you assume that voice data will bypass PA, the only
thing we need to do is register/unregister 3g stream and do related
stream control. 
My problem is if voice data need to be render at user space, for
example, noise/echo cancellation. And we need to add a special real-time
like module to handle voice data. How to manage such kind streams?

3. LPE stream -- decode-and-return mode & fire-and-forget mode

Switch from fire-and-forget to decode-and-return, a new pa stream need
to be created to play data coming from LPE. The problem is,
decode-and-return mode LPE stream is consisted of two types of stream:
decode-and-return stream and PA stream. How to handle such special
stream?

Thanks very much for your time on this email!

BR
tieg

_______________________________________________
Moblin dev Mailing List
[email protected]

To manage or unsubscribe from this mailing list visit:
http://lists.moblin.org/listinfo/dev or your user account on http://moblin.org 
once logged in.

For more information on the Moblin Developer Mailing lists visit:
http://moblin.org/community/mailing-lists

Reply via email to