Friday, November 26, 2010

incremental development

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

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???

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.

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.

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

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

Atom + Nvidea Ion Myth

any doubt on libagl and libhgl see directfb documents
directfb uses ioctls to distinuish hw or sw rendering