Warning: Can't synchronize with repository "(default)" (No changeset 96d22ec3fa3ef6de3ea8dc0d7d398adc9aa071cf in the repository). Look in the Trac log for more information.

Ticket #123 (closed enhancement: fixed)

Opened 5 years ago

Last modified 4 years ago

please allow ringtones in any format supported by GStreamer

Reported by: luca@… Owned by: mickey
Priority: minor Milestone: milestone4
Component: framework/odeviced Version:
Keywords: audio Cc:

Description

This generated on FSO-Milestone2 on Debian, see (1)(2).

Basically, since the user should be able to choose any ringtone she/he wants, hardcoding the audio codec is not the best option. Since Gstreamer provides the 'playbin' plugin (3) for this purpose, uses it!

The attached patch against FSO-Milestone2 implements that and has been tested with sid/wav/mp3/ogg. I'll port the patch to the Git repository later.

(1) http://bugs.debian.org/495668
(2) http://lists.linuxtogo.org/pipermail/smartphones-standards/2008-August/000220.html
(3) http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-playbin.html

Attachments

frameworkd_Milestone2_gstreamer-playbin-ringtone_20080901-gismo.diff (1.3 KB) - added by luca@… 5 years ago.
[FSO-Milestone2] use Gstreamer 'playbin' plugin for ringtone
frameworkd_Milestone2_gstreamer-decodebin-ringtone_20080906-gismo.diff (1.6 KB) - added by luca@… 5 years ago.
[FSO-Milestone2] use GStreamer 'decodebin' plugin for ringtone
frameworkd_Milestone3_gstreamer-decodebin-ringtone_20081023-gismo.diff (2.0 KB) - added by luca@… 5 years ago.
[FSO-Milestone3] use GStreamer 'decodebin' plugin for ringtone
0001-framework-subsystems-odeviced-audio.py-add-Ogg-deco.patch (1.2 KB) - added by luca@… 5 years ago.
[FSO-Git] framework/subsystems/odeviced/audio.py: add Ogg decoder

Change History

Changed 5 years ago by luca@…

[FSO-Milestone2] use Gstreamer 'playbin' plugin for ringtone

comment:1 follow-up: ↓ 2 Changed 5 years ago by mickey

  • Status changed from new to closed
  • Resolution set to invalid

playbin introduced too much latency. Instead, I have started using a codecmap. Which codec should I add for .ogg?

comment:2 in reply to: ↑ 1 Changed 5 years ago by luca@…

  • Status changed from closed to reopened
  • Resolution invalid deleted
  • Summary changed from gstreamer 'playbin' plugin instead of a codec-specific one for the ringtone to please allow ringtones in any format supported by GStreamer

Reopening the bug with a better title.

Replying to mickey:

playbin introduced too much latency. Instead, I have started using a codecmap. Which codec should I add for .ogg?

As I explained at (1), GStreamer doesn't provide a "codec" plugin for all the formats, e.g. for .ogg you need 'oggdemux ! vorbisdec ! audioconvert'. FWIW, the situation is similar for .wav, which uses wavparse.

While digging for a solution I found the decodebin plugin (2), which Google told me it needs GStreamer Dynamic Pads (3).

The attached patch is against FSO-Milestone2 (but I don't know Jono Bacon's blog license): it works nicely with sid/ogg (I'm not sure if the latency is now acceptable), but it segfaults with mp3/wav.

(1) http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495668#10
(2) http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-decodebin.html
(3) http://www.jonobacon.org/?p=810

Changed 5 years ago by luca@…

[FSO-Milestone2] use GStreamer 'decodebin' plugin for ringtone

comment:3 Changed 5 years ago by mickey

  • Milestone set to milestone4

Will check, thanks.

comment:4 Changed 5 years ago by mickey

  • Owner changed from jluebbe to mickey
  • Status changed from reopened to new

comment:5 Changed 5 years ago by mickey

  • Keywords audio added
  • Component changed from framework/oeventd to framework/odeviced

comment:6 follow-up: ↓ 7 Changed 5 years ago by luca@…

Yesterday evening (Thu, 23 Oct 2008 CEST) the FSO site was down, so I continued the discussion on the Debian bug (1) and also on the smartphones-userland mailing list (2).

The most interesting point, at least IMHO, is the fact that for the first time and thanks to videorecordings I discovered by myself how much latency is involved in milestone3, on upstream FSO image and Debian and with Arkanoid.sid or Yue's nothing2.ogg (3) (after having applied the attached patch).

(1) http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495668#58
(2) http://lists.linuxtogo.org/pipermail/smartphones-userland/2008-October/000289.html
(3) http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495668#38

Changed 5 years ago by luca@…

[FSO-Milestone3] use GStreamer 'decodebin' plugin for ringtone

comment:7 in reply to: ↑ 6 Changed 5 years ago by luca@…

Replying to luca@…:

The most interesting point, at least IMHO, is the fact that for the first time and thanks to videorecordings I discovered by myself how much latency is involved in milestone3, on upstream FSO image and Debian and with Arkanoid.sid or Yue's nothing2.ogg (3) (after having applied the attached patch).

As Michael suggested (4), a partial solution would be to add "ogg = oggdemux ! vorbisdec ! audioconvert" to the decoder matrix (patch attached). With this solution, the latency for Ogg ringtones is still there, but reduced when compared to the decodebin approach (5).

Thus, the attached patch at least improves the current situation and fixes part of this ticket :-)

(4) http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495668#63
(5) http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=495668#68

Changed 5 years ago by luca@…

[FSO-Git] framework/subsystems/odeviced/audio.py: add Ogg decoder

comment:8 Changed 5 years ago by mickey

  • Status changed from new to closed
  • Resolution set to fixed

Bandaid implemented. We even check and remove not-existing pipelines. That should be good enough.

Note: See TracTickets for help on using tickets.