diff options
Diffstat (limited to 'meta/recipes-multimedia')
52 files changed, 1112 insertions, 327 deletions
diff --git a/meta/recipes-multimedia/alsa/alsa-utils-alsaconf_1.0.28.bb b/meta/recipes-multimedia/alsa/alsa-utils-alsaconf_1.0.28.bb index 968c81ee2b..2d49cc5622 100644 --- a/meta/recipes-multimedia/alsa/alsa-utils-alsaconf_1.0.28.bb +++ b/meta/recipes-multimedia/alsa/alsa-utils-alsaconf_1.0.28.bb @@ -13,5 +13,5 @@ S = "${WORKDIR}/alsa-utils-${PV}" do_install() { install -d ${D}${sbindir} - install -m 0755 ${S}/alsaconf/alsaconf ${D}${sbindir}/ + install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/ } diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb index 5f35d76a6e..ac5512a7df 100644 --- a/meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb +++ b/meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb @@ -25,7 +25,9 @@ SRC_URI[sha256sum] = "f3ff4c89b0125a7797b1b13cd094cc92276e655458274967386e812d03 # EXTRA_OECONF_append_libc-uclibc = " --disable-nls" -inherit autotools-brokensep gettext pkgconfig +PR = "r1" + +inherit autotools gettext pkgconfig # This are all packages that we need to make. Also, the now empty alsa-utils # ipk depends on them. diff --git a/meta/recipes-multimedia/flac/flac-1.3.0/0001-Fix-Makefile.am-altivec-logic.patch b/meta/recipes-multimedia/flac/flac-1.3.0/0001-Fix-Makefile.am-altivec-logic.patch deleted file mode 100644 index d086cc910f..0000000000 --- a/meta/recipes-multimedia/flac/flac-1.3.0/0001-Fix-Makefile.am-altivec-logic.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 1b3597cdc7b5e604ea37db29b2a65aab91e263e6 Mon Sep 17 00:00:00 2001 -From: Gustavo Zacarias <gustavo@zacarias.com.ar> -Date: Wed, 4 Dec 2013 13:31:28 -0300 -Subject: [PATCH] Fix Makefile.am altivec logic - -Upstream-Status: Backport - -Besides SPE (FSL e500v? cores) there are other powerpc processors -that don't support altivec instructions so only enable them when it's -100% sure that the target has it. - -Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> -Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com> -Signed-off-by: Cristian Iorga <cristian.iorga@intel.com> ---- - src/libFLAC/Makefile.am | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/libFLAC/Makefile.am b/src/libFLAC/Makefile.am -index 247e33c..258de40 100644 ---- a/src/libFLAC/Makefile.am -+++ b/src/libFLAC/Makefile.am -@@ -47,8 +47,7 @@ CPUCFLAGS = -faltivec -force_cpusubtype_ALL -DFLAC__NO_ASM - else - # Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific - CPUCFLAGS = --if FLaC__CPU_PPC_SPE --else -+if FLaC__USE_ALTIVEC - CPUCFLAGS += -maltivec -mabi=altivec - endif - #@@@ PPC optimizations temporarily disabled --- -1.8.3.2 - diff --git a/meta/recipes-multimedia/flac/flac_1.3.0.bb b/meta/recipes-multimedia/flac/flac_1.3.1.bb index fdf38e9ea9..f25271f879 100644 --- a/meta/recipes-multimedia/flac/flac_1.3.0.bb +++ b/meta/recipes-multimedia/flac/flac_1.3.1.bb @@ -5,23 +5,21 @@ BUGTRACKER = "http://sourceforge.net/p/flac/bugs/" SECTION = "libs" LICENSE = "GFDL-1.2 & GPLv2+ & LGPLv2.1+ & BSD" LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \ - file://src/Makefile.am;beginline=1;endline=17;md5=59575c1aa8f5f70d9361b776c2e2bdb5 \ + file://src/Makefile.am;beginline=1;endline=17;md5=0a853b81d9d43d8aad3b53b05cfcc37e \ file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://src/flac/main.c;beginline=1;endline=18;md5=d36a16abc38d5ffd346ac4ba1be1932b \ + file://src/flac/main.c;beginline=1;endline=18;md5=d03a766558d233f9cc3ac5dfafd49deb \ file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \ - file://src/plugin_common/all.h;beginline=1;endline=18;md5=e33e281151e7f40db2d3d170d9b0c1bb \ - file://COPYING.Xiph;md5=755582d124a03e3001afea59fc02b61b \ + file://src/plugin_common/all.h;beginline=1;endline=18;md5=7c8a3b9e1e66ed0aba765bc6f35da85d \ + file://COPYING.Xiph;md5=a2c4b71c0198682376d483eb5bcc9197 \ file://include/FLAC/all.h;beginline=65;endline=70;md5=64474f2b22e9e77b28d8b8b25c983a48" DEPENDS = "libogg" -SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz \ - file://0001-Fix-Makefile.am-altivec-logic.patch \ - " +SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz" -SRC_URI[md5sum] = "13b5c214cee8373464d3d65dee362cdd" -SRC_URI[sha256sum] = "fa2d64aac1f77e31dfbb270aeb08f5b32e27036a52ad15e69a77e309528010dc" +SRC_URI[md5sum] = "b9922c9a0378c88d3e901b234f852698" +SRC_URI[sha256sum] = "4773c0099dba767d963fd92143263be338c48702172e8754b9bc5103efe1c56c" -inherit autotools-brokensep gettext +inherit autotools gettext EXTRA_OECONF = "--disable-oggtest \ --with-ogg-libraries=${STAGING_LIBDIR} \ diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-huffyuvdec-check-width-more-completely-avoid-out-of-.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-huffyuvdec-check-width-more-completely-avoid-out-of-.patch deleted file mode 100644 index 6b60d163fb..0000000000 --- a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-huffyuvdec-check-width-more-completely-avoid-out-of-.patch +++ /dev/null @@ -1,30 +0,0 @@ -gst-ffmpeg: huffyuvdec: check width more completely, avoid out of array - accesses - -Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind - -Upstream-Status: Backport - -Signed-off-by: Michael Niedermayer <michaelni@gmx.at> ---- - libavcodec/huffyuv.c | 5 ++++- - 1 files changed, 4 insertions(+), 1 deletions(-) - -diff --git a/libavcodec/huffyuv.c b/libavcodec/huffyuv.c -index 6e88114..ca5bcd8 100644 ---- a/gst-libs/ext/libav/libavcodec/huffyuv.c -+++ b/gst-libs/ext/libav/libavcodec/huffyuv.c -@@ -526,6 +526,10 @@ s->bgr32=1; - assert(0); - } - -+ if (s->predictor == MEDIAN && avctx->pix_fmt == AV_PIX_FMT_YUV422P && avctx->width%4) { -+ av_log(avctx, AV_LOG_ERROR, "width must be a multiple of 4 this colorspace and predictor\n"); -+ return AVERROR_INVALIDDATA; -+ } - alloc_temp(s); - - // av_log(NULL, AV_LOG_DEBUG, "pred:%d bpp:%d hbpp:%d il:%d\n", s->predictor, s->bitstream_bpp, avctx->bits_per_coded_sample, s->interlaced); --- -1.7.5.4 - diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav-9.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav-9.patch index 9055b341dc..1860752202 100644 --- a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav-9.patch +++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav-9.patch @@ -111,7 +111,7 @@ diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c gst-ffmpeg-0.10 #include <gst/gst.h> #ifdef HAVE_FFMPEG_UNINSTALLED #include <avcodec.h> -+#include <channel_layout.h>> ++#include <channel_layout.h> #else #include <libavcodec/avcodec.h> +#include <libavutil/channel_layout.h> diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb index 30e5deb1f9..b5c838f9ea 100644 --- a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb +++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb @@ -12,9 +12,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" LICENSE_FLAGS = "commercial" HOMEPAGE = "http://www.gstreamer.net/" -DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native" +DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native libpostproc" -inherit autotools pkgconfig +inherit autotools-brokensep pkgconfig SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \ file://lower-rank.diff \ @@ -46,7 +46,6 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \ file://0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch \ file://gst-ffmpeg-CVE-2013-0855.patch \ file://0001-qdm2dec-fix-buffer-overflow.patch \ - file://0001-huffyuvdec-check-width-more-completely-avoid-out-of-.patch \ file://0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch \ file://0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch \ file://0001-error-concealment-initialize-block-index.patch \ @@ -57,7 +56,7 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \ file://0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch \ file://0001-avcodec-smc-fix-off-by-1-error.patch \ file://0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch \ - ${@bb.utils.contains('PACKAGECONFIG', 'libav9', 'file://libav-9.patch', '', d)} \ + file://libav-9.patch \ " SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4" @@ -84,7 +83,6 @@ EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}" PACKAGECONFIG ??= "external-libav" PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav" PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" -PACKAGECONFIG[libav9] = ",,," FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.31.bb index 9e68288844..1e2cd2a4ab 100644 --- a/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb +++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.31.bb @@ -6,9 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=259a43dd1c9854b71fc396f74699f4d2" LICENSE_FLAGS = "commercial" GSTREAMER_DEBUG ?= "--disable-debug" -EXTRA_OECONF += "${GSTREAMER_DEBUG}" +EXTRA_OECONF += "${GSTREAMER_DEBUG} --with-gstreamer-api=0.10" acpaths = "-I ${S}/common/m4 -I ${S}/m4" -SRC_URI[md5sum] = "5d95a9a216dd15bc5c00c9414061115c" -SRC_URI[sha256sum] = "30c79d24d8926f75dd4ef0f572942ce155ad541734b36a95591b9c0524dcc0f3" +SRC_URI[md5sum] = "adf0390f3416bb72f91c358528be0c38" +SRC_URI[sha256sum] = "dae0d0559a4e159c0dd92b7e18de059a5783f8d038904c7de4ca6393f7d55c7d" diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.85.bb index f79015403b..7bba41a341 100644 --- a/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb +++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.85.bb @@ -1,6 +1,6 @@ require gst-fluendo.inc -SUMMARY = "Fluendo closed-format mpeg video GStreamer plug-in" +SUMMARY = "Fluendo MPEG Transport Stream and Program Stream demuxer for GStreamer" LICENSE = "MPLv1.1" LIC_FILES_CHKSUM = "file://COPYING;md5=be282f1c3cc9a98cc0dc5c2b25dfc510 \ file://src/gstmpegdemux.h;beginline=1;endline=19;md5=a9e90033f59897b91664d9f2a2ff01dd" @@ -8,5 +8,5 @@ LICENSE_FLAGS = "commercial" acpaths = "-I ${S}/common/m4 -I ${S}/m4" -SRC_URI[md5sum] = "df726579404af65b9536428661ab4322" -SRC_URI[sha256sum] = "a9784bc16352d0fb73de81b9c17142609e8bede46f6d9b881fc3d19673954abf" +SRC_URI[md5sum] = "7c4fb993f80b9ae631b11897733f0970" +SRC_URI[sha256sum] = "df04c91cc8e5d9a892c2492ed989974b4547beaa2a3647649e85113317897424" diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo.inc b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc index feaf1c7c62..7a77d624f2 100644 --- a/meta/recipes-multimedia/gstreamer/gst-fluendo.inc +++ b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc @@ -1,7 +1,7 @@ SUMMARY = "Fluendo closed-format GStreamer plug-in" SECTION = "multimedia" -HOMEPAGE = "http://www.fluendo.com/resources/source-plugins.php" -DEPENDS = "gstreamer zlib" +HOMEPAGE = "https://core.fluendo.com/gstreamer/trac/wiki" +DEPENDS = "gstreamer gst-plugins-base zlib" inherit autotools pkgconfig diff --git a/meta/recipes-multimedia/gstreamer/gst-player/Add-error-signal-emission-for-missing-plugins.patch b/meta/recipes-multimedia/gstreamer/gst-player/Add-error-signal-emission-for-missing-plugins.patch new file mode 100644 index 0000000000..712d46daa0 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-player/Add-error-signal-emission-for-missing-plugins.patch @@ -0,0 +1,252 @@ +From d64c7edb66f4a64ff49c4306cf77fd269b7079ab Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen <jussi.kukkonen@intel.com> +Date: Mon, 16 Mar 2015 13:45:30 +0200 +Subject: [PATCH] Add error signal emission for missing plugins + +Add a missing plugins error signal to gst-player. Note that this error +does not necessarily mean the playback has completely failed, but in +practice the user experience will be bad (think, e.g. of a mp4 file +where H.264 codec is missing: AAC playback still works...). + +Use the signal in gtk-play to show a infobar if plugins are missing. + +Submitted upstream at https://github.com/sdroege/gst-player/pull/11 + +Upstream-Status: Submitted +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> +--- + configure.ac | 2 +- + gtk/gtk-play.c | 54 +++++++++++++++++++++++++++++++++++++++++++++- + lib/gst/player/gstplayer.c | 22 +++++++++++++++++++ + lib/gst/player/gstplayer.h | 3 ++- + 4 files changed, 78 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 90ab74c..6cdb4eb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -53,7 +53,7 @@ AC_SUBST(LT_AGE) + PKG_PROG_PKG_CONFIG + + PKG_CHECK_MODULES(GLIB, [glib-2.0 gobject-2.0]) +-PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0 >= 1.4 gstreamer-video-1.0 >= 1.4]) ++PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0 >= 1.4 gstreamer-video-1.0 >= 1.4 gstreamer-pbutils-1.0]) + + GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`" + AC_SUBST(GLIB_PREFIX) +diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c +index b92773b..e2b605a 100644 +--- a/gtk/gtk-play.c ++++ b/gtk/gtk-play.c +@@ -30,6 +30,8 @@ typedef struct + GtkWidget *prev_button, *next_button; + GtkWidget *seekbar; + GtkWidget *video_area; ++ GtkWidget *info_label; ++ GtkWidget *info_bar; + GtkWidget *volume_button; + gulong seekbar_value_changed_signal_id; + gboolean playing; +@@ -141,6 +143,13 @@ play_pause_clicked_cb (GtkButton * button, GtkPlay * play) + } + + static void ++clear_missing_plugins (GtkPlay * play) ++{ ++ gtk_label_set_text (GTK_LABEL (play->info_label), ""); ++ gtk_widget_hide (play->info_bar); ++} ++ ++static void + skip_prev_clicked_cb (GtkButton * button, GtkPlay * play) + { + GList *prev; +@@ -155,6 +164,7 @@ skip_prev_clicked_cb (GtkButton * button, GtkPlay * play) + + gtk_widget_set_sensitive (play->next_button, TRUE); + gst_player_set_uri (play->player, prev->data); ++ clear_missing_plugins (play); + gst_player_play (play->player); + set_title (play, prev->data); + gtk_widget_set_sensitive (play->prev_button, g_list_previous (prev) != NULL); +@@ -175,6 +185,7 @@ skip_next_clicked_cb (GtkButton * button, GtkPlay * play) + + gtk_widget_set_sensitive (play->prev_button, TRUE); + gst_player_set_uri (play->player, next->data); ++ clear_missing_plugins (play); + gst_player_play (play->player); + set_title (play, next->data); + gtk_widget_set_sensitive (play->next_button, g_list_next (next) != NULL); +@@ -193,10 +204,16 @@ volume_changed_cb (GtkScaleButton * button, gdouble value, GtkPlay * play) + gst_player_set_volume (play->player, value); + } + ++void ++info_bar_response_cb (GtkInfoBar * bar, gint response, GtkPlay * play) ++{ ++ gtk_widget_hide (GTK_WIDGET (bar)); ++} ++ + static void + create_ui (GtkPlay * play) + { +- GtkWidget *controls, *main_hbox, *main_vbox; ++ GtkWidget *controls, *main_hbox, *main_vbox, *info_bar, *content_area; + + play->window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + g_signal_connect (G_OBJECT (play->window), "delete-event", +@@ -208,6 +225,20 @@ create_ui (GtkPlay * play) + g_signal_connect (play->video_area, "realize", + G_CALLBACK (video_area_realize_cb), play); + ++ play->info_bar = gtk_info_bar_new (); ++ gtk_info_bar_set_message_type (GTK_INFO_BAR (play->info_bar), ++ GTK_MESSAGE_WARNING); ++ //gtk_info_bar_set_show_close_button (GTK_INFO_BAR (play->info_bar), ++ // TRUE); ++ gtk_widget_set_no_show_all (play->info_bar, TRUE); ++ g_signal_connect (play->info_bar, "response", ++ G_CALLBACK (info_bar_response_cb), play); ++ ++ content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (play->info_bar)); ++ play->info_label = gtk_label_new (""); ++ gtk_container_add (GTK_CONTAINER (content_area), play->info_label); ++ gtk_widget_show (play->info_label); ++ + /* Unified play/pause button */ + play->play_pause_button = + gtk_button_new_from_icon_name ("media-playback-pause", +@@ -258,6 +289,7 @@ create_ui (GtkPlay * play) + + main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_box_pack_start (GTK_BOX (main_vbox), main_hbox, TRUE, TRUE, 0); ++ gtk_box_pack_start (GTK_BOX (main_vbox), play->info_bar, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (main_vbox), controls, FALSE, FALSE, 0); + gtk_container_add (GTK_CONTAINER (play->window), main_vbox); + +@@ -322,6 +354,7 @@ eos_cb (GstPlayer * unused, GtkPlay * play) + gtk_widget_set_sensitive (play->next_button, g_list_next (next) != NULL); + + gst_player_set_uri (play->player, next->data); ++ clear_missing_plugins (play); + gst_player_play (play->player); + set_title (play, next->data); + } else { +@@ -330,6 +363,24 @@ eos_cb (GstPlayer * unused, GtkPlay * play) + } + } + ++static void ++error_cb (GstPlayer * player, GError * err, GtkPlay * play) ++{ ++ char *message; ++ ++ if (g_error_matches (err, gst_player_error_quark (), ++ GST_PLAYER_ERROR_MISSING_PLUGIN)) { ++ // add message to end of any existing message: there may be ++ // multiple missing plugins. ++ message = g_strdup_printf ("%s%s. ", ++ gtk_label_get_text (GTK_LABEL (play->info_label)), err->message); ++ gtk_label_set_text (GTK_LABEL (play->info_label), message); ++ g_free (message); ++ ++ gtk_widget_show (play->info_bar); ++ } ++} ++ + int + main (gint argc, gchar ** argv) + { +@@ -422,6 +473,7 @@ main (gint argc, gchar ** argv) + g_signal_connect (play.player, "video-dimensions-changed", + G_CALLBACK (video_dimensions_changed_cb), &play); + g_signal_connect (play.player, "end-of-stream", G_CALLBACK (eos_cb), &play); ++ g_signal_connect (play.player, "error", G_CALLBACK (error_cb), &play); + + /* We have file(s) that need playing. */ + set_title (&play, g_list_first (play.uris)->data); +diff --git a/lib/gst/player/gstplayer.c b/lib/gst/player/gstplayer.c +index bd682d9..78e7ba1 100644 +--- a/lib/gst/player/gstplayer.c ++++ b/lib/gst/player/gstplayer.c +@@ -47,6 +47,7 @@ + + #include <gst/gst.h> + #include <gst/video/video.h> ++#include <gst/pbutils/missing-plugins.h> + + GST_DEBUG_CATEGORY_STATIC (gst_player_debug); + #define GST_CAT_DEFAULT gst_player_debug +@@ -238,6 +239,7 @@ gst_player_class_init (GstPlayerClass * klass) + g_signal_new ("video-dimensions-changed", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, 0, NULL, + NULL, NULL, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT); ++ + } + + static void +@@ -619,6 +621,21 @@ error_cb (GstBus * bus, GstMessage * msg, gpointer user_data) + g_mutex_unlock (&self->priv->lock); + } + ++static void ++element_cb (GstBus * bus, GstMessage * msg, gpointer user_data) ++{ ++ GstPlayer *self = GST_PLAYER (user_data); ++ ++ if (gst_is_missing_plugin_message (msg)) { ++ gchar *desc; ++ ++ desc = gst_missing_plugin_message_get_description (msg); ++ emit_error (self, g_error_new (GST_PLAYER_ERROR, ++ GST_PLAYER_ERROR_MISSING_PLUGIN, "Missing plugin '%s'", desc)); ++ g_free (desc); ++ } ++} ++ + static gboolean + eos_dispatch (gpointer user_data) + { +@@ -1059,6 +1076,8 @@ gst_player_main (gpointer data) + NULL, NULL); + g_source_attach (bus_source, self->priv->context); + ++ g_signal_connect (G_OBJECT (bus), "message::element", ++ G_CALLBACK (element_cb), self); + g_signal_connect (G_OBJECT (bus), "message::error", G_CALLBACK (error_cb), + self); + g_signal_connect (G_OBJECT (bus), "message::eos", G_CALLBACK (eos_cb), self); +@@ -1560,6 +1579,7 @@ gst_player_error_get_type (void) + static gsize id = 0; + static const GEnumValue values[] = { + {C_ENUM (GST_PLAYER_ERROR_FAILED), "GST_PLAYER_ERROR_FAILED", "failed"}, ++ {C_ENUM (GST_PLAYER_ERROR_MISSING_PLUGIN), "GST_PLAYER_ERROR_MISSING_PLUGIN", "missing-plugin"}, + {0, NULL, NULL} + }; + +@@ -1577,6 +1597,8 @@ gst_player_error_get_name (GstPlayerError error) + switch (error) { + case GST_PLAYER_ERROR_FAILED: + return "failed"; ++ case GST_PLAYER_ERROR_MISSING_PLUGIN: ++ return "missing-plugin"; + } + + g_assert_not_reached (); +diff --git a/lib/gst/player/gstplayer.h b/lib/gst/player/gstplayer.h +index c438513..35fb5bb 100644 +--- a/lib/gst/player/gstplayer.h ++++ b/lib/gst/player/gstplayer.h +@@ -44,7 +44,8 @@ GType gst_player_error_get_type (void); + #define GST_TYPE_PLAYER_ERROR (gst_player_error_get_type ()) + + typedef enum { +- GST_PLAYER_ERROR_FAILED = 0 ++ GST_PLAYER_ERROR_FAILED = 0, ++ GST_PLAYER_ERROR_MISSING_PLUGIN + } GstPlayerError; + + const gchar *gst_player_error_get_name (GstPlayerError error); +-- +2.1.4 + diff --git a/meta/recipes-multimedia/gstreamer/gst-player/Fix-pause-play.patch b/meta/recipes-multimedia/gstreamer/gst-player/Fix-pause-play.patch new file mode 100644 index 0000000000..783c42ad70 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-player/Fix-pause-play.patch @@ -0,0 +1,107 @@ +Fix pause/play + +The current player state is now notified via the state-changed signal, +and in the GTK UI it was only used to keep track of the desired state. + +This is a backport of upstream commit 738479c7a0. + +Upstream-Status: Backport +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + +--- + gtk/gtk-play.c | 8 ++++++-- + lib/gst/player/gstplayer.c | 12 ------------ + lib/gst/player/gstplayer.h | 2 -- + 3 files changed, 6 insertions(+), 16 deletions(-) + +diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c +index 6e7a098..e2b605a 100644 +--- a/gtk/gtk-play.c ++++ b/gtk/gtk-play.c +@@ -34,6 +34,7 @@ typedef struct + GtkWidget *info_bar; + GtkWidget *volume_button; + gulong seekbar_value_changed_signal_id; ++ gboolean playing; + } GtkPlay; + + /* Compat stubs */ +@@ -118,12 +119,13 @@ play_pause_clicked_cb (GtkButton * button, GtkPlay * play) + { + GtkWidget *image; + +- if (gst_player_is_playing (play->player)) { ++ if (play->playing) { + gst_player_pause (play->player); + image = + gtk_image_new_from_icon_name ("media-playback-start", + GTK_ICON_SIZE_BUTTON); + gtk_button_set_image (GTK_BUTTON (play->play_pause_button), image); ++ play->playing = FALSE; + } else { + gchar *title; + +@@ -136,6 +138,7 @@ play_pause_clicked_cb (GtkButton * button, GtkPlay * play) + title = gst_player_get_uri (play->player); + set_title (play, title); + g_free (title); ++ play->playing = TRUE; + } + } + +@@ -335,7 +338,7 @@ video_dimensions_changed_cb (GstPlayer * unused, gint width, gint height, + static void + eos_cb (GstPlayer * unused, GtkPlay * play) + { +- if (gst_player_is_playing (play->player)) { ++ if (play->playing) { + GList *next = NULL; + gchar *uri; + +@@ -452,6 +455,7 @@ main (gint argc, gchar ** argv) + } + + play.player = gst_player_new (); ++ play.playing = TRUE; + + g_object_set (play.player, "dispatch-to-main-context", TRUE, NULL); + +diff --git a/lib/gst/player/gstplayer.c b/lib/gst/player/gstplayer.c +index 069b284..78e7ba1 100644 +--- a/lib/gst/player/gstplayer.c ++++ b/lib/gst/player/gstplayer.c +@@ -1422,18 +1422,6 @@ gst_player_set_uri (GstPlayer * self, const gchar * val) + g_object_set (self, "uri", val, NULL); + } + +-gboolean +-gst_player_is_playing (GstPlayer * self) +-{ +- gboolean val; +- +- g_return_val_if_fail (GST_IS_PLAYER (self), FALSE); +- +- g_object_get (self, "is-playing", &val, NULL); +- +- return val; +-} +- + GstClockTime + gst_player_get_position (GstPlayer * self) + { +diff --git a/lib/gst/player/gstplayer.h b/lib/gst/player/gstplayer.h +index 6933dd7..35fb5bb 100644 +--- a/lib/gst/player/gstplayer.h ++++ b/lib/gst/player/gstplayer.h +@@ -93,8 +93,6 @@ gchar * gst_player_get_uri (GstPlayer * player); + void gst_player_set_uri (GstPlayer * player, + const gchar * uri); + +-gboolean gst_player_is_playing (GstPlayer * player); +- + GstClockTime gst_player_get_position (GstPlayer * player); + GstClockTime gst_player_get_duration (GstPlayer * player); + +-- +2.1.4 + diff --git a/meta/recipes-multimedia/gstreamer/gst-player/filechooser.patch b/meta/recipes-multimedia/gstreamer/gst-player/filechooser.patch new file mode 100644 index 0000000000..7bf1b034b3 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-player/filechooser.patch @@ -0,0 +1,54 @@ +Upstream-Status: Submitted +Signed-off-by: Ross Burton <ross.burton@intel.com> + +From 43d4b19ab611d844156e26c4840cc54ddb73ae03 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Thu, 26 Feb 2015 17:17:05 +0000 +Subject: [PATCH] gtk-play: show a file chooser if no URIs were passed + +--- + gtk/gtk-play.c | 28 ++++++++++++++++++++++++++-- + 1 file changed, 26 insertions(+), 2 deletions(-) + +diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c +index f015077..9766a72 100644 +--- a/gtk/gtk-play.c ++++ b/gtk/gtk-play.c +@@ -319,8 +319,32 @@ main (gint argc, gchar ** argv) + // FIXME: Add support for playlists and stuff + /* Parse the list of the file names we have to play. */ + if (!file_names) { +- g_print ("Usage: %s FILE(s)|URI(s)\n", APP_NAME); +- return 1; ++ GtkWidget *chooser; ++ int res; ++ ++ chooser = gtk_file_chooser_dialog_new ("Select files to play", NULL, ++ GTK_FILE_CHOOSER_ACTION_OPEN, ++ "_Cancel", GTK_RESPONSE_CANCEL, ++ "_Open", GTK_RESPONSE_ACCEPT, ++ NULL); ++ g_object_set (chooser, ++ "local-only", FALSE, ++ "select-multiple", TRUE, ++ NULL); ++ ++ res = gtk_dialog_run (GTK_DIALOG (chooser)); ++ if (res == GTK_RESPONSE_ACCEPT) { ++ GSList *l; ++ ++ l = gtk_file_chooser_get_uris (GTK_FILE_CHOOSER (chooser)); ++ while (l) { ++ play.uris = g_list_append (play.uris, l->data); ++ l = g_slist_delete_link (l, l); ++ } ++ } else { ++ return 0; ++ } ++ gtk_widget_destroy (chooser); + } else { + guint i; + +-- +1.7.10.4 + diff --git a/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop b/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop new file mode 100644 index 0000000000..9fd207b384 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Media Player +Comment=Basic media player +Icon=audio-player +TryExec=gtk-play +Exec=gtk-play +StartupNotify=true +Terminal=false +Type=Application +Categories=GTK;AudioVideo; diff --git a/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch b/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch new file mode 100644 index 0000000000..2cd18bbc95 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch @@ -0,0 +1,71 @@ +As the rest of Sato is GTK+ 2, patch gtk-play to use GTK+ 2. When the rest of +Sato has been ported to GTK+ 3 this patch can be dropped. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton <ross.burton@intel.com> + + +diff --git a/configure.ac b/configure.ac +index b8af13b..90ab74c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -60,7 +60,7 @@ AC_SUBST(GLIB_PREFIX) + GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-1.0`" + AC_SUBST(GST_PREFIX) + +-PKG_CHECK_MODULES(GTK, [gtk+-3.0], [have_gtk="yes"], [have_gtk="no"]) ++PKG_CHECK_MODULES(GTK, [gtk+-2.0], [have_gtk="yes"], [have_gtk="no"]) + AM_CONDITIONAL(HAVE_GTK, test "x$have_gtk" != "xno") + + GOBJECT_INTROSPECTION_CHECK([1.31.1]) +diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c +index f015077..954d6fb 100644 +--- a/gtk/gtk-play.c ++++ b/gtk/gtk-play.c +@@ -34,6 +34,46 @@ typedef struct + gulong seekbar_value_changed_signal_id; + } GtkPlay; + ++/* Compat stubs */ ++GtkWidget * ++gtk_box_new (GtkOrientation orientation, ++ gint spacing) ++{ ++ switch (orientation) { ++ case GTK_ORIENTATION_HORIZONTAL: ++ return gtk_hbox_new (FALSE, spacing); ++ case GTK_ORIENTATION_VERTICAL: ++ return gtk_vbox_new (FALSE, spacing); ++ } ++} ++ ++GtkWidget* ++gtk_button_new_from_icon_name (const gchar *icon_name, ++ GtkIconSize size) ++{ ++ GtkWidget *button; ++ GtkWidget *image; ++ ++ image = gtk_image_new_from_icon_name (icon_name, size); ++ button = g_object_new (GTK_TYPE_BUTTON, ++ "image", image, ++ NULL); ++ return button; ++} ++ ++GtkWidget * ++gtk_scale_new_with_range (GtkOrientation orientation, ++ gdouble min, ++ gdouble max, ++ gdouble step) ++{ ++ switch (orientation) { ++ case GTK_ORIENTATION_HORIZONTAL: ++ return gtk_hscale_new_with_range (min, max, step); ++ case GTK_ORIENTATION_VERTICAL: ++ return gtk_vscale_new_with_range (min, max, step); ++ } ++} + + static void + set_title (GtkPlay * play, const gchar * title) diff --git a/meta/recipes-multimedia/gstreamer/gst-player_git.bb b/meta/recipes-multimedia/gstreamer/gst-player_git.bb new file mode 100644 index 0000000000..54cfbbc927 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-player_git.bb @@ -0,0 +1,38 @@ +SUMMARY="GStreamer playback helper library and examples" + +LICENSE = "LGPL-2.0+" +LIC_FILES_CHKSUM = "file://lib/gst/player/gstplayer.c;beginline=1;endline=19;md5=03aeca9d8295f811817909075a15ff65" + +DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gtk+" + +SRC_URI = "git://github.com/sdroege/gst-player.git \ + file://filechooser.patch \ + file://gtk2.patch \ + file://Fix-pause-play.patch \ + file://Add-error-signal-emission-for-missing-plugins.patch \ + file://gst-player.desktop" + +SRCREV = "5386c5b984d40ef5434673ed62204e69aaf52645" + +S = "${WORKDIR}/git" + +inherit autotools gtk-doc lib_package pkgconfig + +do_configure_prepend() { + touch ${S}/ChangeLog +} + +EXTRA_OECONF += "ac_cv_path_VALGRIND=no ac_cv_path_GDB=no" + +do_install_append() { + install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop +} + +FILES_${PN}-bin += "${datadir}/applications/*.desktop" + +RDEPENDS_${PN}-bin = "gstreamer1.0-plugins-base-playback" +RRECOMMENDS_${PN}-bin = "gstreamer1.0-plugins-base-meta \ + gstreamer1.0-plugins-good-meta \ + gstreamer1.0-plugins-bad-meta \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-libav", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}" diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb index 495bb17649..af18281715 100644 --- a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ PR = "r8" -PACKAGECONFIG ?= "jpeg \ +PACKAGECONFIG ?= "jpeg v4l \ ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ " @@ -16,7 +16,9 @@ PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" -PACKAGECONFIG[v4l] = "--with-libv4l2,--without-libv4l2,libv4l" +PACKAGECONFIG[v4l] = "--enable-gst_v4l2 --with-gudev,--disable-gst_v4l2 --without-gudev,udev" +# sub-feature of v4l, but control separately since libv4l is not part of oe-core +PACKAGECONFIG[libv4l] = "--with-libv4l2,--without-libv4l2,libv4l" PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2" PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" PACKAGECONFIG[x11] = "--enable-x,--disable-x,virtual/libx11 libxfixes libxdamage" @@ -42,3 +44,4 @@ SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6" SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6" FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas" +FILES_${PN}-equalizer += "${datadir}/gstreamer-0.10/presets/*.prs" diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc index 7bb567866f..cb1be06d09 100644 --- a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc @@ -7,7 +7,7 @@ python split_gstreamer10_packages () { glibdir = d.getVar('libdir', True) do_split_packages(d, glibdir, '^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True) - do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}')) + do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends='') do_split_packages(d, gst_libdir, 'libgst(.*)\.la$', d.expand('${PN}-%s-dev'), 'GStreamer plugin for %s (development files)', extra_depends=d.expand('${PN}-dev')) do_split_packages(d, gst_libdir, 'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer plugin for %s (static development files)', extra_depends=d.expand('${PN}-staticdev')) } @@ -40,8 +40,7 @@ python set_metapkg_rdepends () { d.setVar('DESCRIPTION_' + metapkg, pn + ' meta package') } -# metapkg has runtime dependency on PN -# each plugin depends on PN, plugin-dev on PN-dev, plugin-staticdev on PN-staticdev +# each plugin-dev depends on PN-dev, plugin-staticdev on PN-staticdev # so we need them even when empty (like in gst-plugins-good case) ALLOW_EMPTY_${PN} = "1" ALLOW_EMPTY_${PN}-dev = "1" @@ -51,8 +50,9 @@ PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib" FILES_${PN}-apps = "${bindir}" RDEPENDS_${PN}-apps += "perl" +RRECOMMENDS_${PN} += "${PN}-meta" -FILES_${PN} = "${datadir}/gstreamer-${LIBV}" +FILES_${PN} = "" FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug" FILES_${PN}-glib = "${datadir}/glib-2.0" diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins.inc b/meta/recipes-multimedia/gstreamer/gst-plugins.inc index 26976092d6..c852c53fa9 100644 --- a/meta/recipes-multimedia/gstreamer/gst-plugins.inc +++ b/meta/recipes-multimedia/gstreamer/gst-plugins.inc @@ -19,10 +19,10 @@ require gst-plugins-package.inc PACKAGES_DYNAMIC += "^${PN}-.*" # apply gstreamer hack after Makefile.in.in in source is replaced by our version from -# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed # http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html -oe_runconf_prepend() { +oe_runconf_prepend() { if [ -e ${S}/po/Makefile.in.in ]; then sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in fi -} +} diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb index 8bba8312bc..11b1cfb08d 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.1.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb @@ -3,7 +3,7 @@ include gstreamer1.0-libav.inc LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ - file://gst-libs/ext/libav/LICENSE;md5=df1087a33b5cafe5e70b3452aac81515 \ + file://gst-libs/ext/libav/LICENSE;md5=ea66e97a7ac1db978cf3529068a8c948 \ file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ @@ -13,12 +13,14 @@ SRC_URI = " \ http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \ file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \ " -SRC_URI[md5sum] = "ea2d636c24d7c5ae123967ef22e37c07" -SRC_URI[sha256sum] = "fc125521187fa84f3210269a0eecc51f8a856802f1ca4bb251f118dab90c5a9d" +SRC_URI[md5sum] = "f4922a46adbcbe7bd01331ff5dc7979d" +SRC_URI[sha256sum] = "605c62624604f3bb5c870844cc1f2711779cc533b004c2aa1d8c0d58557afbbc" + LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ --ranlib='${RANLIB}' \ - ${GSTREAMER_1_0_DEBUG}" + ${GSTREAMER_1_0_DEBUG} \ + --cross-prefix='${HOST_PREFIX}'" S = "${WORKDIR}/gst-libav-${PV}" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb index b0e6b2ecb8..bf1b87e6de 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb @@ -18,7 +18,8 @@ SRCREV = "127202d6f65584891dabf92be031f0d170b0e7f1" LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ - ${GSTREAMER_1_0_DEBUG}" + ${GSTREAMER_1_0_DEBUG} \ + --cross-prefix='${HOST_PREFIX}'" do_configure_prepend() { cd ${S} diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb index 931a7fcc96..99c84668ef 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb @@ -6,12 +6,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f" SRC_URI = " \ - git://anongit.freedesktop.org/gstreamer/gst-omx;branch=master \ - file://0001-omx-fixed-type-error-in-printf-call.patch \ + git://anongit.freedesktop.org/gstreamer/gst-omx;branch=master;name=gst-omx \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;branch=master;name=common \ + file://0001-omx-fixed-type-error-in-printf-call.patch \ " + S = "${WORKDIR}/git" -SRCREV = "a2db76b048db278ef0aa798e106b7594264e06c0" +SRCREV_gst-omx = "a2db76b048db278ef0aa798e106b7594264e06c0" +SRCREV_common = "5edcd857b2107cd8b78c16232dd10877513ec157" + +SRCREV_FORMAT = "gst-omx" do_configure_prepend() { cd ${S} diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc index dab0bf54a6..e2752af612 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc @@ -9,7 +9,7 @@ S = "${WORKDIR}/gst-plugins-bad-${PV}" SRC_URI += "file://configure-allow-to-disable-libssh2.patch \ " -inherit gettext +inherit gettext bluetooth # opengl packageconfig factored out to make it easy for distros # and BSP layers to pick either (desktop) opengl, gles2, or no GL @@ -49,7 +49,7 @@ PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" PACKAGECONFIG[schroedinger] = "--enable-schro,--disable-schro,schroedinger" PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2" -PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4" +PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,${BLUEZ}" PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg" PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" @@ -80,6 +80,7 @@ EXTRA_OECONF += " \ --disable-apple_media \ --disable-avc \ --disable-chromaprint \ + --disable-cocoa \ --disable-daala \ --disable-dc1394 \ --disable-direct3d \ @@ -126,6 +127,7 @@ EXTRA_OECONF += " \ --disable-xvid \ --disable-zbar \ ${GSTREAMER_1_0_ORC} \ + ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \ " ARM_INSTRUCTION_SET = "arm" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb index f0116c08a1..59065de811 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.1.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb @@ -7,7 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ SRC_URI += "file://0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch" -SRC_URI[md5sum] = "20cb190b18dc63017326321cdb7c91e5" -SRC_URI[sha256sum] = "0268db2faaf0bb22e5b709a11633abbca4f3d289b1f513bb262d0bf3f53e19ae" +SRC_URI[md5sum] = "e0bb39412cf4a48fe0397bcf3a7cd451" +SRC_URI[sha256sum] = "152fad7250683d72f9deb36c5685428338365fe4a4c87ffe15e38783b14f983c" + S = "${WORKDIR}/gst-plugins-bad-${PV}" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb index 75859f9a89..309505f7db 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb @@ -11,7 +11,6 @@ S = "${WORKDIR}/git" SRCREV = "6e5db57d2446a753aaa76bee268e1f95600b14ce" -PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4" PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc" PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc index 972ff18160..06eac67be7 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc @@ -35,6 +35,6 @@ EXTRA_OECONF += " \ ${GSTREAMER_1_0_ORC} \ " -FILES_${PN} += "${datadir}/gst-plugins-base" +FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" CACHED_CONFIGUREVARS_append_i586 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch new file mode 100644 index 0000000000..51fdc7e177 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch @@ -0,0 +1,57 @@ +From 68fa1b1425ad2c5f7c5013d0943153a8a6d0934e Mon Sep 17 00:00:00 2001 +From: Jian Li <lj.qfy.sh@gmail.com> +Date: Wed, 24 Sep 2014 17:21:02 +0800 +Subject: [PATCH] taglist not send to down stream if all the frame corrupted + +https://bugzilla.gnome.org/show_bug.cgi?id=737246 + +Upstream status: Pending + +Signed-off-by: Jian Li <lj.qfy.sh@gmail.com> +--- + gst-libs/gst/audio/gstaudiodecoder.c | 9 +++++++++ + gst-libs/gst/video/gstvideodecoder.c | 8 ++++++++ + 2 files changed, 17 insertions(+) + +diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c +index 3504678..3d69efe 100644 +--- a/gst-libs/gst/audio/gstaudiodecoder.c ++++ b/gst-libs/gst/audio/gstaudiodecoder.c +@@ -2083,6 +2083,15 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event) + gst_audio_decoder_drain (dec); + GST_AUDIO_DECODER_STREAM_UNLOCK (dec); + ++ /* send taglist if no valid frame is decoded util EOS */ ++ if (dec->priv->taglist && dec->priv->taglist_changed) { ++ GST_DEBUG_OBJECT (dec, "codec tag %" GST_PTR_FORMAT, dec->priv->taglist); ++ if (!gst_tag_list_is_empty (dec->priv->taglist)) ++ gst_audio_decoder_push_event (dec, ++ gst_event_new_tag (gst_tag_list_ref (dec->priv->taglist))); ++ dec->priv->taglist_changed = FALSE; ++ } ++ + /* Forward EOS because no buffer or serialized event will come after + * EOS and nothing could trigger another _finish_frame() call. */ + ret = gst_audio_decoder_push_event (dec, event); +diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c +index dd8abe3..d9bfe4d 100644 +--- a/gst-libs/gst/video/gstvideodecoder.c ++++ b/gst-libs/gst/video/gstvideodecoder.c +@@ -1024,6 +1024,14 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder, + * parent class' ::sink_event() until a later time. + */ + forward_immediate = TRUE; ++ ++ /* send taglist if no valid frame is decoded util EOS */ ++ if (decoder->priv->tags && decoder->priv->tags_changed) { ++ gst_video_decoder_push_event (decoder, ++ gst_event_new_tag (gst_tag_list_ref (decoder->priv->tags))); ++ decoder->priv->tags_changed = FALSE; ++ } ++ + break; + } + case GST_EVENT_GAP: +-- +1.7.9.5 + diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb index 0db42cec94..11cf8b4fde 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb @@ -7,8 +7,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ SRC_URI += "file://do-not-change-eos-event-to-gap-event-if.patch \ file://get-caps-from-src-pad-when-query-caps.patch \ + file://taglist-not-send-to-down-stream-if-all-the-frame-cor.patch \ " -SRC_URI[md5sum] = "a825628225bd0a58c0df87cdd2a5db91" -SRC_URI[sha256sum] = "aea9e25be6691bd3cc0785d005b2b5d70ce313a2c897901680a3f7e7cab5a499" +SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e" +SRC_URI[sha256sum] = "77bd8199e7a312d3d71de9b7ddf761a3b78560a2c2a80829d0815ca39cbd551d" + S = "${WORKDIR}/gst-plugins-base-${PV}" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc index b33ab2b705..37217f004d 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc @@ -55,3 +55,4 @@ EXTRA_OECONF += " \ ${GSTREAMER_1_0_ORC} \ " +FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch new file mode 100755 index 0000000000..7f94f50760 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch @@ -0,0 +1,25 @@ +commit d71d74daac8ed54156ed103958ab455c63c72b0e +Author: Song Bing <b06498@freescale.com> +Date: Mon Nov 10 11:25:47 2014 +0800 + +[asteriskh263] decrease the rank as we havn't this kind of decoder. + +Decrease the rank as we havn't this kind of decoder. + +https://bugzilla.gnome.org/show_bug.cgi?id=739935 + +Upstream Status: Pending + +Signed-off-by: Song Bing <b06498@freescale.com> + +diff --git a/gst/rtp/gstasteriskh263.c b/gst/rtp/gstasteriskh263.c +index a01fbc8..8fa3194 100644 +--- a/gst/rtp/gstasteriskh263.c ++++ b/gst/rtp/gstasteriskh263.c +@@ -226,5 +226,5 @@ gboolean + gst_asteriskh263_plugin_init (GstPlugin * plugin) + { + return gst_element_register (plugin, "asteriskh263", +- GST_RANK_SECONDARY, GST_TYPE_ASTERISK_H263); ++ GST_RANK_SECONDARY - 1, GST_TYPE_ASTERISK_H263); + } diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb index 441dd51e39..943ab60397 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.1.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb @@ -5,8 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" SRC_URI += "file://0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch \ + file://decrease_asteriskh263_rank.patch \ " -SRC_URI[md5sum] = "eb3a3296b2f6009def1f5a09590ce767" -SRC_URI[sha256sum] = "8559d4270065b30ed5c49b826e1b7a3a2bd5ee9a340ae745a2ae3f9718e4c637" -S = "${WORKDIR}/gst-plugins-good-${PV}" +SRC_URI[md5sum] = "eaf1a6daf73749bc423feac301d60038" +SRC_URI[sha256sum] = "79b1b5f3f7bcaa8a615202eb5e176121eeb8336960f70687e536ad78dbc7e641" +S = "${WORKDIR}/gst-plugins-good-${PV}" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb index 6d63ba62d4..25cb28c060 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.1.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb @@ -2,7 +2,9 @@ include gstreamer1.0-plugins-ugly.inc LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 " -SRC_URI[md5sum] = "316974af949ca4654efee704a0164076" -SRC_URI[sha256sum] = "25440435ac4ed795d213f2420a0e7355e4a2e2e76d1f9d020b2073f815e8b071" + +SRC_URI[md5sum] = "6954beed7bb9a93e426dee543ff46393" +SRC_URI[sha256sum] = "5cd5e81cf618944f4dc935f1669b2125e8bb2fe9cc7dc8dc15b72237aca49067" + S = "${WORKDIR}/gst-plugins-ugly-${PV}" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.1.bb deleted file mode 100644 index 1f34be0e8f..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.1.bb +++ /dev/null @@ -1,6 +0,0 @@ -include gstreamer1.0-rtsp-server.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" - -SRC_URI[md5sum] = "e39f8643eb363611c342d87088a29aa0" -SRC_URI[sha256sum] = "10aeacc774e99d81607aeb2748c0a1c6736425b8ae3a9caf8db3cd0c4a08d06e" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb new file mode 100644 index 0000000000..bb9b42b53f --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb @@ -0,0 +1,6 @@ +include gstreamer1.0-rtsp-server.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" + +SRC_URI[md5sum] = "a9f9b8899ec7ab33663cda7627db40d3" +SRC_URI[sha256sum] = "3089254bd31b7c1f1cf2c034a3b3551f92878f9e3cab65cef3a901a04c0f1d37" diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch new file mode 100644 index 0000000000..8213c4b8b5 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch @@ -0,0 +1,55 @@ +From 81fecd367b016e5ac4fb0c04b84da5c474f30da6 Mon Sep 17 00:00:00 2001 +From: Peter Urbanec <git.user@urbanec.net> +Date: Fri, 27 Feb 2015 01:16:58 +1100 +Subject: [PATCH 1/1] gstinfo: Shorten __FILE__ on all platforms. + +This is useful not only for MSVC, but also with gcc/Linux when doing +cross-compilation builds and out-of-tree builds. + +Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=745213] + +Signed-off-by: Peter Urbanec <git.user@urbanec.net> +--- + gst/gstinfo.c | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/gst/gstinfo.c b/gst/gstinfo.c +index b2a3005..8b61d09 100644 +--- a/gst/gstinfo.c ++++ b/gst/gstinfo.c +@@ -444,7 +444,6 @@ gst_debug_log (GstDebugCategory * category, GstDebugLevel level, + va_end (var_args); + } + +-#ifdef G_OS_WIN32 + /* based on g_basename(), which we can't use because it was deprecated */ + static inline const gchar * + gst_path_basename (const gchar * file_name) +@@ -467,7 +466,6 @@ gst_path_basename (const gchar * file_name) + + return file_name; + } +-#endif + + /** + * gst_debug_log_valist: +@@ -497,12 +495,11 @@ gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level, + g_return_if_fail (function != NULL); + g_return_if_fail (format != NULL); + +- /* The predefined macro __FILE__ is always the exact path given to the +- * compiler with MSVC, which may or may not be the basename. We work +- * around it at runtime to improve the readability. */ +-#ifdef G_OS_WIN32 ++ /* The predefined macro __FILE__ can be an absolute path in some build ++ * environments, such as MSVC or out-of-tree cross-compiles. This may ++ * be significantly longer than the filename. We work around it at ++ * runtime to improve the readability. */ + file = gst_path_basename (file); +-#endif + + message.message = NULL; + message.format = format; +-- +2.3.0 + diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb index 56fc4f2083..0a2ce86343 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.1.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb @@ -6,8 +6,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ SRC_URI = " \ http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ file://0001-Fix-crash-with-gst-inspect.patch \ + file://0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch \ " -SRC_URI[md5sum] = "bd0938d680d657249b885162f310702d" -SRC_URI[sha256sum] = "5638f75003282135815c0077d491da11e9a884ad91d4ba6ab3cc78bae0fb452e" +SRC_URI[md5sum] = "88a9289c64a4950ebb4f544980234289" +SRC_URI[sha256sum] = "40801aa7f979024526258a0e94707ba42b8ab6f7d2206e56adbc4433155cb0ae" + S = "${WORKDIR}/gstreamer-${PV}" diff --git a/meta/recipes-multimedia/libav/libav.inc b/meta/recipes-multimedia/libav/libav.inc index 5c327df386..cac836fc3f 100644 --- a/meta/recipes-multimedia/libav/libav.inc +++ b/meta/recipes-multimedia/libav/libav.inc @@ -10,12 +10,19 @@ SECTION = "libs" LICENSE = "GPLv2+" LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ + file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI = "http://libav.org/releases/${BP}.tar.xz" + # Provides ffmpeg compat, see http://libav.org/about.html PROVIDES = "ffmpeg" ARM_INSTRUCTION_SET = "arm" -DEPENDS = "zlib libogg yasm-native" +DEPENDS = "alsa-lib zlib libogg yasm-native" INC_PR = "r8" @@ -40,6 +47,7 @@ PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" PACKAGECONFIG[schroedinger] = "--enable-libschroedinger,--disable-libschroedinger,schroedinger" PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex" PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora" +PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" PACKAGECONFIG[x11] = "--enable-x11grab,--disable-x11grab,virtual/libx11 libxfixes libxext xproto virtual/libsdl" PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264" @@ -85,10 +93,8 @@ do_install_append() { install -m 0644 ${S}/libavfilter/*.h ${D}${includedir}/libavfilter/ } -FFMPEG_LIBS = "libavcodec libavdevice libavformat \ - libavutil libpostproc libswscale libavfilter" - PACKAGES += "${PN}-vhook-dbg ${PN}-vhook ffmpeg-x264-presets" +PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util)|swscale).*" RSUGGESTS_${PN} = "mplayer" FILES_${PN} = "${bindir}" @@ -140,5 +146,3 @@ python populate_packages_prepend() { for pkg in pkgs: d.appendVar('INSANE_SKIP_%s' % pkg, ' textrel') } - -PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util)|postproc|swscale).*" diff --git a/meta/recipes-multimedia/libav/libav/0001-configure-enable-pic-for-AArch64.patch b/meta/recipes-multimedia/libav/libav/0001-configure-enable-pic-for-AArch64.patch deleted file mode 100644 index d9b22b9b6a..0000000000 --- a/meta/recipes-multimedia/libav/libav/0001-configure-enable-pic-for-AArch64.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 58db99e98f615d79ea90cac8f4bcf11c94e3e7c7 Mon Sep 17 00:00:00 2001 -From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> -Date: Thu, 10 Jan 2013 12:42:19 +0100 -Subject: [PATCH] configure: enable pic for AArch64 - -Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> - -Upstream-Status: Backport ---- - configure | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- git.orig/configure -+++ git/configure -@@ -2393,7 +2393,7 @@ check_host_cflags -std=c99 - check_host_cflags -Wall - - case "$arch" in -- alpha|ia64|mips|parisc|ppc|sparc) -+ alpha|ia64|mips|parisc|ppc|sparc|aarch64) - spic=$shared - ;; - x86) diff --git a/meta/recipes-multimedia/libav/libav_0.8.15.bb b/meta/recipes-multimedia/libav/libav_0.8.15.bb deleted file mode 100644 index 18dc49a12e..0000000000 --- a/meta/recipes-multimedia/libav/libav_0.8.15.bb +++ /dev/null @@ -1,18 +0,0 @@ -require libav.inc - -SRC_URI = "http://libav.org/releases/${BP}.tar.xz \ - file://0001-configure-enable-pic-for-AArch64.patch" - -SRC_URI[md5sum] = "e483ea8f482b5ecd65ee1d09251b0a5b" -SRC_URI[sha256sum] = "495789ec547e93632937f0f36b06f4dd3180bc61518181f124af6746c6218710" - -LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \ - file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" - -PROVIDES += "libpostproc" - -EXTRA_OECONF += " \ - --enable-postproc \ -" diff --git a/meta/recipes-multimedia/libav/libav_9.16.bb b/meta/recipes-multimedia/libav/libav_9.16.bb index d0468859a9..79ff3f84d1 100644 --- a/meta/recipes-multimedia/libav/libav_9.16.bb +++ b/meta/recipes-multimedia/libav/libav_9.16.bb @@ -1,13 +1,4 @@ require libav.inc -LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ - file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" - -SRC_URI = "http://libav.org/releases/${BP}.tar.xz" - SRC_URI[md5sum] = "7b44b75cec24b8e7545e5029e76917e0" SRC_URI[sha256sum] = "ca846473b0b8ed8e3404c52e5e92df6d35cb5fa487eec498525de3ffda4367a0" - -DEFAULT_PREFERENCE = "-1" diff --git a/meta/recipes-multimedia/libav/libpostproc_git.bb b/meta/recipes-multimedia/libav/libpostproc_git.bb new file mode 100644 index 0000000000..88891db09b --- /dev/null +++ b/meta/recipes-multimedia/libav/libpostproc_git.bb @@ -0,0 +1,46 @@ +SUMMARY = "FFmpeg derived postprocessing library" +HOMEPAGE = "http://git.videolan.org/?p=libpostproc.git;a=summary" +SECTION = "libs" +DEPENDS = "libav" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +# because it depends on libav which has commercial flag +LICENSE_FLAGS = "commercial" + +PV = "52.3.0+git${SRCPV}" + +SRCREV = "811db3b957dfde24aef2d0f82e297e5bf552d873" +SRC_URI = "git://github.com/lu-zero/postproc;protocol=https" + +S = "${WORKDIR}/git" + +inherit autotools lib_package pkgconfig + +FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math" +BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" + +EXTRA_FFCONF_armv7a = "--cpu=cortex-a8" +EXTRA_FFCONF ?= "" + +EXTRA_OECONF = " \ + --enable-shared \ + --enable-pthreads \ + --enable-gpl \ + --enable-postproc \ + \ + --cross-prefix=${TARGET_PREFIX} \ + --prefix=${prefix} \ + \ + --arch=${TARGET_ARCH} \ + --target-os="linux" \ + --enable-cross-compile \ + --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ + --extra-ldflags="${TARGET_LDFLAGS}" \ + --sysroot="${STAGING_DIR_TARGET}" \ + ${EXTRA_FFCONF} \ +" + +do_configure() { + ${S}/configure ${EXTRA_OECONF} +} diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.13.bb b/meta/recipes-multimedia/libpng/libpng_1.6.13.bb deleted file mode 100644 index 0c6fd1f4f3..0000000000 --- a/meta/recipes-multimedia/libpng/libpng_1.6.13.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "PNG image format decoding library" -HOMEPAGE = "http://www.libpng.org/" -SECTION = "libs" -LICENSE = "Libpng" -LIC_FILES_CHKSUM = "file://LICENSE;md5=46401ee4b225b9ec066cb96cf1025c0f \ - file://png.h;endline=15;md5=8167a17735fc618d1df109f8b0f839a6 \ - file://png.h;beginline=229;endline=343;md5=5cdf8564a14e2f00339e4437a83b4913" -DEPENDS = "zlib" -LIBV = "16" - -SRC_URI = "${SOURCEFORGE_MIRROR}/project/libpng/libpng${LIBV}/${PV}/libpng-${PV}.tar.xz \ - " - -SRC_URI[md5sum] = "9822c25466f060142359f80ed142c9e5" -SRC_URI[sha256sum] = "d9c8ce54a5fc8052ed794ca65b553384a74c0608b09ae163cbbb07176018e625" - -BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config" - -inherit autotools binconfig-disabled pkgconfig - -# Work around missing symbols -EXTRA_OECONF_append_arm = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off" ,d)}" - -PACKAGES =+ "${PN}-tools" - -FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.16.bb b/meta/recipes-multimedia/libpng/libpng_1.6.16.bb new file mode 100644 index 0000000000..a8677e8a37 --- /dev/null +++ b/meta/recipes-multimedia/libpng/libpng_1.6.16.bb @@ -0,0 +1,28 @@ +SUMMARY = "PNG image format decoding library" +HOMEPAGE = "http://www.libpng.org/" +SECTION = "libs" +LICENSE = "Libpng" +LIC_FILES_CHKSUM = "file://LICENSE;md5=76dbddb73e547d9b3fa16909a98049c0 \ + file://png.h;endline=15;md5=fd8f7ae7b090a168a9e023d0a5d68a3e \ + file://png.h;beginline=229;endline=343;md5=44075eedf4763ada355d8f60ac3296c9" +DEPENDS = "zlib" +LIBV = "16" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/libpng/libpng${LIBV}/${PV}/libpng-${PV}.tar.xz \ + " + +SRC_URI[md5sum] = "23b7286b5d4a86de950fd2ffc5cac742" +SRC_URI[sha256sum] = "42f754df633e4e700544e5913cbe2fd4928bbfccdc07708a5cf84e59827fbe60" + +BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config" + +inherit autotools binconfig-disabled pkgconfig + +# Work around missing symbols +EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off" ,d)}" + +PACKAGES =+ "${PN}-tools" + +FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-multimedia/pulseaudio/files/0001-libatomic_ops-Aarch64-basic-port.patch b/meta/recipes-multimedia/pulseaudio/files/0001-libatomic_ops-Aarch64-basic-port.patch new file mode 100644 index 0000000000..a563b8b022 --- /dev/null +++ b/meta/recipes-multimedia/pulseaudio/files/0001-libatomic_ops-Aarch64-basic-port.patch @@ -0,0 +1,239 @@ +From aac120d778ae5fc619b2fb8ef18ea18d3d5d20cc Mon Sep 17 00:00:00 2001 +From: Yvan Roux <yvan.roux@linaro.org> +Date: Wed, 23 Jan 2013 17:14:16 +0100 +Subject: [PATCH] Aarch64 basic port + +Adapted-for-OpenEmbedded-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> + + +Upstream-Status: Backport + +It is original from +https://github.com/ivmai/libatomic_ops/commit/cbbf86330fcb600cfe0f895cb970d922456005d6 + +Signed-off-by: Kai Kang <kai.kang@windriver.com> +--- + src/atomic_ops.h | 4 + src/atomic_ops/sysdeps/Makefile.am | 1 + src/atomic_ops/sysdeps/gcc/aarch64.h | 184 +++++++++++++++++++++++++++++++++++ + 3 files changed, 189 insertions(+) + create mode 100644 src/atomic_ops/sysdeps/gcc/aarch64.h + +--- libatomic_ops-7.2.orig/src/atomic_ops.h ++++ libatomic_ops-7.2/src/atomic_ops.h +@@ -242,10 +242,14 @@ + # endif /* __m68k__ */ + # if defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) \ + || defined(__powerpc64__) || defined(__ppc64__) + # include "atomic_ops/sysdeps/gcc/powerpc.h" + # endif /* __powerpc__ */ ++# if defined(__aarch64__) ++# include "atomic_ops/sysdeps/gcc/aarch64.h" ++# define AO_CAN_EMUL_CAS ++# endif /* __aarch64__ */ + # if defined(__arm__) && !defined(AO_USE_PTHREAD_DEFS) + # include "atomic_ops/sysdeps/gcc/arm.h" + # define AO_CAN_EMUL_CAS + # endif /* __arm__ */ + # if defined(__cris__) || defined(CRIS) +--- libatomic_ops-7.2.orig/src/atomic_ops/sysdeps/Makefile.am ++++ libatomic_ops-7.2/src/atomic_ops/sysdeps/Makefile.am +@@ -24,10 +24,11 @@ nobase_sysdep_HEADERS= generic_pthread.h + standard_ao_double_t.h \ + README \ + \ + armcc/arm_v6.h \ + \ ++ gcc/aarch64.h \ + gcc/alpha.h gcc/arm.h gcc/avr32.h gcc/cris.h \ + gcc/hexagon.h gcc/hppa.h gcc/ia64.h gcc/m68k.h \ + gcc/mips.h gcc/powerpc.h gcc/s390.h \ + gcc/sh.h gcc/sparc.h gcc/x86.h gcc/x86_64.h \ + \ +--- /dev/null ++++ libatomic_ops-7.2/src/atomic_ops/sysdeps/gcc/aarch64.h +@@ -0,0 +1,184 @@ ++/* ++ * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved. ++ * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved. ++ * Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved. ++ * ++ * ++ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED ++ * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. ++ * ++ * Permission is hereby granted to use or copy this program ++ * for any purpose, provided the above notices are retained on all copies. ++ * Permission to modify the code and to distribute modified code is granted, ++ * provided the above notices are retained, and a notice that the code was ++ * modified is included with the above copyright notice. ++ * ++ */ ++ ++#include "../read_ordered.h" ++ ++#include "../test_and_set_t_is_ao_t.h" ++ ++AO_INLINE void ++AO_nop_full(void) ++{ ++# ifndef AO_UNIPROCESSOR ++__sync_synchronize (); ++# endif ++} ++#define AO_HAVE_nop_full ++ ++AO_INLINE AO_t ++AO_load(const volatile AO_t *addr) ++{ ++ return __atomic_load_n (addr, __ATOMIC_RELAXED); ++} ++#define AO_HAVE_load ++ ++AO_INLINE AO_t ++AO_load_acquire(const volatile AO_t *addr) ++{ ++ return __atomic_load_n (addr, __ATOMIC_ACQUIRE); ++} ++#define AO_HAVE_load_acquire ++ ++AO_INLINE void ++ AO_store(volatile AO_t *addr, AO_t value) ++{ ++ __atomic_store_n(addr, value, __ATOMIC_RELAXED); ++} ++#define AO_HAVE_store ++ ++AO_INLINE void ++ AO_store_release(volatile AO_t *addr, AO_t value) ++{ ++ __atomic_store_n(addr, value, __ATOMIC_RELEASE); ++} ++#define AO_HAVE_store_release ++ ++AO_INLINE AO_TS_VAL_t ++AO_test_and_set(volatile AO_TS_t *addr) ++{ ++ return __atomic_test_and_set(addr, __ATOMIC_RELAXED); ++} ++# define AO_HAVE_test_and_set ++ ++AO_INLINE AO_TS_VAL_t ++AO_test_and_set_acquire(volatile AO_TS_t *addr) ++{ ++ return __atomic_test_and_set(addr, __ATOMIC_ACQUIRE); ++} ++# define AO_HAVE_test_and_set_acquire ++ ++AO_INLINE AO_TS_VAL_t ++AO_test_and_set_release(volatile AO_TS_t *addr) ++{ ++ return __atomic_test_and_set(addr, __ATOMIC_RELEASE); ++} ++# define AO_HAVE_test_and_set_release ++ ++AO_INLINE AO_TS_VAL_t ++AO_test_and_set_full(volatile AO_TS_t *addr) ++{ ++ return __atomic_test_and_set(addr, __ATOMIC_SEQ_CST); ++} ++# define AO_HAVE_test_and_set_full ++ ++AO_INLINE AO_t ++AO_fetch_and_add(volatile AO_t *p, AO_t incr) ++{ ++ return __atomic_fetch_add(p, incr, __ATOMIC_RELAXED); ++} ++#define AO_HAVE_fetch_and_add ++ ++AO_INLINE AO_t ++AO_fetch_and_add_acquire(volatile AO_t *p, AO_t incr) ++{ ++ return __atomic_fetch_add(p, incr, __ATOMIC_ACQUIRE); ++} ++#define AO_HAVE_fetch_and_add_acquire ++ ++AO_INLINE AO_t ++AO_fetch_and_add_release(volatile AO_t *p, AO_t incr) ++{ ++ return __atomic_fetch_add(p, incr, __ATOMIC_RELEASE); ++} ++#define AO_HAVE_fetch_and_add_release ++ ++AO_INLINE AO_t ++AO_fetch_and_add_full(volatile AO_t *p, AO_t incr) ++{ ++ return __atomic_fetch_add(p, incr, __ATOMIC_SEQ_CST); ++} ++#define AO_HAVE_fetch_and_add_full ++ ++AO_INLINE AO_t ++AO_fetch_and_add1(volatile AO_t *p) ++{ ++ return __atomic_fetch_add(p, 1, __ATOMIC_RELAXED); ++} ++#define AO_HAVE_fetch_and_add1 ++ ++AO_INLINE AO_t ++AO_fetch_and_add1_acquire(volatile AO_t *p) ++{ ++ return __atomic_fetch_add(p, 1, __ATOMIC_ACQUIRE); ++} ++#define AO_HAVE_fetch_and_add1_acquire ++ ++AO_INLINE AO_t ++AO_fetch_and_add1_release(volatile AO_t *p) ++{ ++ return __atomic_fetch_add(p, 1, __ATOMIC_RELEASE); ++} ++#define AO_HAVE_fetch_and_add1_release ++ ++AO_INLINE AO_t ++AO_fetch_and_add1_full(volatile AO_t *p) ++{ ++ return __atomic_fetch_add(p, 1, __ATOMIC_SEQ_CST); ++} ++#define AO_HAVE_fetch_and_add1_full ++ ++AO_INLINE AO_t ++AO_fetch_and_sub1(volatile AO_t *p) ++{ ++ return __atomic_fetch_sub(p, 1, __ATOMIC_RELAXED); ++} ++#define AO_HAVE_fetch_and_sub1 ++ ++AO_INLINE AO_t ++AO_fetch_and_sub1_acquire(volatile AO_t *p) ++{ ++ return __atomic_fetch_sub(p, 1, __ATOMIC_ACQUIRE); ++} ++#define AO_HAVE_fetch_and_sub1_acquire ++ ++AO_INLINE AO_t ++AO_fetch_and_sub1_release(volatile AO_t *p) ++{ ++ return __atomic_fetch_sub(p, 1, __ATOMIC_RELEASE); ++} ++#define AO_HAVE_fetch_and_sub1_release ++ ++AO_INLINE AO_t ++AO_fetch_and_sub1_full(volatile AO_t *p) ++{ ++ return __atomic_fetch_sub(p, 1, __ATOMIC_SEQ_CST); ++} ++#define AO_HAVE_fetch_and_sub1_full ++ ++/* Returns nonzero if the comparison succeeded. */ ++AO_INLINE int ++AO_compare_and_swap(volatile AO_t *addr, AO_t old_val, AO_t new_val) ++{ ++ return __sync_bool_compare_and_swap(addr, old_val, new_val); ++} ++# define AO_HAVE_compare_and_swap ++ ++AO_INLINE AO_t ++AO_fetch_compare_and_swap(volatile AO_t *addr, AO_t old_val, AO_t new_val) ++{ ++ return __sync_val_compare_and_swap(addr, old_val, new_val); ++} ++# define AO_HAVE_fetch_compare_and_swap diff --git a/meta/recipes-multimedia/pulseaudio/libatomics-ops_7.2.bb b/meta/recipes-multimedia/pulseaudio/libatomics-ops_7.2.bb index 4632d240d2..5a582287b5 100644 --- a/meta/recipes-multimedia/pulseaudio/libatomics-ops_7.2.bb +++ b/meta/recipes-multimedia/pulseaudio/libatomics-ops_7.2.bb @@ -9,6 +9,7 @@ LIC_FILES_CHKSUM = "file://doc/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ PR = "r1" SRC_URI = "http://www.hpl.hp.com/research/linux/atomic_ops/download/libatomic_ops-${PV}.tar.gz \ + file://0001-libatomic_ops-Aarch64-basic-port.patch \ " SRC_URI[md5sum] = "890acdc83a7cd10e2e9536062d3741c8" diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc index db144a95dd..d6ddc3b609 100644 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc +++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc @@ -5,14 +5,14 @@ SECTION = "libs/multimedia" LICENSE = "GPLv2+ & LGPLv2.1" LIC_FILES_CHKSUM = "file://GPL;md5=4325afd396febcb659c36b49533135d4 \ file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://src/pulsecore/resampler.h;beginline=4;endline=23;md5=c3d539b93f8c82a1780bfa3cfa544a95" + file://src/pulsecore/resampler.h;beginline=4;endline=21;md5=09794012ae16912c0270f3280cc8ff84" -DEPENDS = "libatomics-ops liboil libsamplerate0 libsndfile1 libtool" +DEPENDS = "libatomics-ops liboil libsndfile1 libtool" # optional DEPENDS += "udev alsa-lib glib-2.0 dbus gconf" DEPENDS += "json-c gdbm speex libxml-parser-perl-native libcap" -inherit autotools pkgconfig useradd gettext perlnative +inherit autotools pkgconfig useradd gettext perlnative bluetooth systemd # *.desktop rules wont be generated during configure and build will fail # if using --disable-nls @@ -27,18 +27,20 @@ EXTRA_OECONF = "\ --disable-xen \ --with-database=simple \ --without-fftw \ + --without-zsh-completion-dir \ --with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d \ ac_cv_header_valgrind_memcheck_h=no \ " -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez4', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', '3g', 'ofono', '', d)}" PACKAGECONFIG[bluez4] = "--enable-bluez4,--disable-bluez4,bluez4 sbc" PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5 sbc" +PACKAGECONFIG[ofono] = "--enable-bluez5-ofono-headset,--disable-bluez5-ofono-headset,ofono" PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3" -PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" +PACKAGECONFIG[systemd] = "--enable-systemd-daemon --enable-systemd-login --enable-systemd-journal,--disable-systemd-daemon --disable-systemd-login --disable-systemd-journal,systemd" PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxtst libice libsm libxcb" PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi" PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" @@ -57,10 +59,6 @@ OE_LT_RPATH_ALLOW[export]="1" do_install_append() { install -d ${D}${sysconfdir}/default/volatiles install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/volatiles.04_pulse - - if [ "x${TARGET_PFPU}" = "xsoft" ] ; then - sed -i -e s:\;\ resample-method\ =\ sinc-fastest:resample-method\ =\ trivial: ${D}${sysconfdir}/pulse/daemon.conf - fi } USERADD_PACKAGES = "pulseaudio-server" @@ -79,11 +77,15 @@ PACKAGES =+ "libpulsecore libpulsecommon libpulse libpulse-simple libpulse-mainl #upgrade path: RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf" -PACKAGES_DYNAMIC += "^pulseaudio-lib.* ^pulseaudio-module.* ^libpulse-lib.* ^libpulse-module.* " +PACKAGES_DYNAMIC += "^pulseaudio-lib-.* ^pulseaudio-module-.*" FILES_libpulsecore = "${libdir}/libpulsecore*.so" FILES_libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so" -FILES_libpulse = "${libdir}/libpulse.so.*" + +# client.conf configures the behaviour of libpulse, so it belongs in the same +# package. +FILES_libpulse = "${libdir}/libpulse.so.* ${sysconfdir}/pulse/client.conf" + FILES_libpulse-simple = "${libdir}/libpulse-simple.so.*" FILES_libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*" @@ -93,15 +95,21 @@ FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir} FILES_${PN}-conf = "${sysconfdir}" FILES_${PN}-bin += "${sysconfdir}/default/volatiles/volatiles.04_pulse" FILES_${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules" + +#SYSTEMD_PACKAGES = "${PN}-server" +SYSTEMD_SERVICE_${PN}-server = "pulseaudio.service" + FILES_${PN}-misc = "${bindir}/* ${libdir}/pulseaudio/libpulsedsp.so" # Allow the pulseaudio package to be created empty as a placeholder (-dbg and -dev depend on it) ALLOW_EMPTY_${PN} = "1" +CONFFILES_libpulse = "${sysconfdir}/pulse/client.conf" + CONFFILES_pulseaudio-server = "\ ${sysconfdir}/pulse/default.pa \ ${sysconfdir}/pulse/daemon.conf \ - ${sysconfdir}/pulse/client.conf \ + ${sysconfdir}/pulse/system.pa \ " pkg_postinst_${PN}-server() { diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch deleted file mode 100644 index 467cd2cbd0..0000000000 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 002b16f0f2176b4c685e210e335bf69c02563ede Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Sat, 22 Feb 2014 18:03:10 +0100 -Subject: [PATCH] configure.ac: Check only for libsystemd not libsystemd-login - -* they were merged into libsystemd in systemd-209 - -Upstream-Status: Pending (it would need to be conditional on systemd version for upstream to accept this) - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 388fae2..fff7a83 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1160,7 +1160,7 @@ AC_ARG_ENABLE([systemd], - AS_HELP_STRING([--disable-systemd],[Disable optional systemd support])) - - AS_IF([test "x$enable_systemd" != "xno"], -- [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd-login ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)], -+ [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)], - HAVE_SYSTEMD=0) - - AS_IF([test "x$enable_systemd" = "xyes" && test "x$HAVE_SYSTEMD" = "x0"], --- -1.8.5.3 - diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/CVE-2014-3970.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/CVE-2014-3970.patch deleted file mode 100644 index d5f33dc42e..0000000000 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio/CVE-2014-3970.patch +++ /dev/null @@ -1,52 +0,0 @@ -Upstream-Status: Backport - -commit 26b9d22dd24c17eb118d0205bf7b02b75d435e3c upstream - -rtp-recv: fix crash on empty UDP packets (CVE-2014-3970) - -On FIONREAD returning 0 bytes, we cannot return success, as the caller -(rtpoll_work_cb in module-rtp-recv.c) would then try to -pa_memblock_unref(chunk.memblock) and, because memblock is NULL, trigger -an assertion. - -Also we have to read out the possible empty packet from the socket, so -that the kernel doesn't tell us again and again about it. - -Signed-off-by: Alexander E. Patrakov <patrakov@gmail.com> - -diff --git a/src/modules/rtp/rtp.c b/src/modules/rtp/rtp.c -index 9195493..c45981e 100644 ---- a/src/modules/rtp/rtp.c -+++ b/src/modules/rtp/rtp.c -@@ -182,8 +182,29 @@ int pa_rtp_recv(pa_rtp_context *c, pa_memchunk *chunk, pa_mempool *pool, struct - goto fail; - } - -- if (size <= 0) -- return 0; -+ if (size <= 0) { -+ /* size can be 0 due to any of the following reasons: -+ * -+ * 1. Somebody sent us a perfectly valid zero-length UDP packet. -+ * 2. Somebody sent us a UDP packet with a bad CRC. -+ * -+ * It is unknown whether size can actually be less than zero. -+ * -+ * In the first case, the packet has to be read out, otherwise the -+ * kernel will tell us again and again about it, thus preventing -+ * reception of any further packets. So let's just read it out -+ * now and discard it later, when comparing the number of bytes -+ * received (0) with the number of bytes wanted (1, see below). -+ * -+ * In the second case, recvmsg() will fail, thus allowing us to -+ * return the error. -+ * -+ * Just to avoid passing zero-sized memchunks and NULL pointers to -+ * recvmsg(), let's force allocation of at least one byte by setting -+ * size to 1. -+ */ -+ size = 1; -+ } - - if (c->memchunk.length < (unsigned) size) { - size_t l; diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb deleted file mode 100644 index 99f0ef3a46..0000000000 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -require pulseaudio.inc - -SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-${PV}.tar.xz \ - file://0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch \ - file://volatiles.04_pulse \ - file://CVE-2014-3970.patch \ -" -SRC_URI[md5sum] = "c43749838612f4860465e83ed62ca38e" -SRC_URI[sha256sum] = "99c13a8b1249ddbd724f195579df79484e9af6418cecf6a15f003a7f36caf939" - -do_compile_prepend() { - mkdir -p ${S}/libltdl - cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl -} diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb new file mode 100644 index 0000000000..91027bf654 --- /dev/null +++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_6.0.bb @@ -0,0 +1,12 @@ +require pulseaudio.inc + +SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ + file://volatiles.04_pulse \ +" +SRC_URI[md5sum] = "b691e83b7434c678dffacfa3a027750e" +SRC_URI[sha256sum] = "b50640e0b80b1607600accfad2e45aabb79d379bf6354c9671efa2065477f6f6" + +do_compile_prepend() { + mkdir -p ${S}/libltdl + cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl +} diff --git a/meta/recipes-multimedia/sbc/sbc_1.2.bb b/meta/recipes-multimedia/sbc/sbc_1.3.bb index 9cdf01bb74..2d7f31bc1b 100644 --- a/meta/recipes-multimedia/sbc/sbc_1.2.bb +++ b/meta/recipes-multimedia/sbc/sbc_1.3.bb @@ -10,7 +10,7 @@ DEPENDS = "libsndfile1" SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/${BP}.tar.xz" -SRC_URI[md5sum] = "ec65c444ad4c32aa85702641045b19e9" -SRC_URI[sha256sum] = "c2f01ea54f7473704825113a9cdd46a23e67c650eff575f0670c3d9d66c4a5dc" +SRC_URI[md5sum] = "2d8b7841f2c11ab287718d562f2b981c" +SRC_URI[sha256sum] = "e61022cf576f14190241e7071753fdacdce5d1dea89ffd704110fc50be689309" inherit autotools pkgconfig diff --git a/meta/recipes-multimedia/speex/speex_1.2rc1.bb b/meta/recipes-multimedia/speex/speex_1.2rc1.bb index 9fd88a39f3..5ff50b7383 100644 --- a/meta/recipes-multimedia/speex/speex_1.2rc1.bb +++ b/meta/recipes-multimedia/speex/speex_1.2rc1.bb @@ -14,8 +14,6 @@ SRC_URI = "http://downloads.us.xiph.org/releases/speex/speex-${PV}.tar.gz" SRC_URI[md5sum] = "c4438b22c08e5811ff10e2b06ee9b9ae" SRC_URI[sha256sum] = "342f30dc57bd4a6dad41398365baaa690429660b10d866b7d508e8f1179cb7a6" -PARALLEL_MAKE = "" - inherit autotools pkgconfig lib_package EXTRA_OECONF = " --enable-fixed-point --with-ogg-libraries=${STAGING_LIBDIR} \ |