Bug 9243 - (int-160929) Telephony uses 100% CPU for video call (using Google Talk)
(int-160929)
: Telephony uses 100% CPU for video call (using Google Talk)
Status: RESOLVED FIXED
Product: Chat & Call & SMS
Telepathy
: 5.0/(3.2010.02-8)
: All Maemo
: Unspecified normal (vote)
: 5.0/(10.2010.19-1)
Assigned To: rtcomm@maemo.org
: telepathy-bugs
:
: use-time
:
:
  Show dependency tree
 
Reported: 2010-02-23 21:10 UTC by Richard Neill
Modified: 2010-03-25 14:56 UTC (History)
2 users (show)

See Also:


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description Richard Neill (reporter) 2010-02-23 21:10:46 UTC
When making a video-call (over wifi, using Google talk), the system is pegged
at 100% CPU. It does drop frames, crackles, and can't really cope.

top reports:  58.3% user; 38.5% sys; 0.0% idle

telepathy uses 45.7%
pulseaudio uses 22.8%
Xorg uses 11.4% 
omap2_mscpi uses 5.2%

It makes no difference whether I use the speakers, wired headphones, or
wireless headphones.

Is there any way to squeeze out 10% more performance?
 - drop either the video framerate or the picture size
 - get pulseaudio to behave better?
 - overclock above 600 MHz?

It's so nearly there, that we just need a little margin.

P.S. Thanks for the latest firmware update (3.2010). Compared to 2.2009.51,
which really was unusable due to excessive dropped frames and audio breakups,
it's now almost OK.
Comment 1 Andre Klapper maemo.org 2010-02-24 16:03:56 UTC
Hi Richard, thanks for reporting this!

Can you please provide exact steps (click by click) to reproduce this?
Comment 2 Richard Neill (reporter) 2010-02-24 20:19:57 UTC
To reproduce:

1. Start with a new phone, or flash it to 2009.51 firmware, or 3.2010. 

2. Get the phone onto local wifi network. Install SSH onto the phone, so as to
log in and run top.

3. Obtain 2 googletalk accounts (let's call them G1 and G2).

4. Configure the telephony application for account G1.

5. Set up a laptop running the latest version of Ubuntu (Lucid), add a 3 Mpixel
USB webcam, and install the Voip application "Empathy". (this is pretty much
the default). Configure this with account G2.

6. From the laptop, call the phone: Right-click, New Video Call. 

7. On the phone, answer, and then click the "camera" icon.

8. You will be in the middle of a video call. Call quality stutters, and video
frames drop. CPU usage is 100%.




Note 1: if I don't activate the camera, it runs a normal audio-call, using
about 85% of CPU.

Note 2: It doesn't make any obvious difference whether I use the phone's
speaker, wired headset, or bluetooth headset (as long as the phone and laptop
are in different rooms, so that there is no direct audio feedback).

Note 3: If I use the N900 to call the laptop, I am not given the option to use
the camera (the camera icon never appears on the phone). Probably some
difference in initiation - would be nice if this also worked.

Note 4: I'm on fast broadband ADSL (16 Mbit/s download, 2.5 Mbit/s upload)
Both the laptop and phone are on the same local lan anyway. I'm not observing
network congestion.

Thanks for your help; let me know if there is any more info you need.
Comment 3 Richard Neill (reporter) 2010-02-26 21:21:39 UTC
Just wondering - there is a lot of CPU usage here from pulseaudio.

This seems to be expected (because so many other apps have PA using heaps of
CPU), but I wonder if there's any way to cut it down. For example, would it
help to disable to volume-limiting, echo-cancellation, resampling etc that PA
does? 

If so, how can I debug which plugin is responsible? How do we disable the
feature without completely breaking things. Personally, I'd be quite willing to
forgo speaker-protection on the device, if I can have 10% of my CPU back. Or
can I make everything run at a native 48kHz? (If that means I can't ever play
back media files, that's OK).
Comment 4 Olivier CrĂȘte 2010-03-17 19:52:14 UTC
Video calls are not officially supported in that image. All has been improved
on the trunk and the next release should make you so happy!