1.2 stages
a. functional block
b. bit block
functional block involves
prototype,code modifications,dependency changes,additions,deletions together
--->mostly compilable and runnable
bit block
just prototype ...etc
--->just compilable
Friday, November 26, 2010
Wednesday, November 24, 2010
android audio flinger
1.http://kzjblog.appspot.com/2010/03/6/Android-Audio-System-%281%29.html
2.copybit is a hw 2d hal,libhgl is hw 3d hal???
2.copybit is a hw 2d hal,libhgl is hw 3d hal???
Tuesday, November 23, 2010
android pmem and ashmem
1.pmem -- allocation code in kernel but used at usermode
ensures that memory is returned as
PAGE_SIZE,offset,len ... PAGE_SIZE,0,len, PAGE_SIZE,0,len
2.ashmem
named memory block that is shared between processes and kernel is allowed to free. ker is not allowed to free standard shared memory.
http://cs736-android.pbworks.com/w/page/5834465/ASHMEM
surfaceflinger has a total of 8mb heap,it shares this heap with all processes for their surfaces.
when a process requests space,it allocates from this heap,but returns a pointer to the allocated chunk.once process is out of focus pointer is nulled
This is not for surface data ...but for surface control.control contains pointer to 2 data buffers
Each layer has a corresponding surface
layerbuffer doesnt have one
each surface has 2 buffers
these 2 can be from ashmem or pmem
a canvas can be over layer
a canvas can be associated with multile bitmaps
it seems that surfaceflinger allocater uses pmem and/or normal-memory.some activities use pmem heap and some use normal heap.surface flinger passes this buffer down in two different ioctls to fb driver.
ensures that memory is returned as
PAGE_SIZE,offset,len ... PAGE_SIZE,0,len, PAGE_SIZE,0,len
2.ashmem
named memory block that is shared between processes and kernel is allowed to free. ker is not allowed to free standard shared memory.
http://cs736-android.pbworks.com/w/page/5834465/ASHMEM
surfaceflinger has a total of 8mb heap,it shares this heap with all processes for their surfaces.
when a process requests space,it allocates from this heap,but returns a pointer to the allocated chunk.once process is out of focus pointer is nulled
This is not for surface data ...but for surface control.control contains pointer to 2 data buffers
Each layer has a corresponding surface
layerbuffer doesnt have one
each surface has 2 buffers
these 2 can be from ashmem or pmem
a canvas can be over layer
a canvas can be associated with multile bitmaps
it seems that surfaceflinger allocater uses pmem and/or normal-memory.some activities use pmem heap and some use normal heap.surface flinger passes this buffer down in two different ioctls to fb driver.
pattern matching algos and artificial brain
1.efficient pattern matching algos will lead to artificial intel
2.pattern matching leads to precise quantization info and making of tokens
3.so obtained tokens can be compared with token database
4.from a set of tokens, it can create context database dynamically
5.transactions involves tokens,contexts and outputs
6.a processing loop can generate permutation of transactions
7.outputs can be labeled desirable,deffered,expel
9.based on the above states,transactions can be chained
An implementation
a game involving transaction doers and decision makers.Within a set of token database and set of
rules for desired,deferred,expel states.
2.pattern matching leads to precise quantization info and making of tokens
3.so obtained tokens can be compared with token database
4.from a set of tokens, it can create context database dynamically
5.transactions involves tokens,contexts and outputs
6.a processing loop can generate permutation of transactions
7.outputs can be labeled desirable,deffered,expel
9.based on the above states,transactions can be chained
An implementation
a game involving transaction doers and decision makers.Within a set of token database and set of
rules for desired,deferred,expel states.
android top down
1.activity ---- in process 1
2.windowserver ---- in process 2
4.mediaserver --- in process 4
5.surfaceflinger -- in process 5
6.audioflinger ---in process 6
7.rild -- in process 7
2.windowserver ---- in process 2
4.mediaserver --- in process 4
5.surfaceflinger -- in process 5
6.audioflinger ---in process 6
7.rild -- in process 7
Monday, November 22, 2010
android pvplayer mp4 3gp stack
/system/bin/xxx.so
AndroidAudioOutput::,AndroidSurfaceOutput::
1.Java
======
java ------ MediaPlayer.java
jni ------ libmedia_jni.so(wrapper)
native ------ libmedia.so
native ------ libui.so
native ------ libhardware.so
2.Player engine
===============
libpvplayer.so,libopencoreplayer.so
3.mediaserver
native -- libmediaplayerservice.so
/system/bin/(frameworks/base/media/mediaserver/)
4.framework
stagefright,opencore,gstreamer
3.Parser Node
==============
libpv.so ---- parse source
Video
#################
4.Decoder Node
===============
directory ---- external/opencore/codecs_v2/omx/omx_mycodec
test app ---- external/opencore/codecs_v2/omx/omx_testapp
omx_nnn.so
omx_mmm.cfg
ti decoder -- libOMX_Core.so
info hw codec --- codecsv2/omx/omx_common/src/pv_omxmastercore.cpp
5.MIO node
===========
AndroidVideoOutput::
OSCL_xxx
libopencorehw.so
6.Surfaceflinger
================
libsurfaceflinger.so
7.video client
==============
libagl.so
Audio
###############
8.Decoder Node
===============
libvorbisdec.so
9.MIO node
===========
AndroidAudioOutput::
OSCL_xxx
10.Audioflinger
================
libaudioflinger.so
11.audio client
==============
libpv.so/libaudio.so implements hardware interface AudioHardwareInterface
AudioHardwareInterface base class is in Audioflinger
"AUDIO_SERVICE"
Accelerated Video Codec
Accelerated Video Hardware
Combined Acceleration codec+video
#################################
coming
opencore
node-if node-if node-if
omx-if mio-if
AndroidAudioOutput::,AndroidSurfaceOutput::
1.Java
======
java ------ MediaPlayer.java
jni ------ libmedia_jni.so(wrapper)
native ------ libmedia.so
native ------ libui.so
native ------ libhardware.so
2.Player engine
===============
libpvplayer.so,libopencoreplayer.so
3.mediaserver
native -- libmediaplayerservice.so
/system/bin/(frameworks/base/media/mediaserver/)
4.framework
stagefright,opencore,gstreamer
3.Parser Node
==============
libpv.so ---- parse source
Video
#################
4.Decoder Node
===============
directory ---- external/opencore/codecs_v2/omx/omx_mycodec
test app ---- external/opencore/codecs_v2/omx/omx_testapp
omx_nnn.so
omx_mmm.cfg
ti decoder -- libOMX_Core.so
info hw codec --- codecsv2/omx/omx_common/src/pv_omxmastercore.cpp
5.MIO node
===========
AndroidVideoOutput::
OSCL_xxx
libopencorehw.so
6.Surfaceflinger
================
libsurfaceflinger.so
7.video client
==============
libagl.so
Audio
###############
8.Decoder Node
===============
libvorbisdec.so
9.MIO node
===========
AndroidAudioOutput::
OSCL_xxx
10.Audioflinger
================
libaudioflinger.so
11.audio client
==============
libpv.so/libaudio.so implements hardware interface AudioHardwareInterface
AudioHardwareInterface base class is in Audioflinger
"AUDIO_SERVICE"
Accelerated Video Codec
Accelerated Video Hardware
Combined Acceleration codec+video
#################################
coming
opencore
node-if node-if node-if
omx-if mio-if
Atom + Nvidea Ion Myth
any doubt on libagl and libhgl see directfb documents
directfb uses ioctls to distinuish hw or sw rendering
directfb uses ioctls to distinuish hw or sw rendering
Subscribe to:
Posts (Atom)