Hi Michael!

On Fri, 24 Oct 2008 19:25:13 +0200, Michael 'Mickey' Lauer wrote:
> thanks for looking into this issue. I'm glad someone actually does
> benchmarks, so we can reference your work when this issue comes up
> again.

I'd really like to solve not only the Debian bug, but the upstream one,
too [1], that's why I spent so much time on it ;-)

> If we are talking about "just" adding ogg support,

The short term fix is that yes, at least to allow frameworkd in Debian
main because of the Arkanoid.sid license not being DFSG-free.  In the
long term, however, I see the decoder matrix as suboptimal, because you
need to precisely specify each codec supported, while with decodebin (or
any other similar solution) the code is really general.

But if I read correctly your last sentence (I left it at the bottom of
this mail) we already agree on this :-)

> + ogg: oggdemux ! audioconvert
> (is that correct?)

My fault, I forgot that ogg needs also a "real" decoder [2].  The Git
patch against upstream frameworkd is attached.  Once applied, the
overall situation is now the following (video at [3], raw data at [4]):

  |--------------------+------+-------+------|
  |                    |  vib |  ring |  lat |
  |--------------------+------+-------+------|
  | a) on FSO          |      |       |      |
  |    1. idle         | 3.25 |  5.25 | 2.00 |
  |    2. active       | 2.75 |  5.50 | 2.75 |
  |--------------------+------+-------+------|
  | b) on Debian       |      |       |      |
  |  I- upstream       |      |       |      |
  |    3. idle         | 3.50 |  6.00 | 2.50 |
  |    4. active       | 3.00 |  6.00 | 3.00 |
  |  II- decodebin     |      |       |      |
  |    5. Arkanoid.sid | 2.50 |  6.50 | 4.00 |
  |    6. nothing2.ogg | 2.00 |  7.25 | 5.25 |
  |  III- oggdemux     |      |       |      |
  |    7. nothing2.ogg | 2.75 |  7.25 | 4.50 |
  |--------------------+------+-------+------|

As you can see, it seems there's an improvement WRT to decodebin, but if
someone would like to confirmed my analyses, please grab all the video
files [2] and then post the results.

As soon as my patch (or something similar but with the same effect) is
applied upstream, I'll backport it to the Debian package.

> Yes, that's just a quick bandaid which doesn't solve it in general, but
> I think it's the way to go until someone profiled gstreamer's decodebin
> and checked where it burns all these cycles.

Please tell me if there's something I can do here, like reporting the
bug to the GStreamer people or more tests.  The best option would be to
have a stand-alone test case, but I'm not sure this will be
representative since it's completely detached from the frameworkd
infrastructure (and thus the "payload" can be different).

Thx, bye,
Gismo / Luca

Footnotes: 
[1] http://trac.freesmartphone.org/ticket/123
[2] http://trac.freesmartphone.org/ticket/123#comment:2
[3] http://pkg-fso.alioth.debian.org/ringtone-decodebin/
[4] first round:  vib 3.0s, ring 7.0s, lat 4.0s
    second round: vib 2.5s, ring 7.5s, lat 5.0s

From 20a5c72009431fdc245eb940ea88e364cf9614a1 Mon Sep 17 00:00:00 2001
From: Luca Capello <[EMAIL PROTECTED]>
Date: Sun, 26 Oct 2008 11:29:24 +0100
Subject: [PATCH] framework/subsystems/odeviced/audio.py: add Ogg decoder

This in part solves ticket #123 [1] (which is vital for Debian [2])
or, better, in Michael's words: "that's just a quick bandaid which
doesn't solve it in general, but I think it's the way to go until
someone profiled gstreamer's decodebin and checked where it burns all
these cycles" [3].

Footnotes:
[1] http://trac.freesmartphone.org/ticket/123
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495668
[3] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495668#63
---
 framework/subsystems/odeviced/audio.py |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/framework/subsystems/odeviced/audio.py b/framework/subsystems/odeviced/audio.py
index 3e03931..321e6e2 100644
--- a/framework/subsystems/odeviced/audio.py
+++ b/framework/subsystems/odeviced/audio.py
@@ -103,6 +103,7 @@ class GStreamerPlayer( Player ):
         "mod": "modplug",
         "mp3": "mad",
         "wav": "wavparse",
+        "ogg": "oggdemux ! vorbisdec ! audioconvert"
         }
 
     def __init__( self, *args, **kwargs ):
-- 
1.5.6.5

Attachment: pgppTR0PpgvL1.pgp
Description: PGP signature

_______________________________________________
Smartphones-userland mailing list
Smartphones-userland@linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/smartphones-userland

Reply via email to