Skip to contentSkip to conversation

add Phonon support to qtopia4

PATCH Superseded Markus Heidelberg 4 participants 22 messages Nov 19, 2008 – Dec 9, 2008

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
index 2e842fb..23d3238 100644
@@ -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
new file mode 100644
index 0000000..0acbbfc
@@ -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
new file mode 100644
index 0000000..092c83f
@@ -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
#2 lore raw

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
index 2e842fb..23d3238 100644
@@ -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
new file mode 100644
index 0000000..286c52c
@@ -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
new file mode 100644
index 0000000..092c83f
@@ -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
#3 lore raw

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
#4 lore raw

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
#5 lore raw

PATCH 1/7 package: add liboil package

In reply to Markus Heidelberg

Le 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.

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
#6 lore raw

PATCH 2/7 package/multimedia: add libtheora package

In reply to Markus Heidelberg

Libtheora 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
index 4568a51..4c74f7e 100644
@@ -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
new file mode 100644
index 0000000..97a7087
@@ -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
new file mode 100644
index 0000000..12d6af8
@@ -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
#7 lore raw

PATCH 3/7 package/multimedia: add gstreamer package

In reply to Markus Heidelberg

GStreamer 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
index 4c74f7e..36676e5 100644
@@ -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
new file mode 100644
index 0000000..37e1427
@@ -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
new file mode 100644
index 0000000..903264a
@@ -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
#8 lore raw

PATCH 4/7 package/multimedia: add gst-plugins-base package

In reply to Markus Heidelberg

A 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
index 36676e5..1d7abb1 100644
@@ -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
new file mode 100644
index 0000000..34bf061
@@ -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
#9 lore raw

PATCH 5/7 package/multimedia: add gst-plugins-good package

In reply to Markus Heidelberg

A 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
index 1d7abb1..7f7e9e8 100644
@@ -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
#10 lore raw

PATCH 6/7 package/multimedia: add gst-plugins-ugly package

In reply to Markus Heidelberg

A 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
index 7f7e9e8..52638d2 100644
@@ -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
#11 lore raw

PATCH 7/7 qtopia4: add Phonon support

In reply to Markus Heidelberg

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.

---
 package/qtopia4/Config.in  |    9 +++++++++
 package/qtopia4/qtopia4.mk |   16 ++++++++++++++++
 2 files changed, 25 insertions(+), 0 deletions(-)
package/qtopia4/Config.in +9 -0
index fb156af..e0eda92 100644
@@ -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
index ef40528..dc3d183 100644
@@ -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
#12 lore raw

cover add Phonon support to qtopia4

In reply to 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.

Markus

#13 lore raw

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
#14 lore raw

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.

#15 lore raw

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
#16 lore raw

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

#17 lore raw

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
#18 lore raw

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

#19 lore raw

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
#20 lore raw

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.

#21 lore raw

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