I'm attempting to stream video data from the Panda board over UDP.  I'm on 
an ICS build which is working well with HW acceleration enabled.  I'm 
streaming using a foreground service, and then checking when each 1328-byte 
UDP packet (1 ethernet frame) leaves the Pandaboard using tcp-dump. The 
ethernet frame contains 7x 188 byte transport stream packets: It is highly 
desirable that the source data rate is maintained. 

Now when I'm on Android's homescreen, I'm seeing on average 2 UDP packets 
every millisecond, and everything downstream copes perfectly (see first 
graph). However, as soon as I have any activity in the foreground (like 
settings, the app-draw, or calculator), I'm seeing bursty data with gaps of 
up to a second (see second graph).  Downstream, I'm getting packet-loss due 
to buffer overflows.

So, why would this happen and how can I fix it?

A colleague has suggested that it may be due to scheduling delays (e.g. 
kernel locks due to HW-acceleration?) introducing the burstiness?

What else could be causing it? How can I control it?

<https://lh4.googleusercontent.com/-BAZmE1ybb4k/T970WgOzPnI/AAAAAAAAAAc/mLU08g0ayj4/s1600/dump_steady2.png><https://lh5.googleusercontent.com/-DPCP38nZLpU/T970akOkpqI/AAAAAAAAAAk/K6THnGsYwr4/s1600/dump_bursty.png>

-- 
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

Reply via email to