add Phonon support to qtopia4
cover add Phonon support to qtopia4
This patch series adds Phonon configuration to qtopia4 and its required packages.
Phonon is the multimedia API from KDE 4 which has been integrated into Qt 4.4. For playback under Linux the GStreamer multimedia framework is used.
GStreamer plugins can be selected or disabled from Kconfig. This config support is available for all dependency-less plugins and for plugins with external dependencies that I have tested. Some plugins are disabled, because they caused configure/compile problems for me. The rest is automatically handled by configure for now.
I've successful tested audio and video playback on i386 (OSS) and avr32 (at32_abdac OSS driver).
However with avr32 there were some problems. I got the error "Could not get/set settings from/to resource" which has been caused by the oss plugin and can be traced back to gst-plugins-good-0.10.11/sys/oss/gstosssink.c:
I had to remove the following line calling an ioctl()
SET_PARAM (oss, SNDCTL_DSP_SETFRAGMENT, tmp, "SETFRAGMENT");
to be able to hear sound and play videos.
I use Atmel's Buildroot for avr32 development. There the gstreamer plugins weren't installed into $(TARGET_DIR)/usr/lib/gstreamer-0.10/. Using the uClibc Buildroot with i386 it worked. I don't know whether the problem is caused by the old Atmel Buildroot or the other architecture and I haven't yet looked into it.
In gst-plugins-base/configure there are several places where /usr/include/gstreamer-0.10/gst/gstconfig.h is grepped for configuration instead of $STAGING_DIR/usr/include/gstreamer-0.10/gst/gstconfig.h. The path is evaluated in the configure script by
GST_CONFIGPATH=$PKG_CONFIG --variable=includedir gstreamer-0.10"/gst/gstconfig.h"
So what should be done here to get the correct path?
For anyone interested in testing it, here are some simple programs:
1) Play the sine tone, for more info see the GStreamer FAQ/Doc
$ gst-launch audiotestsrc ! audioconvert ! audioresample ! osssink
2) Sound with Phonon, usage: ./phonon_sound -qws soundfile.{ogg,mp3,wav}
#include <QtGui>
#include <phonon>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Phonon::MediaObject *music =
Phonon::createPlayer(Phonon::MusicCategory,
Phonon::MediaSource(argv[1]));
music->play();
return app.exec();
}3) Video with Phonon, usage: ./phonon_video -qws videofile.{ogg,avi}
#include <QtGui>
#include <phonon>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *win = new QWidget;
win->setFixedSize(320, 240);
Phonon::VideoPlayer *player =
new Phonon::VideoPlayer(Phonon::VideoCategory, win);
player->play(Phonon::MediaSource(argv[1]));
win->show();
return app.exec();
}2+3) qmake project file
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
QT += phonon
# Input
SOURCES += main.cpp
Markus Heidelberg (7):
package: add liboil package package/multimedia: add libtheora package package/multimedia: add gstreamer package package/multimedia: add gst-plugins-base package package/multimedia: add gst-plugins-good package package/multimedia: add gst-plugins-ugly package
qtopia4: add Phonon support
package/Config.in | 1 + package/liboil/Config.in | 6 + package/liboil/liboil.mk | 34 +++ package/multimedia/Config.in | 5 + package/multimedia/gst-plugins-base/Config.in | 81 +++++++ ...ins-base-0.10.21-build_fix_missing_gtkdoc.patch | 31 +++ .../gst-plugins-base/gst-plugins-base.mk | 137 +++++++++++ package/multimedia/gst-plugins-good/Config.in | 122 ++++++++++ .../gst-plugins-good/gst-plugins-good.mk | 242 ++++++++++++++++++++ package/multimedia/gst-plugins-ugly/Config.in | 50 ++++ .../gst-plugins-ugly/gst-plugins-ugly.mk | 81 +++++++ package/multimedia/gstreamer/Config.in | 9 + ...streamer-0.10.21-build_fix_missing_gtkdoc.patch | 43 ++++ package/multimedia/gstreamer/gstreamer.mk | 35 +++ package/multimedia/libtheora/Config.in | 10 + package/multimedia/libtheora/libtheora.mk | 21 ++ package/qtopia4/Config.in | 9 + package/qtopia4/qtopia4.mk | 16 ++ 18 files changed, 933 insertions(+), 0 deletions(-) create mode 100644 package/liboil/Config.in create mode 100644 package/liboil/liboil.mk create mode 100644 package/multimedia/gst-plugins-base/Config.in create mode 100644 package/multimedia/gst-plugins-base/gst-plugins-base-0.10.21-build_fix_missing_gtkdoc.patch create mode 100644 package/multimedia/gst-plugins-base/gst-plugins-base.mk create mode 100644 package/multimedia/gst-plugins-good/Config.in create mode 100644 package/multimedia/gst-plugins-good/gst-plugins-good.mk create mode 100644 package/multimedia/gst-plugins-ugly/Config.in create mode 100644 package/multimedia/gst-plugins-ugly/gst-plugins-ugly.mk create mode 100644 package/multimedia/gstreamer/Config.in create mode 100644 package/multimedia/gstreamer/gstreamer-0.10.21-build_fix_missing_gtkdoc.patch create mode 100644 package/multimedia/gstreamer/gstreamer.mk create mode 100644 package/multimedia/libtheora/Config.in create mode 100644 package/multimedia/libtheora/libtheora.mk
PATCH 1/7 package: add liboil package
Liboil is a library of simple functions that are optimized for various CPUs. It is required by various GStreamer plugins.
--- package/Config.in | 1 + package/liboil/Config.in | 6 ++++++ package/liboil/liboil.mk | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 0 deletions(-) create mode 100644 package/liboil/Config.in create mode 100644 package/liboil/liboil.mk
package/Config.in +1 -0
@@ -78,6 +78,7 @@ source "package/libgcrypt/Config.in" source "package/libgpg-error/Config.in" source "package/libiconv/Config.in" source "package/liblockfile/Config.in" +source "package/liboil/Config.in" source "package/libsysfs/Config.in" source "package/lockfile-progs/Config.in" source "package/logrotate/Config.in"
package/liboil/Config.in new file +6 -0
@@ -0,0 +1,6 @@ +config BR2_PACKAGE_LIBOIL + bool "liboil" + help + Library of simple functions that are optimized for various CPUs. + + http://liboil.freedesktop.org/
package/liboil/liboil.mk new file +34 -0
@@ -0,0 +1,34 @@ +############################################################# +# +# liboil +# +############################################################# +LIBOIL_VERSION = 0.3.15 +LIBOIL_SOURCE = liboil-$(LIBOIL_VERSION).tar.gz +LIBOIL_SITE = http://liboil.freedesktop.org/download +LIBOIL_AUTORECONF = NO +LIBOIL_INSTALL_STAGING = YES +LIBOIL_INSTALL_TARGET = YES + +# Checking if unaligned memory access works correctly cannot be done when cross +# compiling. For the following architectures there is no information available +# in the configure script. +ifeq ($(BR2_avr32),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=no +endif +ifeq ($(BR2_cris),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=yes +endif +ifeq ($(BR2_nios2),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=no +endif +ifeq ($(BR2_s390),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=yes +endif +ifeq ($(BR2_x86_64),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=yes +endif + +LIBOIL_DEPENDENCIES = uclibc libglib2 + +$(eval $(call AUTOTARGETS,package,liboil))
Signature · 1 line
1.6.0.4.762.g0567f
PATCH v2 1/7 package: add liboil package
Liboil is a library of simple functions that are optimized for various CPUs. It is required by various GStreamer plugins.
---
"select BR2_PACKAGE_LIBGLIB2" was missing in the previous patch.
package/Config.in | 1 + package/liboil/Config.in | 7 +++++++ package/liboil/liboil.mk | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 0 deletions(-) create mode 100644 package/liboil/Config.in create mode 100644 package/liboil/liboil.mk
package/Config.in +1 -0
@@ -78,6 +78,7 @@ source "package/libgcrypt/Config.in" source "package/libgpg-error/Config.in" source "package/libiconv/Config.in" source "package/liblockfile/Config.in" +source "package/liboil/Config.in" source "package/libsysfs/Config.in" source "package/lockfile-progs/Config.in" source "package/logrotate/Config.in"
package/liboil/Config.in new file +7 -0
@@ -0,0 +1,7 @@ +config BR2_PACKAGE_LIBOIL + bool "liboil" + select BR2_PACKAGE_LIBGLIB2 + help + Library of simple functions that are optimized for various CPUs. + + http://liboil.freedesktop.org/
package/liboil/liboil.mk new file +34 -0
@@ -0,0 +1,34 @@ +############################################################# +# +# liboil +# +############################################################# +LIBOIL_VERSION = 0.3.15 +LIBOIL_SOURCE = liboil-$(LIBOIL_VERSION).tar.gz +LIBOIL_SITE = http://liboil.freedesktop.org/download +LIBOIL_AUTORECONF = NO +LIBOIL_INSTALL_STAGING = YES +LIBOIL_INSTALL_TARGET = YES + +# Checking if unaligned memory access works correctly cannot be done when cross +# compiling. For the following architectures there is no information available +# in the configure script. +ifeq ($(BR2_avr32),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=no +endif +ifeq ($(BR2_cris),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=yes +endif +ifeq ($(BR2_nios2),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=no +endif +ifeq ($(BR2_s390),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=yes +endif +ifeq ($(BR2_x86_64),y) +LIBOIL_CONF_ENV = as_cv_unaligned_access=yes +endif + +LIBOIL_DEPENDENCIES = uclibc libglib2 + +$(eval $(call AUTOTARGETS,package,liboil))
Signature · 1 line
1.6.0.4.774.g05773
PATCH v2 1/7 package: add liboil package
Le Tue, 25 Nov 2008 08:27:15 +0100,
Markus Heidelberg <[email protected]> a ?crit :
Quoted 1 line
"select
BR2_PACKAGE_LIBGLIB2" was missing in the previous patch.
It seems that Glib2 is only needed to compile the example programs of liboil. Maybe we could disable building of the examples and get rid of the Glib2 dependency ?
Sincerly,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH v2 1/7 package: add liboil package
Quoted 9 lines · On Tue, 2 Dec 2008 23:51:49 +0100 Thomas Petazzoni…
Le Tue, 25 Nov 2008 08:27:15 +0100,
Markus Heidelberg <[email protected]> a ?crit :Quoted 1 line
"select
BR2_PACKAGE_LIBGLIB2" was missing in the previous patch.It seems that Glib2 is only needed to compile the example programs of liboil. Maybe we could disable building of the examples and get rid of the Glib2 dependency ?
That should not be impossible, often just a switch to ./configure.
Signature · 2 lines
Best regards, Hans-Christian Egtvedt
Thomas Petazzoni
AppliedPATCH 1/7 package: add liboil package
In reply to Markus HeidelbergLe Wed, 19 Nov 2008 02:49:29 +0100,
Markus Heidelberg <[email protected]> a ?crit :
Quoted 4 lines
Liboil is a library of simple functions that are optimized for various CPUs. It is required by various GStreamer plugins.
Signed-off-by Markus Heidelberg <[email protected]>
Thanks, applied as r24238, with a few modifications.
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 2/7 package/multimedia: add libtheora package
In reply to Markus HeidelbergLibtheora is a library for the free and open video compression format "Theora" from the Xiph.org Foundation.
--- package/multimedia/Config.in | 1 + package/multimedia/libtheora/Config.in | 10 ++++++++++ package/multimedia/libtheora/libtheora.mk | 21 +++++++++++++++++++++ 3 files changed, 32 insertions(+), 0 deletions(-) create mode 100644 package/multimedia/libtheora/Config.in create mode 100644 package/multimedia/libtheora/libtheora.mk
package/multimedia/Config.in +1 -0
@@ -7,6 +7,7 @@ source "package/multimedia/libid3tag/Config.in" source "package/multimedia/libmad/Config.in" source "package/multimedia/libogg/Config.in" source "package/multimedia/libsndfile/Config.in" +source "package/multimedia/libtheora/Config.in" source "package/multimedia/libvorbis/Config.in" source "package/multimedia/madplay/Config.in" source "package/multimedia/mpg123/Config.in"
package/multimedia/libtheora/Config.in new file +10 -0
@@ -0,0 +1,10 @@ +config BR2_PACKAGE_LIBTHEORA + bool "libtheora" + select BR2_PACKAGE_LIBOGG + select BR2_PACKAGE_LIBVORBIS + select BR2_PACKAGE_PKGCONFIG + help + A library for the free and open video compression format "Theora" + from the Xiph.org Foundation. + + http://www.theora.org/
package/multimedia/libtheora/libtheora.mk new file +21 -0
@@ -0,0 +1,21 @@ +############################################################# +# +# libtheora +# +############################################################# +LIBTHEORA_VERSION = 1.0 +LIBTHEORA_SOURCE = libtheora-$(LIBTHEORA_VERSION).tar.bz2 +LIBTHEORA_SITE = http://downloads.xiph.org/releases/theora +LIBTHEORA_AUTORECONF = NO +LIBTHEORA_INSTALL_STAGING = YES +LIBTHEORA_INSTALL_TARGET = YES + +LIBTHEORA_CONF_OPT = \ + --disable-oggtest \ + --disable-vorbistest \ + --disable-sdltest \ + --disable-examples + +LIBTHEORA_DEPENDENCIES = uclibc libogg libvorbis pkgconfig + +$(eval $(call AUTOTARGETS,package/multimedia,libtheora))
Signature · 1 line
1.6.0.4.762.g0567f
PATCH 3/7 package/multimedia: add gstreamer package
In reply to Markus HeidelbergGStreamer is an open source multimedia framework.
--- package/multimedia/Config.in | 1 + package/multimedia/gstreamer/Config.in | 9 ++++ ...streamer-0.10.21-build_fix_missing_gtkdoc.patch | 43 ++++++++++++++++++++ package/multimedia/gstreamer/gstreamer.mk | 35 ++++++++++++++++ 4 files changed, 88 insertions(+), 0 deletions(-) create mode 100644 package/multimedia/gstreamer/Config.in create mode 100644 package/multimedia/gstreamer/gstreamer-0.10.21-build_fix_missing_gtkdoc.patch create mode 100644 package/multimedia/gstreamer/gstreamer.mk
package/multimedia/Config.in +1 -0
@@ -3,6 +3,7 @@ source "package/multimedia/alsa-lib/Config.in" source "package/multimedia/alsa-utils/Config.in" source "package/multimedia/asterisk/Config.in" source "package/multimedia/aumix/Config.in" +source "package/multimedia/gstreamer/Config.in" source "package/multimedia/libid3tag/Config.in" source "package/multimedia/libmad/Config.in" source "package/multimedia/libogg/Config.in"
package/multimedia/gstreamer/Config.in new file +9 -0
@@ -0,0 +1,9 @@ +config BR2_PACKAGE_GSTREAMER + bool "gstreamer" + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_LIBXML2 + select BR2_PACKAGE_PKGCONFIG + help + GStreamer is an open source multimedia framework. + + http://gstreamer.freedesktop.org/
package/multimedia/gstreamer/gstreamer-0.10.21-build_fix_missing_gtkdoc.patch new file +43 -0
43 lines not on this page · raw message
package/multimedia/gstreamer/gstreamer.mk new file +35 -0
@@ -0,0 +1,35 @@ +############################################################# +# +# gstreamer +# +############################################################# +GSTREAMER_VERSION = 0.10.21 +GSTREAMER_SOURCE = gstreamer-$(GSTREAMER_VERSION).tar.bz2 +GSTREAMER_SITE = http://gstreamer.freedesktop.org/src/gstreamer +GSTREAMER_AUTORECONF = NO +GSTREAMER_INSTALL_STAGING = YES +GSTREAMER_INSTALL_TARGET = YES + +# Checking if unaligned memory access works correctly cannot be done when cross +# compiling. For the following architectures there is no information available +# in the configure script. +ifeq ($(BR2_avr32),y) +GSTREAMER_CONF_ENV = as_cv_unaligned_access=no +endif +ifeq ($(BR2_nios2),y) +GSTREAMER_CONF_ENV = as_cv_unaligned_access=no +endif +ifeq ($(BR2_s390),y) +GSTREAMER_CONF_ENV = as_cv_unaligned_access=yes +endif + +GSTREAMER_CONF_OPT = \ + $(DISABLE_NLS) \ + $(DISABLE_LARGEFILE) \ + --disable-examples \ + --disable-tests \ + --disable-failing-tests + +GSTREAMER_DEPENDENCIES = uclibc libglib2 libxml2 pkgconfig + +$(eval $(call AUTOTARGETS,package/multimedia,gstreamer))
Signature · 1 line
1.6.0.4.762.g0567f
PATCH 4/7 package/multimedia: add gst-plugins-base package
In reply to Markus HeidelbergA basic set of well-supported plug-ins for GStreamer.
--- package/multimedia/Config.in | 1 + package/multimedia/gst-plugins-base/Config.in | 81 ++++++++++++ ...ins-base-0.10.21-build_fix_missing_gtkdoc.patch | 31 +++++ .../gst-plugins-base/gst-plugins-base.mk | 137 ++++++++++++++++++++ 4 files changed, 250 insertions(+), 0 deletions(-) create mode 100644 package/multimedia/gst-plugins-base/Config.in create mode 100644 package/multimedia/gst-plugins-base/gst-plugins-base-0.10.21-build_fix_missing_gtkdoc.patch create mode 100644 package/multimedia/gst-plugins-base/gst-plugins-base.mk
package/multimedia/Config.in +1 -0
@@ -4,6 +4,7 @@ source "package/multimedia/alsa-utils/Config.in" source "package/multimedia/asterisk/Config.in" source "package/multimedia/aumix/Config.in" source "package/multimedia/gstreamer/Config.in" +source "package/multimedia/gst-plugins-base/Config.in" source "package/multimedia/libid3tag/Config.in" source "package/multimedia/libmad/Config.in" source "package/multimedia/libogg/Config.in"
package/multimedia/gst-plugins-base/Config.in new file +81 -0
81 lines not on this page · raw message
package/multimedia/gst-plugins-base/gst-plugins-base-0.10.21-build_fix_missing_gtkdoc.patch new file +31 -0
@@ -0,0 +1,31 @@ +Submitted By: Ken Moffat <ken@linuxfromscratch dot org> +Date: 2008-10-15 +Initial Package Version: 0.10.21 +Upstream Status: Not yet known, just raised as gnome bug 556444. +Origin: Self +Description: Allows 'make install' to succeed if gtkdoc-rebase is not present. + +diff -Naur gst-plugins-base-0.10.21.orig/common/gtk-doc.mak gst-plugins-base-0.10.21/common/gtk-doc.mak +--- gst-plugins-base-0.10.21.orig/common/gtk-doc.mak 2008-09-10 10:13:25.000000000 +0100 ++++ gst-plugins-base-0.10.21/common/gtk-doc.mak 2008-10-15 18:39:02.000000000 +0100 +@@ -201,7 +201,7 @@ + $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)- at [email protected]; \ + fi; \ + which gtkdoc-rebase >/dev/null && \ +- gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \ ++ gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \ + fi) + uninstall-local: + (installfiles=`echo ./html/*.html`; \ +diff -Naur gst-plugins-base-0.10.21.orig/docs/libs/Makefile.in gst-plugins-base-0.10.21/docs/libs/Makefile.in +--- gst-plugins-base-0.10.21.orig/docs/libs/Makefile.in 2008-10-02 23:46:08.000000000 +0100 ++++ gst-plugins-base-0.10.21/docs/libs/Makefile.in 2008-10-15 18:38:42.000000000 +0100 +@@ -822,7 +822,7 @@ + $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)- at [email protected]; \ + fi; \ + which gtkdoc-rebase >/dev/null && \ +- gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \ ++ gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) || true ; \ + fi) + uninstall-local: + (installfiles=`echo ./html/*.html`; \
package/multimedia/gst-plugins-base/gst-plugins-base.mk new file +137 -0
137 lines not on this page · raw message
Signature · 1 line
1.6.0.4.762.g0567f
PATCH 5/7 package/multimedia: add gst-plugins-good package
In reply to Markus HeidelbergA set of well-supported plug-ins for GStreamer under the preferred license.
--- package/multimedia/Config.in | 1 + package/multimedia/gst-plugins-good/Config.in | 122 ++++++++++ .../gst-plugins-good/gst-plugins-good.mk | 242 ++++++++++++++++++++ 3 files changed, 365 insertions(+), 0 deletions(-) create mode 100644 package/multimedia/gst-plugins-good/Config.in create mode 100644 package/multimedia/gst-plugins-good/gst-plugins-good.mk
package/multimedia/Config.in +1 -0
@@ -5,6 +5,7 @@ source "package/multimedia/asterisk/Config.in" source "package/multimedia/aumix/Config.in" source "package/multimedia/gstreamer/Config.in" source "package/multimedia/gst-plugins-base/Config.in" +source "package/multimedia/gst-plugins-good/Config.in" source "package/multimedia/libid3tag/Config.in" source "package/multimedia/libmad/Config.in" source "package/multimedia/libogg/Config.in"
package/multimedia/gst-plugins-good/Config.in new file +122 -0
122 lines not on this page · raw message
package/multimedia/gst-plugins-good/gst-plugins-good.mk new file +242 -0
242 lines not on this page · raw message
Signature · 1 line
1.6.0.4.762.g0567f
PATCH 6/7 package/multimedia: add gst-plugins-ugly package
In reply to Markus HeidelbergA set of well-supported plug-ins for GStreamer, but might pose problems for distributors.
--- package/multimedia/Config.in | 1 + package/multimedia/gst-plugins-ugly/Config.in | 50 ++++++++++++ .../gst-plugins-ugly/gst-plugins-ugly.mk | 81 ++++++++++++++++++++ 3 files changed, 132 insertions(+), 0 deletions(-) create mode 100644 package/multimedia/gst-plugins-ugly/Config.in create mode 100644 package/multimedia/gst-plugins-ugly/gst-plugins-ugly.mk
package/multimedia/Config.in +1 -0
@@ -6,6 +6,7 @@ source "package/multimedia/aumix/Config.in" source "package/multimedia/gstreamer/Config.in" source "package/multimedia/gst-plugins-base/Config.in" source "package/multimedia/gst-plugins-good/Config.in" +source "package/multimedia/gst-plugins-ugly/Config.in" source "package/multimedia/libid3tag/Config.in" source "package/multimedia/libmad/Config.in" source "package/multimedia/libogg/Config.in"
package/multimedia/gst-plugins-ugly/Config.in new file +50 -0
50 lines not on this page · raw message
package/multimedia/gst-plugins-ugly/gst-plugins-ugly.mk new file +81 -0
81 lines not on this page · raw message
Signature · 1 line
1.6.0.4.762.g0567f
PATCH 7/7 qtopia4: add Phonon support
In reply to Markus HeidelbergPhonon is the multimedia API from KDE 4 which has been integrated into Qt 4.4. For playback under Linux the GStreamer multimedia framework is used.
--- package/qtopia4/Config.in | 9 +++++++++ package/qtopia4/qtopia4.mk | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 0 deletions(-)
package/qtopia4/Config.in +9 -0
@@ -234,6 +234,15 @@ config BR2_PACKAGE_QTOPIA4_XMLPATTERNS Build QtXmlPatterns module. If unsure, say n +config BR2_PACKAGE_QTOPIA4_PHONON + bool "Phonon Module" + select BR2_PACKAGE_GSTREAMER + select BR2_PACKAGE_GST_PLUGINS_BASE + help + Build the Phonon module. Support for different audio/video + formats can be configured at the GStreamer package. + If unsure, say n. + config BR2_PACKAGE_QTOPIA4_SVG bool "SVG Module" help
package/qtopia4/qtopia4.mk +16 -0
@@ -262,6 +262,13 @@ else QTOPIA4_CONFIGURE+= -no-xmlpatterns endif +ifeq ($(BR2_PACKAGE_QTOPIA4_PHONON),y) +QTOPIA4_CONFIGURE+= -phonon +QTOPIA4_DEP_LIBS+=gstreamer gst-plugins-base +else +QTOPIA4_CONFIGURE+= -no-phonon +endif + ifeq ($(BR2_PACKAGE_QTOPIA4_SVG),y) QTOPIA4_CONFIGURE+= -svg else
@@ -363,6 +370,10 @@ $(TARGET_DIR)/usr/lib/libQtCore.so.4: $(STAGING_DIR)/usr/lib/libQtCore.la ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y) cp -dpf $(STAGING_DIR)/usr/lib/libQt*.so.* $(TARGET_DIR)/usr/lib/ -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libQt*.so.* +ifeq ($(BR2_PACKAGE_QTOPIA4_PHONON),y) + cp -dpf $(STAGING_DIR)/usr/lib/libphonon.so.* $(TARGET_DIR)/usr/lib/ + -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libphonon.so.* +endif endif # Install image plugins if they are built if [ -d $(STAGING_DIR)/usr/plugins/imageformats ]; then \
@@ -370,6 +381,11 @@ endif cp -dpfr $(STAGING_DIR)/usr/plugins/imageformats $(TARGET_DIR)/usr/plugins/; \ $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/plugins/imageformats/*; \ fi +ifeq ($(BR2_PACKAGE_QTOPIA4_PHONON),y) + mkdir -p $(TARGET_DIR)/usr/plugins + cp -dpfr $(STAGING_DIR)/usr/plugins/phonon_backend $(TARGET_DIR)/usr/plugins/ + $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/plugins/phonon_backend/* +endif ifneq ($(BR2_PACKAGE_QTOPIA4_SQL_MODULE),y) # Remove Sql libraries, not needed -rm $(TARGET_DIR)/usr/lib/libQtSql*
Signature · 1 line
1.6.0.4.762.g0567f
cover add Phonon support to qtopia4
In reply to Markus HeidelbergMarkus Heidelberg, 19.11.2008:
Quoted 2 lines
This patch series adds Phonon configuration to qtopia4 and its required packages.
Is nobody interested, not even the Qt users? I'd really like this being integrated. I could do it on my own with commit access, but I'm not sure whether my activity will be lasting.
Markus
cover add Phonon support to qtopia4
Quoted 8 lines · Markus Heidelberg
Markus Heidelberg, 19.11.2008:
Quoted 2 lines
This patch series adds Phonon configuration to qtopia4 and its required packages.
Is nobody interested, not even the Qt users? I'd really like this being integrated. I could do it on my own with commit access, but I'm not sure whether my activity will be lasting.
Sorry for the late feedback, I am very interested, but I lack a bit on time at the moment to complete this. Hopefully I get the time to look into this during the coming weeks.
Signature · 2 lines
Best regards, Hans-Christian Egtvedt
cover add Phonon support to qtopia4
Hans-Christian Egtvedt, 25.11.2008:
Quoted 5 lines
Quoted 4 lines · Markus Heidelberg
Markus Heidelberg, 19.11.2008:
Quoted 2 lines
This patch series adds Phonon configuration to qtopia4 and its required packages.
Quoted 8 lines
Quoted 4 lines
Is nobody interested, not even the Qt users? I'd really like this being integrated. I could do it on my own with commit access, but I'm not sure whether my activity will be lasting.
Sorry for the late feedback, I am very interested, but I lack a bit on time at the moment to complete this. Hopefully I get the time to look into this during the coming weeks.
OK, I can understand only too well. Thanks for the response.
cover add Phonon support to qtopia4
Quoted 2 lines · On Tue, 25 Nov 2008 08:33:46 +0100 Markus Heidelberg…
Hans-Christian Egtvedt, 25.11.2008:
Quoted 1 line
Markus Heidelberg wrote:
<snipp>
Quoted 6 lines
Quoted 3 lines
Sorry for the late feedback, I am very interested, but I lack a bit on time at the moment to complete this. Hopefully I get the time to look into this during the coming weeks.
OK, I can understand only too well. Thanks for the response.
Finally got some time to spin this around. Audio worked fine with the Qt examples, tested both Ogg and MP3.
Thanks for the patches, sorry I forgot to credit you except the last commit.
Now only to add gst-ffmpeg as well ;)
Signature · 2 lines
Best regards, Hans-Christian Egtvedt
cover add Phonon support to qtopia4
Hans-Christian Egtvedt, 08.12.2008:
Quoted 5 lines
Finally got some time to spin this around. Audio worked fine with the Qt examples, tested both Ogg and MP3.
Thanks for the patches, sorry I forgot to credit you except the last commit.
Can happen, thanks for committing.
Quoted 1 line
Now only to add gst-ffmpeg as well ;)
This would probably have been my next step, but I have rejected Phonon for now. The video playback was just so slow. It took something about 15s to load the Qt example I sent and even longer to get the video started. And the playback performance then wasn't better. Did I do something wrong? I haven't yet tested it on ATSTK1002 nor 1005 and I'm not sure I get round to it before the vacation.
So currently I'm using mplayer -geometry
Markus
cover add Phonon support to qtopia4
Quoted 1 line · On Mon, 8 Dec 2008 23:00:09 +0100 Markus Heidelberg <[email protected]>…
Hans-Christian Egtvedt, 08.12.2008:
<snipp>
Quoted 9 lines
Quoted 1 line
Now only to add gst-ffmpeg as well ;)
This would probably have been my next step, but I have rejected Phonon for now. The video playback was just so slow. It took something about 15s to load the Qt example I sent and even longer to get the video started. And the playback performance then wasn't better. Did I do something wrong? I haven't yet tested it on ATSTK1002 nor 1005 and I'm not sure I get round to it before the vacation.
I noticed it took some time getting the demo applications to load the first time, probably just moving stuff into memory.
It will be pretty mandatory to have 64 MB or even 128 MB of RAM I think, at least to speed up the process after the first run.
The reason playback is so slow is that you are probably not using the pixel coprocessor (PICO) to do the work. That was why getting gst-ffmpeg (libavcodec) with the AVR32 patches to work would be very nice.
Quoted 2 lines
So currently I'm using mplayer -geometry
And with the AVR32 patch, this is quite optimized and uses the PICO.
Signature · 2 lines
Best regards, Hans-Christian Egtvedt
cover add Phonon support to qtopia4
Hans-Christian Egtvedt, 09.12.2008:
Quoted 17 lines
Quoted 1 line · On Mon, 8 Dec 2008 23:00:09 +0100 Markus Heidelberg <[email protected]>…
Hans-Christian Egtvedt, 08.12.2008:
<snipp>
Quoted 9 lines
Quoted 1 line
Now only to add gst-ffmpeg as well ;)
This would probably have been my next step, but I have rejected Phonon for now. The video playback was just so slow. It took something about 15s to load the Qt example I sent and even longer to get the video started. And the playback performance then wasn't better. Did I do something wrong? I haven't yet tested it on ATSTK1002 nor 1005 and I'm not sure I get round to it before the vacation.
Quoted 5 lines
I noticed it took some time getting the demo applications to load the first time, probably just moving stuff into memory.
It will be pretty mandatory to have 64 MB or even 128 MB of RAM I think, at least to speed up the process after the first run.
64 MB is available, but bandwidth is probably eaten up by the LCDC with high priority with a big display behind an LVDS.
Quoted 4 lines
The reason playback is so slow is that you are probably not using the pixel coprocessor (PICO) to do the work. That was why getting gst-ffmpeg (libavcodec) with the AVR32 patches to work would be very nice.
This optimization with using the PICO should also be possible for Qt output, independent of video playback, shouldn't it?
Quoted 4 lines
Quoted 2 lines
So currently I'm using mplayer -geometry
And with the AVR32 patch, this is quite optimized and uses the PICO.
Sounds comprehensible, I had not really thought about it. Are there plans or have there already been efforts to get the AVR32 patch into mainline ffmpeg? The mplayer version rc1 in buildroot is quite old, OK rc2 is not very new, too. But it seems as if the big atmel patch is preventing from updating.
Markus
cover add Phonon support to qtopia4
Quoted 3 lines · On Tue, 9 Dec 2008 11:34:59 +0100 Markus Heidelberg <[email protected]>…
Hans-Christian Egtvedt, 09.12.2008:
Quoted 2 lines
On Mon, 8 Dec 2008 23:00:09 +0100
Markus Heidelberg <[email protected]> wrote:
<snipp>
Quoted 8 lines
Quoted 4 lines
The reason playback is so slow is that you are probably not using the pixel coprocessor (PICO) to do the work. That was why getting gst-ffmpeg (libavcodec) with the AVR32 patches to work would be very nice.
This optimization with using the PICO should also be possible for Qt output, independent of video playback, shouldn't it?
No, you will have to write optimized assembly to take advantage of the PICO. Qt does not use the PICO by default, not even DSP or SIMD instructions.
Quoted 11 lines
Quoted 4 lines
Quoted 2 lines
So currently I'm using mplayer -geometry
And with the AVR32 patch, this is quite optimized and uses the PICO.
Sounds comprehensible, I had not really thought about it. Are there plans or have there already been efforts to get the AVR32 patch into mainline ffmpeg? The mplayer version rc1 in buildroot is quite old, OK rc2 is not very new, too. But it seems as if the big atmel patch is preventing from updating.
I am looking into porting the PICO stuff for ffmpeg to upstream ffmpeg, and instead use that for mplayer. Then it should be easy to bump the version to rc2 as well.
Signature · 2 lines
Best regards, Hans-Christian Egtvedt
cover add Phonon support to qtopia4
Quoted 5 lines
Quoted 5 lines
Quoted 4 lines
The reason playback is so slow is that you are probably not using the pixel coprocessor (PICO) to do the work. That was why getting gst-ffmpeg (libavcodec) with the AVR32 patches to work would be very nice.
Quoted 8 lines
Quoted 3 lines
This optimization with using the PICO should also be possible for Qt output, independent of video playback, shouldn't it?
No, you will have to write optimized assembly to take advantage of the PICO. Qt does not use the PICO by default, not even DSP or SIMD instructions.
Isn't DirectFB optimized? Qt has a DirectFB output plugin since 4.4 if I'm not mistaken. It as a labs feature (labs.trolltech.com) that got integrated into mainline. I guess it's not enabled in buildroot builds yet though.
Kind Regards,
Thiago A Correa.
cover add Phonon support to qtopia4
Quoted 8 lines · On Tue, 9 Dec 2008 11:34:28 -0200 "Thiago A. Corr?a" <[email protected]>…
Quoted 8 lines
Quoted 7 lines
Quoted 4 lines
The reason playback is so slow is that you are probably not using the pixel coprocessor (PICO) to do the work. That was why getting gst-ffmpeg (libavcodec) with the AVR32 patches to work would be very nice.
This optimization with using the PICO should also be possible for Qt output, independent of video playback, shouldn't it?
Quoted 9 lines
Quoted 3 lines
No, you will have to write optimized assembly to take advantage of the PICO. Qt does not use the PICO by default, not even DSP or SIMD instructions.
Isn't DirectFB optimized? Qt has a DirectFB output plugin since 4.4 if I'm not mistaken. It as a labs feature (labs.trolltech.com) that got integrated into mainline. I guess it's not enabled in buildroot builds yet though.
AFAIK DirectFB does not take advantage of any AVR32 instructions or PICO.
Signature · 2 lines
Best regards, Hans-Christian Egtvedt