diff options
Diffstat (limited to 'meta-agl-bsp/meta-rcar-gen3')
87 files changed, 1713 insertions, 1477 deletions
diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/README.md b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/README.md new file mode 100644 index 000000000..11070fc96 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/README.md @@ -0,0 +1,3 @@ +# back port from poky +## gstreamer + src: poky/meta/recipes-multimedia/gstreamer/ ae9b341ecfcc60e970f29cfe04306411ad26c0cf diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch index 2cab87f9e..2cab87f9e 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/Add-error-signal-emission-for-missing-plugins.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/Add-error-signal-emission-for-missing-plugins.patch new file mode 100644 index 000000000..712d46daa --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/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-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/Fix-pause-play.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/Fix-pause-play.patch new file mode 100644 index 000000000..783c42ad7 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/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-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/filechooser.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/filechooser.patch new file mode 100644 index 000000000..7bf1b034b --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/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-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/gst-player.desktop b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/gst-player.desktop new file mode 100644 index 000000000..9fd207b38 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/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-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/gtk2.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player/gtk2.patch new file mode 100644 index 000000000..2cd18bbc9 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/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-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player_git.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player_git.bb new file mode 100644 index 000000000..8129169c5 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-player_git.bb @@ -0,0 +1,39 @@ +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 distro_features_check gobject-introspection + +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + +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-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gst-plugins-package.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-plugins-package.inc index cabf56f63..c24493e1e 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gst-plugins-package.inc +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gst-plugins-package.inc @@ -9,8 +9,8 @@ python split_gstreamer10_packages () { 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='') do_split_packages(d, glibdir+'/girepository-1.0', 'Gst(.*)-1.0\.typelib$', d.expand('${PN}-%s-typelib'), 'GStreamer typelib file 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')) + do_split_packages(d, gst_libdir, 'libgst(.*)\.la$', d.expand('${PN}-%s-dev'), 'GStreamer plugin for %s (development files)', extra_depends='${PN}-dev') + do_split_packages(d, gst_libdir, 'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer plugin for %s (static development files)', extra_depends='${PN}-staticdev') } python set_metapkg_rdepends () { @@ -48,12 +48,9 @@ ALLOW_EMPTY_${PN}-dev = "1" ALLOW_EMPTY_${PN}-staticdev = "1" PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib" -FILES_${PN}-apps = "${bindir}" - -RDEPENDS_${PN}-apps += "perl" -RRECOMMENDS_${PN} += "${PN}-meta" FILES_${PN} = "" -FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug" +FILES_${PN}-apps = "${bindir}" FILES_${PN}-glib = "${datadir}/glib-2.0" +RRECOMMENDS_${PN} += "${PN}-meta" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav.inc index 84e6e95d3..363101e1a 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav.inc @@ -1,32 +1,46 @@ SUMMARY = "Libav-based GStreamer 1.x plugin" +HOMEPAGE = "http://gstreamer.freedesktop.org/" SECTION = "multimedia" + LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )" LICENSE_FLAGS = "commercial" -HOMEPAGE = "http://www.gstreamer.net/" -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2" -inherit autotools pkgconfig +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz" + +inherit autotools pkgconfig upstream-version-is-even # CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time, # compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the # libav copy included in the gst-libav package. -PACKAGECONFIG ??= " orc yasm " -PACKAGECONFIG[libav] = "--with-system-libav,,libav" -PACKAGECONFIG[lgpl] = "--enable-lgpl,," -PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,yasm-native" -PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG ??= "orc yasm" +PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl," +PACKAGECONFIG[libav] = "--with-system-libav,,libav" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,yasm-native" GSTREAMER_1_0_DEBUG ?= "--disable-debug" LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure" + +LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \ + --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \ + --ranlib='${RANLIB}' \ + ${GSTREAMER_1_0_DEBUG} \ + --cross-prefix='${HOST_PREFIX}'" + LIBAV_EXTRA_CONFIGURE_COMMON = \ '${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"' EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}" FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" +# http://errors.yoctoproject.org/Errors/Details/20493/ +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +# ffmpeg/libav disables PIC on some platforms (e.g. x86-32) +INSANE_SKIP_${PN} = "textrel" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch index 1d99ad125..1d99ad125 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch index ccadea4d5..36abf8607 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch @@ -22,5 +22,5 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + ( (unsigned char*)(h->non_zero_count[mb_xy]) ) [i] = 16; + } h->cur_pic.mb_type[mb_xy] = mb_type; - h->last_qscale_diff = 0; + sl->last_qscale_diff = 0; return 0; diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav_1.6.3.bb index 5d74a2e57..687230a8f 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav_1.6.3.bb @@ -3,7 +3,6 @@ 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=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 \ @@ -14,17 +13,8 @@ SRC_URI = " \ file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \ file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \ " -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} \ - --cross-prefix='${HOST_PREFIX}'" +SRC_URI[md5sum] = "cfe9a06913d4fd4067e9e47f6e05fac2" +SRC_URI[sha256sum] = "857b9c060a0337de38c6d26238c47352433c02eabf26c2f860c854dbc35bd4ab" S = "${WORKDIR}/gst-libav-${PV}" - -# http://errors.yoctoproject.org/Errors/Details/20493/ -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav_git.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav_git.bb new file mode 100644 index 000000000..ebc8a5ef2 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-libav_git.bb @@ -0,0 +1,38 @@ +DEFAULT_PREFERENCE = "-1" + +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.md;md5=acda96fe91ccaabc9cd9d541806a0d37 \ + 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 \ + file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +# To build using the system libav/ffmpeg, append "libav" to PACKAGECONFIG +# and remove the ffmpeg sources from SRC_URI below. However, first note the +# warnings in gstreamer1.0-libav.inc +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gst-libav;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ + git://source.ffmpeg.org/ffmpeg;destsuffix=git/gst-libs/ext/libav;name=ffmpeg;branch=release/3.0 \ + file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \ + file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" + +SRCREV_base = "6c4878b6abc916b7f6f25b8926c4859119acf1ec" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_ffmpeg = "c40983a6f631d22fede713d535bb9c31d5c9740c" +SRCREV_FORMAT = "base" + +S = "${WORKDIR}/git" + +do_configure_prepend() { + ${S}/autogen.sh --noconfigure +} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-meta-base.bb index 3ef10c372..c542b13f0 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-meta-base.bb @@ -1,6 +1,9 @@ -DESCRIPTION = "Gstreamer1.0 package groups" +SUMMARY = "Gstreamer1.0 package groups" LICENSE = "MIT" +# Due to use of COMBINED_FEATURES +PACKAGE_ARCH = "${MACHINE_ARCH}" + inherit packagegroup COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}" @@ -26,7 +29,7 @@ RDEPENDS_gstreamer1.0-meta-base = "\ gstreamer1.0 \ gstreamer1.0-plugins-base-playback \ gstreamer1.0-plugins-base-gio \ - gstreamer1.0-plugins-base-alsa \ + ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', 'gstreamer1.0-plugins-base-alsa', '',d)} \ gstreamer1.0-plugins-base-volume \ gstreamer1.0-plugins-base-audioconvert \ gstreamer1.0-plugins-base-audioresample \ diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-omx.inc index 26c13361f..0fff612ee 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-omx.inc @@ -1,10 +1,11 @@ SUMMARY = "OpenMAX IL plugins for GStreamer" +HOMEPAGE = "http://gstreamer.freedesktop.org/" SECTION = "multimedia" + LICENSE = "LGPLv2.1" LICENSE_FLAGS = "commercial" -HOMEPAGE = "http://www.gstreamer.net/" + DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" -RDEPENDS_${PN} = "libomxil" inherit autotools pkgconfig gettext @@ -32,10 +33,11 @@ python __anonymous () { set_omx_core_name() { sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}${sysconfdir}/xdg/gstomx.conf" } + do_install[postfuncs] += " set_omx_core_name " FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" +RDEPENDS_${PN} = "libomxil" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch index a428ac9c9..a428ac9c9 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-omx_1.2.0.bb index fe7c91cb3..74358a724 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.2.0.bb +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-omx_1.2.0.bb @@ -9,4 +9,3 @@ SRC_URI[md5sum] = "d24e8c0153c35dfefee3e26b1c2c35f8" SRC_URI[sha256sum] = "0b4874961e6488ad9e5808114bd486ea981c540907262caab1419355fd82d745" S = "${WORKDIR}/gst-omx-${PV}" - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-omx_git.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-omx_git.bb new file mode 100644 index 000000000..970554352 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-omx_git.bb @@ -0,0 +1,25 @@ +DEFAULT_PREFERENCE = "-1" + +include gstreamer1.0-omx.inc + +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;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 \ +" + +SRCREV_gst-omx = "a2db76b048db278ef0aa798e106b7594264e06c0" +SRCREV_common = "5edcd857b2107cd8b78c16232dd10877513ec157" + +SRCREV_FORMAT = "gst-omx" + +S = "${WORKDIR}/git" + +do_configure_prepend() { + cd ${S} + ./autogen.sh --noconfigure + cd ${B} +} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad.inc index b4f01afe5..9e2b94ede 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad.inc @@ -1,136 +1,148 @@ require gstreamer1.0-plugins.inc -LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" DEPENDS += "gstreamer1.0-plugins-base libpng jpeg" -S = "${WORKDIR}/gst-plugins-bad-${PV}" - -SRC_URI += "file://configure-allow-to-disable-libssh2.patch \ - " - inherit gettext bluetooth +SRC_URI_append = " \ + file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \ +" + # opengl packageconfig factored out to make it easy for distros # and BSP layers to pick either (desktop) opengl, gles2, or no GL PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}" +# gtk is not in the PACKAGECONFIG variable by default until +# the transition to gtk+3 is finished PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ ${PACKAGECONFIG_GL} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \ - orc curl neon sndfile \ - hls sbc dash bz2 smoothstreaming \ - " + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ + bz2 curl dash dtls hls neon rsvg sbc smoothstreaming sndfile uvch264 webp \ +" -# dash = Dynamic Adaptive Streaming over HTTP PACKAGECONFIG[assrender] = "--enable-assrender,--disable-assrender,libass" +PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,${BLUEZ}" +PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2" PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" -PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2" -PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,virtual/libgl libglu" +PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2" +PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb" +PACKAGECONFIG[dtls] = "--enable-dtls,--disable-dtls,openssl" PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" +PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa" +PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" +PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2" +PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3" +PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,nettle" PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms" +PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2" PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" -PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" -PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" -PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa" -PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" -PACKAGECONFIG[wayland] = "--enable-wayland --enable-egl,--disable-wayland --disable-egl,wayland virtual/egl" -PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" -PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb" PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" -PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls" +PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" +PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,virtual/libgl libglu" +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdread libdvdnav" +PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg" +PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc" -PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2" -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,${BLUEZ}" -PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg" PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" -PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" -PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" -PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2" -PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[srtp] = "--enable-srtp,--disable-srtp,libsrtp" +PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev" PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" -PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdnav libdvdread" +PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[wayland] = "--enable-wayland --enable-egl,--disable-wayland --disable-egl,wayland virtual/egl" +PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp" # these plugins have not been ported to 1.0 (yet): -# directdraw vcd apexsink dc1394 lv2 linsys musepack mythtv -# nas timidity teletextdec sdl xvid wininet acm gsettings -# sndio qtwrapper cdxaparse dccp faceoverlay hdvparse tta -# mve nuvdemux osx_video patchdetect quicktime real sdi -# videomeasure gsettings +# apexsink dc1394 lv2 linsys musepack nas timidity teletextdec sdl xvid wininet +# acm gsettings sndio cdxaparse dccp faceoverlay hdvparse tta mve nuvdemux +# patchdetect real sdi videomeasure gsettings # these plugins have no corresponding library in OE-core or meta-openembedded: -# openni2 winks direct3d directdraw directsound winscreencap osx_video -# apple_media android_media avc chromaprint daala dts gme gsm kate ladspa mimic -# mpeg2enc mplex ofa openjpeg opensles pvr rtmp soundtouch spandsp spc -# srtp vdpau wasapi zbar +# openni2 winks direct3d directsound winscreencap +# apple_media android_media avc bs2b chromaprint daala dts gme gsm kate ladspa +# libde265 mimic mpeg2enc mplex ofa openh264 opensles pvr soundtouch spandsp +# spc vdpau wasapi x265 zbar + +# qt5 support is disabled, because it is not present in OE core, and requires more work than +# just adding a packageconfig (it requires access to moc, uic, rcc, and qmake paths). +# This is better done in a separate qt5 layer (which then should add a "qt5" packageconfig +# in a gstreamer1.0-plugins-bad bbappend). EXTRA_OECONF += " \ + --enable-decklink \ --enable-dvb \ - --enable-shm \ --enable-fbdev \ - --enable-decklink \ + --enable-shm \ + --enable-vcd \ --disable-acm \ --disable-android_media \ --disable-apexsink \ --disable-apple_media \ --disable-avc \ + --disable-bs2b \ --disable-chromaprint \ --disable-cocoa \ --disable-daala \ --disable-dc1394 \ --disable-direct3d \ - --disable-directdraw \ --disable-directsound \ --disable-dts \ --disable-gme \ - --disable-gsettings \ --disable-gsm \ --disable-kate \ --disable-ladspa \ + --disable-libde265 \ + --disable-libvisual \ --disable-linsys \ --disable-lv2 \ --disable-mimic \ --disable-mpeg2enc \ --disable-mplex \ --disable-musepack \ - --disable-mythtv \ --disable-nas \ --disable-ofa \ + --disable-openexr \ + --disable-openh264 \ --disable-openjpeg \ + --disable-openni2 \ --disable-opensles \ - --disable-osx_video \ --disable-pvr \ - --disable-quicktime \ + --disable-qt \ --disable-sdl \ --disable-sdltest \ --disable-sndio \ --disable-soundtouch \ --disable-spandsp \ --disable-spc \ - --disable-srtp \ --disable-teletextdec \ --disable-timidity \ - --disable-vcd \ --disable-vdpau \ --disable-wasapi \ --disable-wildmidi \ --disable-wininet \ + --disable-winks \ --disable-winscreencap \ + --disable-x265 \ --disable-xvid \ --disable-zbar \ ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \ - " +" -ARM_INSTRUCTION_SET = "arm" +export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" -FILES_gstreamer1.0-plugins-bad-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/include/gst/gl/gstglconfig.h" +FILES_${PN}-freeverb += "${datadir}/gstreamer-${LIBV}/presets/GstFreeverb.prs" +FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/${LIBV}/opencv*" FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch index 154d340e4..154d340e4 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch index f677603eb..1085e95e8 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch @@ -22,8 +22,8 @@ index a4b2540..0ccaacd 100644 #endif if (!gst_element_register (plugin, "glimagesink", -- GST_RANK_SECONDARY, GST_TYPE_GLIMAGE_SINK)) { -+ GST_RANK_MARGINAL, GST_TYPE_GLIMAGE_SINK)) { +- GST_RANK_SECONDARY, gst_gl_image_sink_bin_get_type ())) { ++ GST_RANK_MARGINAL, gst_gl_image_sink_bin_get_type ())) { return FALSE; } diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch new file mode 100644 index 000000000..e81b06570 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch @@ -0,0 +1,27 @@ +From a93ca63d01e7cd1e40b5be576992f77fac364bd5 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 21 Mar 2016 18:21:17 +0200 +Subject: [PATCH] gstreamer-gl.pc.in: don't append GL_CFLAGS to CFLAGS + +Dependencies' include directories should not be added in this way; +it causes problems when cross-compiling in sysroot environments. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + pkgconfig/gstreamer-gl.pc.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pkgconfig/gstreamer-gl.pc.in b/pkgconfig/gstreamer-gl.pc.in +index 5589e2a..b986450 100644 +--- a/pkgconfig/gstreamer-gl.pc.in ++++ b/pkgconfig/gstreamer-gl.pc.in +@@ -10,4 +10,4 @@ Version: @VERSION@ + Requires: gstreamer-base-@GST_API_VERSION@ gstreamer-@GST_API_VERSION@ + + Libs: -L${libdir} -lgstgl-@GST_API_VERSION@ @GL_LIBS@ +-Cflags: -I${includedir} @GL_CFLAGS@ ++Cflags: -I${includedir} +-- +2.7.0 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch new file mode 100755 index 000000000..3491a15e6 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch @@ -0,0 +1,35 @@ +From 95cda7fbcf1a81289d9315c801c8e2b3d896f4cb Mon Sep 17 00:00:00 2001 +From: Haihua Hu <b55597@freescale.com> +Date: Mon, 30 Nov 2015 09:36:09 +0800 +Subject: [PATCH 2/5] [glplugin] glwindow: fix memory leak of navigation + thread + +When exit navigation thread, call g_thread_join() to release +the resource hold by it. + +Upstream-Status: Backport [1.7.1] + +bugzilla URL: https://bugzilla.gnome.org/show_bug.cgi?id=758820 + +Signed-off-by: Haihua Hu <b55597@freescale.com> +--- + gst-libs/gst/gl/gstglwindow.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/gst-libs/gst/gl/gstglwindow.c b/gst-libs/gst/gl/gstglwindow.c +index 44b74ca..42ef296 100644 +--- a/gst-libs/gst/gl/gstglwindow.c ++++ b/gst-libs/gst/gl/gstglwindow.c +@@ -343,6 +343,9 @@ gst_gl_window_finalize (GObject * object) + while (window->nav_alive) { + g_cond_wait (&window->nav_destroy_cond, &window->nav_lock); + } ++ /* release resource hold by navigation thread */ ++ g_thread_join(window->priv->navigation_thread); ++ window->priv->navigation_thread = NULL; + g_mutex_unlock (&window->nav_lock); + } + +-- +1.7.9.5 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/avoid-including-sys-poll.h-directly.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/avoid-including-sys-poll.h-directly.patch new file mode 100644 index 000000000..357fd7800 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/avoid-including-sys-poll.h-directly.patch @@ -0,0 +1,30 @@ +From 72561a0fca562d03567ace7b4cfc94992cd6525c Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Wed, 3 Feb 2016 18:05:41 -0800 +Subject: [PATCH] avoid including <sys/poll.h> directly + +musl libc generates warnings if <sys/poll.h> is included directly. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + sys/dvb/gstdvbsrc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c +index b93255f..49f145a 100644 +--- a/sys/dvb/gstdvbsrc.c ++++ b/sys/dvb/gstdvbsrc.c +@@ -93,7 +93,7 @@ + #include <gst/gst.h> + #include <gst/glib-compat-private.h> + #include <sys/ioctl.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <fcntl.h> + #include <errno.h> + #include <stdio.h> +-- +1.9.1 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch index d52afd5d5..d52afd5d5 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/ensure-valid-sentinels-for-gst_structure_get-etc.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/ensure-valid-sentinels-for-gst_structure_get-etc.patch new file mode 100644 index 000000000..369ff93ac --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/ensure-valid-sentinels-for-gst_structure_get-etc.patch @@ -0,0 +1,86 @@ +From 2262ba4b686d5cc0d3e894707fe1d31619a3a8f1 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 9 Feb 2016 14:00:00 -0800 +Subject: [PATCH] ensure valid sentinals for gst_structure_get() etc + +For GStreamer functions declared with G_GNUC_NULL_TERMINATED, +ie __attribute__((__sentinel__)), gcc will generate a warning if the +last parameter passed to the function is not NULL (where a valid NULL +in this context is defined as zero with any pointer type). + +The C callers to such functions within gst-plugins-bad use the C NULL +definition (ie ((void*)0)), which is a valid sentinel. + +However the C++ NULL definition (ie 0L), is not a valid sentinel +without an explicit cast to a pointer type. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + sys/decklink/gstdecklink.cpp | 10 +++++----- + sys/decklink/gstdecklinkaudiosrc.cpp | 2 +- + sys/decklink/gstdecklinkvideosink.cpp | 2 +- + 3 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp +index 64637f1..bac956f 100644 +--- a/sys/decklink/gstdecklink.cpp ++++ b/sys/decklink/gstdecklink.cpp +@@ -324,22 +324,22 @@ gst_decklink_mode_get_structure (GstDecklinkModeEnum e, BMDPixelFormat f) + "height", G_TYPE_INT, mode->height, + "pixel-aspect-ratio", GST_TYPE_FRACTION, mode->par_n, mode->par_d, + "interlace-mode", G_TYPE_STRING, mode->interlaced ? "interleaved" : "progressive", +- "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, NULL); ++ "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, (void *) NULL); + + switch (f) { + case bmdFormat8BitYUV: /* '2vuy' */ + gst_structure_set (s, "format", G_TYPE_STRING, "UYVY", + "colorimetry", G_TYPE_STRING, mode->colorimetry, +- "chroma-site", G_TYPE_STRING, "mpeg2", NULL); ++ "chroma-site", G_TYPE_STRING, "mpeg2", (void *) NULL); + break; + case bmdFormat10BitYUV: /* 'v210' */ +- gst_structure_set (s, "format", G_TYPE_STRING, "v210", NULL); ++ gst_structure_set (s, "format", G_TYPE_STRING, "v210", (void *) NULL); + break; + case bmdFormat8BitARGB: /* 'ARGB' */ +- gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", NULL); ++ gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", (void *) NULL); + break; + case bmdFormat8BitBGRA: /* 'BGRA' */ +- gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", NULL); ++ gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", (void *) NULL); + break; + case bmdFormat10BitRGB: /* 'r210' Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 */ + case bmdFormat12BitRGB: /* 'R12B' Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component */ +diff --git a/sys/decklink/gstdecklinkaudiosrc.cpp b/sys/decklink/gstdecklinkaudiosrc.cpp +index 9a701ee..26fb7ec 100644 +--- a/sys/decklink/gstdecklinkaudiosrc.cpp ++++ b/sys/decklink/gstdecklinkaudiosrc.cpp +@@ -312,7 +312,7 @@ gst_decklink_audio_src_set_caps (GstBaseSrc * bsrc, GstCaps * caps) + g_mutex_unlock (&self->input->lock); + + if (videosrc) { +- g_object_get (videosrc, "connection", &vconn, NULL); ++ g_object_get (videosrc, "connection", &vconn, (void *) NULL); + gst_object_unref (videosrc); + + switch (vconn) { +diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp +index eebeff3..da6e486 100644 +--- a/sys/decklink/gstdecklinkvideosink.cpp ++++ b/sys/decklink/gstdecklinkvideosink.cpp +@@ -158,7 +158,7 @@ reset_framerate (GstCapsFeatures * features, GstStructure * structure, + gpointer user_data) + { + gst_structure_set (structure, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, +- G_MAXINT, 1, NULL); ++ G_MAXINT, 1, (void *) NULL); + + return TRUE; + } +-- +1.9.1 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch new file mode 100644 index 000000000..5ce57714e --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad/fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch @@ -0,0 +1,28 @@ +From a67781000e82bd9ae3813da29401e8c0c852328a Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 26 Jan 2016 15:16:01 -0800 +Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + gst-libs/gst/codecparsers/gstvc1parser.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c +index fd16ee0..ddb890c 100644 +--- a/gst-libs/gst/codecparsers/gstvc1parser.c ++++ b/gst-libs/gst/codecparsers/gstvc1parser.c +@@ -1729,7 +1729,7 @@ gst_vc1_parse_sequence_layer (const guint8 * data, gsize size, + GstVC1SeqLayer * seqlayer) + { + guint32 tmp; +- guint8 tmp8; ++ guint8 tmp8 = 0; + guint8 structA[8] = { 0, }; + guint8 structB[12] = { 0, }; + GstBitReader br; +-- +1.9.1 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad_1.6.3.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad_1.6.3.bb new file mode 100644 index 000000000..8eb47c265 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad_1.6.3.bb @@ -0,0 +1,28 @@ +include gstreamer1.0-plugins-bad.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ + file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \ + file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50 \ + file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a" + +# Note: The mpg123 plugin was moved to gst-plugins-ugly prior to the 1.7.2 +# release, so this line should be removed during the update to 1.8.x +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=08d8aefcdaaf89ecb6dd53ec1e4f95cd42d01664 +PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" + +# Note: The gsettings plug-in was dropped prior to the 1.7.2 release, +# so this line should be removed during the update to 1.8.x +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=914291808ad10621d6a74031f3d46d45eef5a3a3 +EXTRA_OECONF += "--disable-gsettings" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ + file://configure-allow-to-disable-libssh2.patch \ + file://0001-glimagesink-Downrank-to-marginal.patch \ + file://0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch \ +" + +SRC_URI[md5sum] = "4857adcafe41e4b9b8805cf88303bd55" +SRC_URI[sha256sum] = "971b29101d6a9c5e3fe94d99d977a227f58f0b2d29b6ca2c7f292052542b3a61" + +S = "${WORKDIR}/gst-plugins-bad-${PV}" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad_git.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad_git.bb new file mode 100644 index 000000000..ef6581b2a --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-bad_git.bb @@ -0,0 +1,65 @@ +DEFAULT_PREFERENCE = "-1" + +include gstreamer1.0-plugins-bad.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ + file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \ + file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50 \ + file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a" + +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gst-plugins-bad;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ + file://configure-allow-to-disable-libssh2.patch \ + file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \ + file://avoid-including-sys-poll.h-directly.patch \ + file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \ + file://0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" + +SRCREV_base = "50ae46cc0f8827bf966920d9c221e5cf86e811ba" +SRCREV_common = "a25397448942079002622be231e9ec49b985745a" +SRCREV_FORMAT = "base" + +S = "${WORKDIR}/git" + +# over-ride the default hls PACKAGECONFIG in gstreamer1.0-plugins-bad.inc to +# pass an additional --with-hls-crypto=XXX option (new in 1.7.x) and switch HLS +# AES decryption from nettle to openssl (ie a shared dependency with dtls). +# This should move back to the common .inc once the main recipe updates to 1.8.x +PACKAGECONFIG[hls] = "--enable-hls --with-hls-crypto=openssl,--disable-hls,openssl" + +# The tinyalsa plugin was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=c8bd74fa9a81398f57d976c478d2043f30188684 +PACKAGECONFIG[tinyalsa] = "--enable-tinyalsa,--disable-tinyalsa,tinyalsa" + +# The vulkan based video sink plugin was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=5de6dd9f40629562acf90e35e1fa58464d66617d +PACKAGECONFIG[vulkan] = "--enable-vulkan,--disable-vulkan,libxcb" + +# The dependency-less netsim plugin was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=e3f9e854f08e82bfab11182c5a2aa6f9a0c73cd5 +EXTRA_OECONF += " \ + --enable-netsim \ +" + +do_configure_prepend() { + ${S}/autogen.sh --noconfigure +} + +# In 1.6.2, the "--enable-hls" configure option generated an installable package +# called "gstreamer1.0-plugins-bad-fragmented". In 1.7.1 that HLS plugin package +# has become "gstreamer1.0-plugins-bad-hls". See: +# http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=efe62292a3d045126654d93239fdf4cc8e48ae08 + +PACKAGESPLITFUNCS_append = " handle_hls_rename " + +python handle_hls_rename () { + d.setVar('RPROVIDES_gstreamer1.0-plugins-bad-hls', 'gstreamer1.0-plugins-bad-fragmented') + d.setVar('RREPLACES_gstreamer1.0-plugins-bad-hls', 'gstreamer1.0-plugins-bad-fragmented') + d.setVar('RCONFLICTS_gstreamer1.0-plugins-bad-hls', 'gstreamer1.0-plugins-bad-fragmented') +} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base.inc new file mode 100644 index 000000000..7381458f4 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base.inc @@ -0,0 +1,50 @@ +require gstreamer1.0-plugins.inc + +SRC_URI_append = "\ + file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \ + file://0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch \ + file://0003-riff-add-missing-include-directories-when-calling-in.patch \ + file://0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch \ +" + +LICENSE = "GPLv2+ & LGPLv2+" + +DEPENDS += "iso-codes util-linux zlib" + +inherit gettext + +PACKAGES_DYNAMIC =+ "^libgst.*" + +PACKAGECONFIG ??= " \ + ${GSTREAMER_ORC} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + gio-unix-2.0 ivorbis ogg pango theora vorbis \ +" + +X11DEPENDS = "virtual/libx11 libsm libxrender libxv" +X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm" +X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm" + +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" +PACKAGECONFIG[gio-unix-2.0] = "--enable-gio_unix_2_0,--disable-gio_unix_2_0,glib-2.0" +PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor" +PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora" +PACKAGECONFIG[visual] = "--enable-libvisual,--disable-libvisual,libvisual" +PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis" +PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" + +EXTRA_OECONF += " \ + --enable-zlib \ +" + +CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" + +FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gst-libs/gst/tag/.libs:${B}/gst-libs/gst/video/.libs:${B}/gst-libs/gst/audio/.libs:${B}/gst-libs/gst/rtp/.libs" +} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch index d1c3ca47c..781e4d801 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch @@ -85,6 +85,19 @@ index 64d5eb0..91dc214 100644 --pkg gstreamer-@GST_API_VERSION@ \ --pkg gstreamer-tag-@GST_API_VERSION@ \ --pkg gstreamer-video-@GST_API_VERSION@ \ +diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am +index 83d83cb..3bd8fc0 100644 +--- a/gst-libs/gst/riff/Makefile.am ++++ b/gst-libs/gst/riff/Makefile.am +@@ -47,7 +47,7 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --include=GstAudio-@GST_API_VERSION@ \ + # --include=GstTag-@GST_API_VERSION@ \ + # --include=Gst-@GST_API_VERSION@ \ +-# --libtool="$(top_builddir)/libtool" \ ++# --libtool="$(LIBTOOL)" \ + # --pkg gstreamer-@GST_API_VERSION@ \ + # --pkg gstreamer-tag-@GST_API_VERSION@ \ + # --pkg gstreamer-audio-@GST_API_VERSION@ \ diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am index fdd01c1..f5445c1 100644 --- a/gst-libs/gst/rtp/Makefile.am diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch index 90fe3d285..85fcacb55 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch @@ -145,6 +145,32 @@ index 91dc214..dc8e1d3 100644 --includedir="$(top_builddir)/gst-libs/gst/tag/" \ --includedir="$(top_builddir)/gst-libs/gst/video/" \ --includedir="$(top_builddir)/gst-libs/gst/audio/" \ +diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am +index 3bd8fc0..0a115cc 100644 +--- a/gst-libs/gst/riff/Makefile.am ++++ b/gst-libs/gst/riff/Makefile.am +@@ -41,8 +41,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --c-include "gst/riff/riff.h" \ + # --add-include-path=$(builddir)/../tag \ + # --add-include-path=$(builddir)/../audio \ +-# --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +-# --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++# --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++# --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + # --library=libgstriff-@GST_API_VERSION@.la \ + # --include=GstAudio-@GST_API_VERSION@ \ + # --include=GstTag-@GST_API_VERSION@ \ +@@ -73,8 +73,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --includedir=$(builddir) \ + # --includedir=$(builddir)/../tag \ + # --includedir=$(builddir)/../audio \ +-# --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +-# --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ ++# --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ ++# --includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \ + # $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F) + # + #CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA) diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am index f5445c1..527c0b4 100644 --- a/gst-libs/gst/rtp/Makefile.am diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch new file mode 100644 index 000000000..9b66f7f49 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch @@ -0,0 +1,28 @@ +From 3c2c2d5dd08aa30ed0e8acd8566ec99412bb8209 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 26 Oct 2015 17:29:37 +0200 +Subject: [PATCH 3/4] riff: add missing include directories when calling + introspection scanner + +Upstream-Status: Pending [review on oe-core maillist] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gst-libs/gst/riff/Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am +index 0a115cc..5057a58 100644 +--- a/gst-libs/gst/riff/Makefile.am ++++ b/gst-libs/gst/riff/Makefile.am +@@ -39,6 +39,8 @@ libgstriff_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) + # --strip-prefix=Gst \ + # --warn-all \ + # --c-include "gst/riff/riff.h" \ ++# -I$(top_srcdir)/gst-libs \ ++# -I$(top_builddir)/gst-libs \ + # --add-include-path=$(builddir)/../tag \ + # --add-include-path=$(builddir)/../audio \ + # --add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \ +-- +2.6.2 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-ssaparse-enhance-SSA-text-lines-parsing.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0003-ssaparse-enhance-SSA-text-lines-parsing.patch index 9fbebd570..9fbebd570 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-ssaparse-enhance-SSA-text-lines-parsing.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0003-ssaparse-enhance-SSA-text-lines-parsing.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch index 42d99c1db..42d99c1db 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-subparse-set-need_segment-after-sink-pad-received-GS.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0004-subparse-set-need_segment-after-sink-pad-received-GS.patch index 7813915d8..7813915d8 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-subparse-set-need_segment-after-sink-pad-received-GS.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0004-subparse-set-need_segment-after-sink-pad-received-GS.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch new file mode 100755 index 000000000..096a6f4cb --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch @@ -0,0 +1,143 @@ +From 5be6ed00aad028d9cbb4e0c63af0be69d335c71e Mon Sep 17 00:00:00 2001 +From: Song Bing <b06498@freescale.com> +Date: Fri, 11 Dec 2015 21:42:00 +0800 +Subject: [PATCH] convertframe: Support video crop when convert frame + +Get thumbnail will user convertframe to convert video frame to +desired video format and size. But haven't process crop meta on +the video buffer. Add support video crop. + +https://bugzilla.gnome.org/show_bug.cgi?id=759329 + +Upstream-Status: Backport [1.7.1] + +--- + gst-libs/gst/video/convertframe.c | 65 +++++++++++++++++++++++++++++++++------ + 1 file changed, 56 insertions(+), 9 deletions(-) + +diff --git a/gst-libs/gst/video/convertframe.c b/gst-libs/gst/video/convertframe.c +index aa9c3d3..942a51e 100644 +--- a/gst-libs/gst/video/convertframe.c ++++ b/gst-libs/gst/video/convertframe.c +@@ -110,12 +110,23 @@ fail: + static GstElement * + build_convert_frame_pipeline (GstElement ** src_element, + GstElement ** sink_element, const GstCaps * from_caps, +- const GstCaps * to_caps, GError ** err) ++ GstVideoCropMeta * cmeta, const GstCaps * to_caps, GError ** err) + { +- GstElement *src = NULL, *csp = NULL, *vscale = NULL; +- GstElement *sink = NULL, *encoder = NULL, *pipeline; ++ GstElement *vcrop = NULL, *csp = NULL, *csp2 = NULL, *vscale = NULL; ++ GstElement *src = NULL, *sink = NULL, *encoder = NULL, *pipeline; ++ GstVideoInfo info; + GError *error = NULL; + ++ if (cmeta) { ++ if (!create_element ("videocrop", &vcrop, &error)) { ++ g_warning ++ ("build_convert_frame_pipeline: Buffer has crop metadata but videocrop element is not found. Cropping will be disabled"); ++ } else { ++ if (!create_element ("videoconvert", &csp2, &error)) ++ goto no_elements; ++ } ++ } ++ + /* videoscale is here to correct for the pixel-aspect-ratio for us */ + GST_DEBUG ("creating elements"); + if (!create_element ("appsrc", &src, &error) || +@@ -133,15 +144,42 @@ build_convert_frame_pipeline (GstElement ** src_element, + + GST_DEBUG ("adding elements"); + gst_bin_add_many (GST_BIN (pipeline), src, csp, vscale, sink, NULL); ++ if (vcrop) ++ gst_bin_add_many (GST_BIN (pipeline), vcrop, csp2, NULL); + + /* set caps */ + g_object_set (src, "caps", from_caps, NULL); ++ if (vcrop) { ++ gst_video_info_from_caps (&info, from_caps); ++ g_object_set (vcrop, "left", cmeta->x, NULL); ++ g_object_set (vcrop, "top", cmeta->y, NULL); ++ g_object_set (vcrop, "right", GST_VIDEO_INFO_WIDTH (&info) - cmeta->width, ++ NULL); ++ g_object_set (vcrop, "bottom", ++ GST_VIDEO_INFO_HEIGHT (&info) - cmeta->height, NULL); ++ GST_DEBUG ("crop meta [x,y,width,height]: %d %d %d %d", cmeta->x, cmeta->y, ++ cmeta->width, cmeta->height); ++ } + g_object_set (sink, "caps", to_caps, NULL); + + /* FIXME: linking is still way too expensive, profile this properly */ +- GST_DEBUG ("linking src->csp"); +- if (!gst_element_link_pads (src, "src", csp, "sink")) +- goto link_failed; ++ if (vcrop) { ++ GST_DEBUG ("linking src->csp2"); ++ if (!gst_element_link_pads (src, "src", csp2, "sink")) ++ goto link_failed; ++ ++ GST_DEBUG ("linking csp2->vcrop"); ++ if (!gst_element_link_pads (csp2, "src", vcrop, "sink")) ++ goto link_failed; ++ ++ GST_DEBUG ("linking vcrop->csp"); ++ if (!gst_element_link_pads (vcrop, "src", csp, "sink")) ++ goto link_failed; ++ } else { ++ GST_DEBUG ("linking src->csp"); ++ if (!gst_element_link_pads (src, "src", csp, "sink")) ++ goto link_failed; ++ } + + GST_DEBUG ("linking csp->vscale"); + if (!gst_element_link_pads_full (csp, "src", vscale, "sink", +@@ -193,8 +231,12 @@ no_elements: + { + if (src) + gst_object_unref (src); ++ if (vcrop) ++ gst_object_unref (vcrop); + if (csp) + gst_object_unref (csp); ++ if (csp2) ++ gst_object_unref (csp2); + if (vscale) + gst_object_unref (vscale); + if (sink) +@@ -209,7 +251,11 @@ no_elements: + no_pipeline: + { + gst_object_unref (src); ++ if (vcrop) ++ gst_object_unref (vcrop); + gst_object_unref (csp); ++ if (csp2) ++ gst_object_unref (csp2); + gst_object_unref (vscale); + gst_object_unref (sink); + +@@ -282,7 +328,8 @@ gst_video_convert_sample (GstSample * sample, const GstCaps * to_caps, + } + + pipeline = +- build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, &err); ++ build_convert_frame_pipeline (&src, &sink, from_caps, ++ gst_buffer_get_video_crop_meta (buf), to_caps_copy, &err); + if (!pipeline) + goto no_pipeline; + +@@ -646,8 +693,8 @@ gst_video_convert_sample_async (GstSample * sample, + } + + pipeline = +- build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, +- &error); ++ build_convert_frame_pipeline (&src, &sink, from_caps, ++ gst_buffer_get_video_crop_meta (buf), to_caps_copy, &error); + if (!pipeline) + goto no_pipeline; + +-- +2.5.0 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/encodebin-Need-more-buffers-in-output-queue-for-bett.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/encodebin-Need-more-buffers-in-output-queue-for-bett.patch index 325671721..325671721 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/encodebin-Need-more-buffers-in-output-queue-for-bett.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/encodebin-Need-more-buffers-in-output-queue-for-bett.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/get-caps-from-src-pad-when-query-caps.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/get-caps-from-src-pad-when-query-caps.patch index 284abbe94..284abbe94 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/get-caps-from-src-pad-when-query-caps.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/get-caps-from-src-pad-when-query-caps.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch new file mode 100644 index 000000000..01e944ddd --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch @@ -0,0 +1,47 @@ +From 10d2a977ee1d469f0bf9059bb2d0b55fd2eecbac Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Wed, 20 Jan 2016 13:00:00 -0800 +Subject: [PATCH] make gio_unix_2_0 dependency configurable + +Prior to 1.7.1, gst-plugins-base accepted a configure option to +disable gio_unix_2_0, however it was implemented incorrectly using +AG_GST_CHECK_FEATURE. That was fixed in 1.7.1 by making the +dependency unconditional. + + http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=aadefefba88afe4acbe64454650f24e7ce7c8d70 + +To make builds deterministic, re-instate support for +--disable-gio_unix_2_0, but implement it using the AC_ARG_ENABLE +instead of AG_GST_CHECK_FEATURE. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + configure.ac | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 9c52aeb..26cacd6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -747,9 +747,16 @@ AC_SUBST(FT2_CFLAGS) + AC_SUBST(FT2_LIBS) + + dnl *** gio-unix-2.0 for tests/check/pipelines/tcp.c *** ++AC_ARG_ENABLE([gio_unix_2_0], ++ [AS_HELP_STRING([--disable-gio_unix_2_0],[disable use of gio_unix_2_0])], ++ [], ++ [enable_gio_unix_2_0=yes]) ++ ++if test "x${enable_gio_unix_2_0}" != "xno"; then + PKG_CHECK_MODULES(GIO_UNIX_2_0, gio-unix-2.0 >= 2.24, + HAVE_GIO_UNIX_2_0="yes", + HAVE_GIO_UNIX_2_0="no") ++fi + AM_CONDITIONAL(USE_GIO_UNIX_2_0, test "x$HAVE_GIO_UNIX_2_0" = "xyes") + + dnl *** finalize CFLAGS, LDFLAGS, LIBS +-- +1.9.1 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base_1.6.3.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base_1.6.3.bb new file mode 100644 index 000000000..429dc9338 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base_1.6.3.bb @@ -0,0 +1,25 @@ +include gstreamer1.0-plugins-base.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ + file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607" + +# Note: The dependency on freetype was dropped shortly after the 1.7.1 release +# so these lines should be removed during the update to 1.8.x +# http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=183610c035dd6955c9b3540b940aec50474af031 +DEPENDS += "freetype" +EXTRA_OECONF += "--disable-freetypetest" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ + file://get-caps-from-src-pad-when-query-caps.patch \ + file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \ + file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch \ + file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch \ + file://0005-convertframe-Support-video-crop-when-convert-frame.patch \ +" + +SRC_URI[md5sum] = "3ddde0ad598ef69f58d6a2e87f8b460f" +SRC_URI[sha256sum] = "b6154f8fdba4877e95efd94610ef0ada4f0171cd12eb829a3c3c97345d9c7a75" + +S = "${WORKDIR}/gst-plugins-base-${PV}" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base_git.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base_git.bb new file mode 100644 index 000000000..38a9fcc29 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-base_git.bb @@ -0,0 +1,27 @@ +DEFAULT_PREFERENCE = "-1" + +include gstreamer1.0-plugins-base.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ + file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607" + +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gst-plugins-base;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ + file://make-gio_unix_2_0-dependency-configurable.patch \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" + +SRCREV_base = "97e108bebaa58821f4566a74cbf0135e93407c01" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "base" + +S = "${WORKDIR}/git" + +do_configure_prepend() { + ${S}/autogen.sh --noconfigure +} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good.inc index edaafe842..4621bf894 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good.inc @@ -2,52 +2,52 @@ require gstreamer1.0-plugins.inc LICENSE = "GPLv2+ & LGPLv2.1+" -# libid3tag -DEPENDS += "gstreamer1.0-plugins-base zlib bzip2 libcap" +DEPENDS += "gstreamer1.0-plugins-base libcap zlib bzip2" inherit gettext - PACKAGECONFIG ??= " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + ${GSTREAMER_ORC} \ ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \ - orc cairo flac gdk-pixbuf jpeg libpng soup speex taglib v4l2\ - " + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + cairo flac gdk-pixbuf gudev jpeg libpng soup speex taglib v4l2 \ +" X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" -X11ENABLEOPTS = "--enable-x --enable-xshm" -X11DISABLEOPTS = "--disable-x --disable-xshm" -PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" -PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" + PACKAGECONFIG[cairo] = "--enable-cairo,--disable-cairo,cairo" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libiec61883 libavc1394 libraw1394" PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac" PACKAGECONFIG[gdk-pixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" PACKAGECONFIG[gudev] = "--with-gudev,--without-gudev,libgudev" -PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,libv4l2" PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" PACKAGECONFIG[libpng] = "--enable-libpng,--disable-libpng,libpng" +PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,libv4l2" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4" PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" PACKAGECONFIG[taglib] = "--enable-taglib,--disable-taglib,taglib" +PACKAGECONFIG[v4l2] = "--enable-gst_v4l2,--disable-gst_v4l2" PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx,libvpx" PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" -PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394" -PACKAGECONFIG[v4l2] = "--enable-gst_v4l2,--disable-gst_v4l2" +PACKAGECONFIG[x11] = "--enable-x,--disable-x,${X11DEPENDS}" EXTRA_OECONF += " \ + --enable-bz2 \ --enable-oss \ + --enable-zlib \ + --disable-aalib \ + --disable-aalibtest \ --disable-directsound \ - --disable-waveform \ + --disable-libcaca \ + --disable-libdv \ --disable-oss4 \ - --disable-sunaudio \ --disable-osx_audio \ --disable-osx_video \ - --disable-aalib \ - --disable-libcaca \ - --disable-libdv \ --disable-shout2 \ - --disable-examples \ + --disable-sunaudio \ + --disable-waveform \ " FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch index d1973d439..d1973d439 100755 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good/avoid-including-sys-poll.h-directly.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good/avoid-including-sys-poll.h-directly.patch new file mode 100644 index 000000000..c7f3630ec --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good/avoid-including-sys-poll.h-directly.patch @@ -0,0 +1,44 @@ +From 4bfe2c8570a4a7080ec662504882969054d8a072 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Wed, 3 Feb 2016 18:12:38 -0800 +Subject: [PATCH] avoid including <sys/poll.h> directly + +musl libc generates warnings if <sys/poll.h> is included directly. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + ext/raw1394/gstdv1394src.c | 2 +- + ext/raw1394/gsthdv1394src.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ext/raw1394/gstdv1394src.c b/ext/raw1394/gstdv1394src.c +index dbc7607..3c42b41 100644 +--- a/ext/raw1394/gstdv1394src.c ++++ b/ext/raw1394/gstdv1394src.c +@@ -37,7 +37,7 @@ + #include "config.h" + #endif + #include <unistd.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <errno.h> + #include <fcntl.h> +diff --git a/ext/raw1394/gsthdv1394src.c b/ext/raw1394/gsthdv1394src.c +index 0b07a37..9785a15 100644 +--- a/ext/raw1394/gsthdv1394src.c ++++ b/ext/raw1394/gsthdv1394src.c +@@ -36,7 +36,7 @@ + #include "config.h" + #endif + #include <unistd.h> +-#include <sys/poll.h> ++#include <poll.h> + #include <sys/socket.h> + #include <errno.h> + #include <fcntl.h> +-- +1.9.1 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good/ensure-valid-sentinel-for-gst_structure_get.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good/ensure-valid-sentinel-for-gst_structure_get.patch new file mode 100644 index 000000000..bc7ac0b6a --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good/ensure-valid-sentinel-for-gst_structure_get.patch @@ -0,0 +1,40 @@ +From 2169f2205c0205a220d826d7573e5a863bd36e0a Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 9 Feb 2016 14:00:00 -0800 +Subject: [PATCH] ensure valid sentinal for gst_structure_get() + +gst_structure_get() is declared with G_GNUC_NULL_TERMINATED, ie +__attribute__((__sentinel__)), which means gcc will generate a +warning if the last parameter passed to the function is not NULL +(where a valid NULL in this context is defined as zero with any +pointer type). + +The C code callers to gst_structure_get() within gst-plugins-good +use the C NULL definition (ie ((void*)0)), which is a valid sentinel. + +However gstid3v2mux.cc uses the C++ NULL definition (ie 0L), which +is not a valid sentinel without an explicit cast to a pointer type. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + ext/taglib/gstid3v2mux.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ext/taglib/gstid3v2mux.cc b/ext/taglib/gstid3v2mux.cc +index 8651e77..a87234f 100644 +--- a/ext/taglib/gstid3v2mux.cc ++++ b/ext/taglib/gstid3v2mux.cc +@@ -465,7 +465,7 @@ add_image_tag (ID3v2::Tag * id3v2tag, const GstTagList * list, + + if (info_struct) { + if (gst_structure_get (info_struct, "image-type", +- GST_TYPE_TAG_IMAGE_TYPE, &image_type, NULL)) { ++ GST_TYPE_TAG_IMAGE_TYPE, &image_type, (void *) NULL)) { + if (image_type > 0 && image_type <= 18) { + image_type += 2; + } else { +-- +1.9.1 + diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good_1.6.3.bb index 943ab6039..0b4f43690 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good_1.6.3.bb @@ -4,10 +4,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ 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 = " \ + http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ + file://0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch \ " -SRC_URI[md5sum] = "eaf1a6daf73749bc423feac301d60038" -SRC_URI[sha256sum] = "79b1b5f3f7bcaa8a615202eb5e176121eeb8336960f70687e536ad78dbc7e641" + +SRC_URI[md5sum] = "a1958df7aa498b42793e2f2048673815" +SRC_URI[sha256sum] = "24b19db70b2a83461ebddfe20033db432dadfdb5d4b54ffb1dfa0d830134a177" S = "${WORKDIR}/gst-plugins-good-${PV}" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good_git.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good_git.bb new file mode 100644 index 000000000..9cadc9afc --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-good_git.bb @@ -0,0 +1,28 @@ +DEFAULT_PREFERENCE = "-1" + +include gstreamer1.0-plugins-good.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" + +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gst-plugins-good;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ + file://avoid-including-sys-poll.h-directly.patch \ + file://ensure-valid-sentinel-for-gst_structure_get.patch \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" + +SRCREV_base = "1b6fdce67c15d59957e395b1957aa625322092d4" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "base" + +S = "${WORKDIR}/git" + +do_configure_prepend() { + ${S}/autogen.sh --noconfigure +} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-ugly.inc index 63ba31632..aff223072 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-ugly.inc @@ -7,12 +7,14 @@ DEPENDS += "gstreamer1.0-plugins-base libid3tag" inherit gettext - PACKAGECONFIG ??= " \ - orc a52dec lame mad mpeg2dec \ - " + ${GSTREAMER_ORC} \ + a52dec lame mad mpeg2dec \ +" PACKAGECONFIG[a52dec] = "--enable-a52dec,--disable-a52dec,liba52" +PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr" +PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr" PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio" PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread" PACKAGECONFIG[lame] = "--enable-lame,--disable-lame,lame" @@ -20,11 +22,10 @@ PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" PACKAGECONFIG[mpeg2dec] = "--enable-mpeg2dec,--disable-mpeg2dec,mpeg2dec" PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264" - EXTRA_OECONF += " \ - --disable-amrnb \ - --disable-amrwb \ --disable-sidplay \ --disable-twolame \ - " +" +FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" +FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-ugly_1.6.3.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-ugly_1.6.3.bb new file mode 100644 index 000000000..7edfb81d2 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-ugly_1.6.3.bb @@ -0,0 +1,13 @@ +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 = " \ + http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ +" + +SRC_URI[md5sum] = "dbd92afb3816cbfa90ab1f197144a2e2" +SRC_URI[sha256sum] = "2fecf7b7c7882f8f62f1900048f4013f98c214fb3d3303d8d812245bb41fd064" + +S = "${WORKDIR}/gst-plugins-ugly-${PV}" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-ugly_git.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-ugly_git.bb new file mode 100644 index 000000000..69afe4cfb --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins-ugly_git.bb @@ -0,0 +1,41 @@ +DEFAULT_PREFERENCE = "-1" + +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 = " \ + git://anongit.freedesktop.org/gstreamer/gst-plugins-ugly;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" + +SRCREV_base = "8bdb68edbc605e21314b608e7a39bdbaab7302b8" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "base" + +S = "${WORKDIR}/git" + +# The mpg123 plugin was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/commit/?id=43bd45ba991ef3247957ca37cdcb52f4b8c0acb1 +PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" + +do_configure_prepend() { + ${S}/autogen.sh --noconfigure +} + +# In 1.7.2, the mpg123 plugin was moved from -bad to -ugly +# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=08d8aefcdaaf89ecb6dd53ec1e4f95cd42d01664 +# https://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/commit/?id=43bd45ba991ef3247957ca37cdcb52f4b8c0acb1 + +PACKAGESPLITFUNCS_append = " handle_mpg123_rename " + +python handle_mpg123_rename () { + d.setVar('RPROVIDES_gstreamer1.0-plugins-ugly-mpg123', 'gstreamer1.0-plugins-bad-mpg123') + d.setVar('RREPLACES_gstreamer1.0-plugins-ugly-mpg123', 'gstreamer1.0-plugins-bad-mpg123') + d.setVar('RCONFLICTS_gstreamer1.0-plugins-ugly-mpg123', 'gstreamer1.0-plugins-bad-mpg123') +} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins.inc new file mode 100644 index 000000000..2dcec509d --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-plugins.inc @@ -0,0 +1,40 @@ +SUMMARY = "Plugins for the GStreamer multimedia framework 1.x" +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" + +DEPENDS = "gstreamer1.0 glib-2.0-native" + +inherit autotools pkgconfig upstream-version-is-even gobject-introspection + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +LIBV = "1.0" +require gst-plugins-package.inc + +# Orc enables runtime JIT compilation of data processing routines from Orc +# bytecode to SIMD instructions for various architectures (currently SSE, MMX, +# MIPS, Altivec and NEON are supported). + +GSTREAMER_ORC ?= "orc" + +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc orc-native" +PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind" + +export ORCC = "${STAGING_DIR_NATIVE}${bindir}/orcc" + +EXTRA_OECONF = " \ + --disable-examples \ +" + +SRC_URI_append = " file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch" + +delete_pkg_m4_file() { + # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection + rm "${S}/common/m4/pkg.m4" || true +} + +do_configure[prefuncs] += " delete_pkg_m4_file" + +PACKAGES_DYNAMIC = "^${PN}-.*" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-rtsp-server.inc index 4423f40b4..ae6d36477 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-rtsp-server.inc @@ -1,7 +1,8 @@ SUMMARY = "A library on top of GStreamer for building an RTSP server" +HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" SECTION = "multimedia" LICENSE = "LGPLv2" -HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" + DEPENDS = "gstreamer1.0 libcgroup gstreamer1.0-plugins-base" PNREAL = "gst-rtsp-server" @@ -12,7 +13,7 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz S = "${WORKDIR}/${PNREAL}-${PV}" -inherit autotools pkgconfig gobject-introspection +inherit autotools pkgconfig upstream-version-is-even gobject-introspection delete_pkg_m4_file() { # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch index 89d6384ad..89d6384ad 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-rtsp-server_1.6.2.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-rtsp-server_1.6.2.bb new file mode 100644 index 000000000..5bdae6cf9 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0-rtsp-server_1.6.2.bb @@ -0,0 +1,6 @@ +include gstreamer1.0-rtsp-server.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" + +SRC_URI[md5sum] = "a1cafefb5fc14ac5d7e7d8cdbdfa9694" +SRC_URI[sha256sum] = "0f51f9879556c0950203c766b09a1b62f1f25b17f9a7d516e01b13ecf93c8858" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0.inc new file mode 100644 index 000000000..10b4668e5 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0.inc @@ -0,0 +1,58 @@ +SUMMARY = "GStreamer 1.0 multimedia framework" +DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ +It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +LICENSE = "LGPLv2+" + +DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native" + +inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection + +# This way common/m4/introspection.m4 will come first +# (it has a custom INTROSPECTION_INIT macro, and so must be used instead of our common introspection.m4 file) +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI_append = " \ + file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ +" + +PACKAGECONFIG ??= "" + +PACKAGECONFIG[check] = "--enable-check,--disable-check" +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests" +PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind," + +EXTRA_OECONF = " \ + --disable-dependency-tracking \ + --disable-docbook \ + --disable-examples \ + --disable-gtk-doc \ +" + +CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" + +# musl libc generates warnings if <sys/poll.h> is included directly +CACHED_CONFIGUREVARS += "ac_cv_header_sys_poll_h=no" + +PACKAGES += "${PN}-bash-completion" + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" +FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" + +RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" +RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" + +delete_pkg_m4_file() { + # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection + rm "${S}/common/m4/pkg.m4" || true +} + +do_configure[prefuncs] += " delete_pkg_m4_file" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs:${B}/libs/gst/base/.libs" +} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch index 94f5cc56e..94f5cc56e 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0_1.6.3.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0_1.6.3.bb new file mode 100644 index 000000000..ba1b83b08 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0_1.6.3.bb @@ -0,0 +1,14 @@ +include gstreamer1.0.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ + file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" + +SRC_URI = " \ + http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ + file://0001-Fix-crash-with-gst-inspect.patch \ +" + +SRC_URI[md5sum] = "b4cdeb2b9cb20dd6ac022a4f417eae0d" +SRC_URI[sha256sum] = "22f9568d67b87cf700a111f381144bd37cb93790a77e4e331db01fe854a37f24" + +S = "${WORKDIR}/gstreamer-${PV}" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0_git.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0_git.bb new file mode 100644 index 000000000..7715bb202 --- /dev/null +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-backport/gstreamer_bp_krogoth/gstreamer1.0_git.bb @@ -0,0 +1,30 @@ +DEFAULT_PREFERENCE = "-1" + +include gstreamer1.0.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ + file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" + +SRC_URI = " \ + git://anongit.freedesktop.org/gstreamer/gstreamer;name=base \ + git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \ +" + +PV = "1.7.2+git${SRCPV}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" + +SRCREV_base = "9e33bfa2c7a5f43da2c49b0a8235fd43cba9feaf" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "base" + +S = "${WORKDIR}/git" + +# The option to configure tracer hooks was added prior to the 1.7.2 release +# https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=e5ca47236e4df4683707f0bcf99181a937d358d5 +PACKAGECONFIG[gst-tracer-hooks] = "--enable-gst-tracer-hooks,--disable-gst-tracer-hooks," +PACKAGECONFIG[trace-historic] = "--enable-trace,--disable-trace," + +do_configure_prepend() { + ${S}/autogen.sh --noconfigure +} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch deleted file mode 100644 index 042a32c04..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch +++ /dev/null @@ -1,41 +0,0 @@ -From deba0da45ec821209a7ed148a4521d562e6512cd Mon Sep 17 00:00:00 2001 -From: Carlos Rafael Giani <dv@pseudoterminal.org> -Date: Wed, 27 Aug 2014 14:47:25 +0200 -Subject: [PATCH] gl: do not check for GL/GLU/EGL/GLES2 libs if disabled in - configuration - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=735522] - -Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org> ---- - configure.ac | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 1a46afb..e85d4ba 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -661,10 +661,16 @@ case $host in - fi - ;; - *) -- AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h) -- AG_GST_CHECK_LIBHEADER(GLU, GLU, gluSphere,, GL/glu.h) -- AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h) -- AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h) -+ if test "x$NEED_GL" != "xno"; then -+ AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h) -+ AG_GST_CHECK_LIBHEADER(GLU, GLU, gluSphere,, GL/glu.h) -+ fi -+ if test "x$NEED_GLES2" != "xno"; then -+ AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h) -+ fi -+ if test "x$NEED_EGL" != "xno"; then -+ AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h) -+ fi - - old_LIBS=$LIBS - old_CFLAGS=$CFLAGS --- -1.8.3.2 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb deleted file mode 100644 index bfa137716..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb +++ /dev/null @@ -1,17 +0,0 @@ -include gstreamer1.0-plugins-bad.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \ - file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a \ - file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \ - file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50" - -SRC_URI += "file://0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch \ - file://0001-glimagesink-Downrank-to-marginal.patch \ - file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \ - " - -SRC_URI[md5sum] = "e0bb39412cf4a48fe0397bcf3a7cd451" -SRC_URI[sha256sum] = "152fad7250683d72f9deb36c5685428338365fe4a4c87ffe15e38783b14f983c" - -S = "${WORKDIR}/gst-plugins-bad-${PV}" - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc deleted file mode 100644 index 173fef3d4..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc +++ /dev/null @@ -1,42 +0,0 @@ -require gstreamer1.0-plugins.inc - -LICENSE = "GPLv2+ & LGPLv2+" - -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxv', '', d)}" -DEPENDS += "freetype liboil util-linux" - -inherit gettext - -PACKAGES_DYNAMIC =+ "^libgst.*" - -PACKAGECONFIG ??= " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \ - orc ivorbis ogg theora vorbis pango \ - " - -X11DEPENDS = "virtual/libx11 libsm libxrender" -X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm" -X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm" -PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}" -PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" -PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor" -PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg" -PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora" -PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis" -PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" -# libvisual do not seem to exist anywhere in OE -PACKAGECONFIG[visual] = "--enable-libvisual,--disable-libvisual,libvisual" -PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" - -EXTRA_OECONF += " \ - --disable-freetypetest \ -" - -FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" - -CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/gst-libs/gst/tag/.libs:${B}/gst-libs/gst/video/.libs:${B}/gst-libs/gst/audio/.libs" -} diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-basetextoverlay-make-memory-copy-when-video-buffer-s.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-basetextoverlay-make-memory-copy-when-video-buffer-s.patch deleted file mode 100644 index 03dca956a..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-basetextoverlay-make-memory-copy-when-video-buffer-s.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 3781d40940d46d7e6a502092d24aac7997f6da5b Mon Sep 17 00:00:00 2001 -From: Mingke Wang <mingke.wang@freescale.com> -Date: Thu, 5 Mar 2015 12:06:23 +0800 -Subject: [PATCH 1/4] basetextoverlay: make memory copy when video buffer's - memory is ready only - -1. since gst_buffer_make_writable just lookup the refcount to determine if - a buffer is writable, and it will use _gst_buffer_copy() which don't - perform a deep memory copy even if the flag of a memory is set to - GST_MEMORY_FLAG_READONLY. So, we detect the memory flag and use - gst_buffer_copy_region with GST_BUFFER_COPY_DEEP parameter to perform - deep memory copy. if the allocator of a memory don't support mem_copy - interface, the it will return NULL, if this case, we can use - gst_buffer_make_writable() to get a shared memory buffer or the orignal - buffer if the buffer's refcount is 1. -2. new feature is no added if caps has no feature during caps negotiation - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=747495] - -Signed-off-by: Mingke Wang <mingke.wang@freescale.com> - -diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c -index c919861..3c0a1d7 100755 ---- a/ext/pango/gstbasetextoverlay.c -+++ b/ext/pango/gstbasetextoverlay.c -@@ -747,6 +747,7 @@ gst_base_text_overlay_negotiate (GstBaseTextOverlay * overlay, GstCaps * caps) - if (f == NULL) { - f = gst_caps_features_new - (GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION, NULL); -+ gst_caps_set_features(overlay_caps, 0, f); - } else { - gst_caps_features_add (f, - GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION); -@@ -1890,16 +1891,71 @@ gst_base_text_overlay_push_frame (GstBaseTextOverlay * overlay, - if (gst_pad_check_reconfigure (overlay->srcpad)) - gst_base_text_overlay_negotiate (overlay, NULL); - -- video_frame = gst_buffer_make_writable (video_frame); -- - if (overlay->attach_compo_to_buffer) { - GST_DEBUG_OBJECT (overlay, "Attaching text overlay image to video buffer"); -+ video_frame = gst_buffer_make_writable (video_frame); - gst_buffer_add_video_overlay_composition_meta (video_frame, - overlay->composition); - /* FIXME: emulate shaded background box if want_shading=true */ - goto done; - } - -+ gint m = gst_buffer_n_memory(video_frame); -+ gboolean mem_rdonly = FALSE; -+ GstMemory *mem; -+ GstBuffer *orig = video_frame; -+ -+ while (--m>=0) { -+ mem = gst_buffer_get_memory(video_frame, m); -+ if (GST_MEMORY_IS_READONLY(mem)) { -+ mem_rdonly = TRUE; -+ gst_memory_unref (mem); -+ break; -+ } -+ gst_memory_unref (mem); -+ } -+ -+ if (mem_rdonly) { -+ // since gst_buffer_make_writable just lookup the refcount to determine if -+ // a buffer is writable, and it will use _gst_buffer_copy() which don't -+ // perform a deep memory copy even if the flag of a memory is set to -+ // GST_MEMORY_FLAG_READONLY. So, we detect the memory flag and use -+ // gst_buffer_copy_region with GST_BUFFER_COPY_DEEP parameter to perform -+ // deep memory copy. if the allocator of a memory don't support mem_copy -+ // interface, the it will return NULL, if this case, we can use -+ // gst_buffer_make_writable() to get a shared memory buffer or the orignal -+ // buffer if the buffer's refcount is 1. -+ GstBuffer *new_buf = gst_buffer_copy_region (video_frame, -+ GST_BUFFER_COPY_ALL | GST_BUFFER_COPY_DEEP, 0, -1); -+ -+ GST_DEBUG_OBJECT (overlay, "copy %s video frame buffer %p -> %p", -+ g_type_name (GST_MINI_OBJECT_TYPE (video_frame)), video_frame, new_buf); -+ -+ if (!new_buf) { -+ //maybe the allocator don't support mem_copy interface, the we just use -+ //gst_buffer_make_writable() to get a writable buffer. -+ video_frame = gst_buffer_make_writable (video_frame); -+ } else { -+ gst_mini_object_unref (video_frame); -+ GST_BUFFER_FLAG_UNSET (new_buf, GST_BUFFER_FLAG_TAG_MEMORY); -+ video_frame = new_buf; -+ } -+ -+ if (!video_frame) { -+ GST_WARNING_OBJECT (overlay, "make writable buffer failed"); -+ return GST_FLOW_OK; -+ } -+ -+ m = gst_buffer_n_memory(video_frame); -+ while (--m>=0) { -+ mem = gst_buffer_get_memory(video_frame, m); -+ GST_MEMORY_FLAG_UNSET (mem, GST_MEMORY_FLAG_READONLY); -+ gst_memory_unref (mem); -+ } -+ } else { -+ video_frame = gst_buffer_make_writable (video_frame); -+ } -+ - if (!gst_video_frame_map (&frame, &overlay->info, video_frame, - GST_MAP_READWRITE)) - goto invalid_frame; -@@ -1918,6 +1974,18 @@ gst_base_text_overlay_push_frame (GstBaseTextOverlay * overlay, - - gst_video_frame_unmap (&frame); - -+ if (mem_rdonly && orig == video_frame) { -+ //if we used the original buffer and it's mem is set to read only, -+ //recover the memory ready only flag since we unset it before -+ // gst_video_frame_map () -+ m = gst_buffer_n_memory(video_frame); -+ while (--m>=0) { -+ mem = gst_buffer_get_memory(video_frame, m); -+ GST_MEMORY_FLAGS(mem) |= (GST_MEMORY_FLAG_READONLY); -+ gst_memory_unref (mem); -+ } -+ } -+ - done: - - return gst_pad_push (overlay->srcpad, video_frame); --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch deleted file mode 100644 index 3db4724fe..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 269f642c45d85cfd630ed490478e6bd6b71a767f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> -Date: Tue, 16 Sep 2014 01:07:18 +0300 -Subject: [PATCH] video-frame: Don't ref buffers twice when mapping - -Upstream-Status: Backport [1.5.1] ---- - gst-libs/gst/video/video-frame.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c -index 01f23c0..8a9ae96 100644 ---- a/gst-libs/gst/video/video-frame.c -+++ b/gst-libs/gst/video/video-frame.c -@@ -105,7 +105,7 @@ gst_video_frame_map_id (GstVideoFrame * frame, GstVideoInfo * info, - frame->data[i] = frame->map[0].data + info->offset[i]; - } - } -- frame->buffer = gst_buffer_ref (buffer); -+ frame->buffer = buffer; - if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0) - gst_buffer_ref (frame->buffer); - --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-gstplaysink-don-t-set-async-of-custom-text-sink-to-f.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-gstplaysink-don-t-set-async-of-custom-text-sink-to-f.patch deleted file mode 100644 index 39c146aad..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-gstplaysink-don-t-set-async-of-custom-text-sink-to-f.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0a78555ea6c8c2f1ee27ee4707e8d7aa00ab7a66 Mon Sep 17 00:00:00 2001 -From: Mingke Wang <mingke.wang@freescale.com> -Date: Thu, 19 Mar 2015 14:15:25 +0800 -Subject: [PATCH 2/4] gstplaysink: don't set async of custom text-sink to - false - -set async to false lead to A/V sync problem when seeking. -the preroll need use GAP event instead of set async to false. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=747499] - -Signed-off-by: Mingke Wang <mingke.wang@freescale.com> - -diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c -old mode 100644 -new mode 100755 -index f5a2d42..fba0172 ---- a/gst/playback/gstplaysink.c -+++ b/gst/playback/gstplaysink.c -@@ -2408,7 +2408,7 @@ gen_text_chain (GstPlaySink * playsink) - G_TYPE_BOOLEAN); - if (elem) { - /* make sure the sparse subtitles don't participate in the preroll */ -- g_object_set (elem, "async", FALSE, NULL); -+ //g_object_set (elem, "async", FALSE, NULL); - GST_DEBUG_OBJECT (playsink, "adding custom text sink"); - gst_bin_add (bin, chain->sink); - /* NOTE streamsynchronizer needs streams decoupled */ --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch deleted file mode 100644 index c465b5cee..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 40a293d44d1aeccf5eb8e86f23a0b13666111c5c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> -Date: Fri, 12 Sep 2014 14:39:16 +0300 -Subject: [PATCH 2/3] video-frame: Add GST_VIDEO_FRAME_MAP_FLAG_NO_REF - -This makes sure that the buffer is not reffed another time when -storing it in the GstVideoFrame, keeping it writable if it was -writable. - -Upstream-Status: Backport [1.5.1] -https://bugzilla.gnome.org/show_bug.cgi?id=736118 ---- - gst-libs/gst/video/video-frame.c | 9 ++++++++- - gst-libs/gst/video/video-frame.h | 18 ++++++++++++++++++ - 2 files changed, 26 insertions(+), 1 deletion(-) - -diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c -index 537cf70..01f23c0 100644 ---- a/gst-libs/gst/video/video-frame.c -+++ b/gst-libs/gst/video/video-frame.c -@@ -106,6 +106,9 @@ gst_video_frame_map_id (GstVideoFrame * frame, GstVideoInfo * info, - } - } - frame->buffer = gst_buffer_ref (buffer); -+ if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0) -+ gst_buffer_ref (frame->buffer); -+ - frame->meta = meta; - - /* buffer flags enhance the frame flags */ -@@ -189,11 +192,13 @@ gst_video_frame_unmap (GstVideoFrame * frame) - GstBuffer *buffer; - GstVideoMeta *meta; - gint i; -+ GstMapFlags flags; - - g_return_if_fail (frame != NULL); - - buffer = frame->buffer; - meta = frame->meta; -+ flags = frame->map[0].flags; - - if (meta) { - for (i = 0; i < frame->info.finfo->n_planes; i++) { -@@ -202,7 +207,9 @@ gst_video_frame_unmap (GstVideoFrame * frame) - } else { - gst_buffer_unmap (buffer, &frame->map[0]); - } -- gst_buffer_unref (buffer); -+ -+ if ((flags & GST_VIDEO_FRAME_MAP_FLAG_NO_REF) == 0) -+ gst_buffer_unref (frame->buffer); - } - - /** -diff --git a/gst-libs/gst/video/video-frame.h b/gst-libs/gst/video/video-frame.h -index 627fab0..f8e6304 100644 ---- a/gst-libs/gst/video/video-frame.h -+++ b/gst-libs/gst/video/video-frame.h -@@ -149,6 +149,24 @@ typedef enum { - GST_VIDEO_BUFFER_FLAG_LAST = (GST_BUFFER_FLAG_LAST << 8) - } GstVideoBufferFlags; - -+/** -+ * GstVideoBufferFlags: -+ * @GST_VIDEO_FRAME_MAP_FLAG_NO_REF: Don't take another reference of the buffer and store it in -+ * the GstVideoFrame. This makes sure that the buffer stays -+ * writable while the frame is mapped, but requires that the -+ * buffer reference stays valid until the frame is unmapped again. -+ * @GST_VIDEO_FRAME_MAP_FLAG_LAST: Offset to define more flags -+ * -+ * Additional mapping flags for gst_video_frame_map(). -+ * -+ * Since: 1.6 -+ */ -+typedef enum { -+ GST_VIDEO_FRAME_MAP_FLAG_NO_REF = (GST_MAP_FLAG_LAST << 0), -+ GST_VIDEO_FRAME_MAP_FLAG_LAST = (GST_MAP_FLAG_LAST << 8) -+ /* 8 more flags possible afterwards */ -+} GstVideoFrameMapFlags; -+ - G_END_DECLS - - #endif /* __GST_VIDEO_FRAME_H__ */ --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch deleted file mode 100644 index 132bf06f7..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 3a7cdcdfc9c5b0d20394fe51b3b8cda23931ca6d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> -Date: Fri, 12 Sep 2014 14:41:01 +0300 -Subject: [PATCH 3/3] videofilter: Use new GST_VIDEO_FRAME_MAP_FLAG_NO_REF - -Upstream-Status: Backport [1.5.1] -https://bugzilla.gnome.org/show_bug.cgi?id=736118 ---- - gst-libs/gst/video/gstvideofilter.c | 23 ++++------------------- - 1 file changed, 4 insertions(+), 19 deletions(-) - -diff --git a/gst-libs/gst/video/gstvideofilter.c b/gst-libs/gst/video/gstvideofilter.c -index e1fa2c1..874b2e8 100644 ---- a/gst-libs/gst/video/gstvideofilter.c -+++ b/gst-libs/gst/video/gstvideofilter.c -@@ -260,23 +260,15 @@ gst_video_filter_transform (GstBaseTransform * trans, GstBuffer * inbuf, - if (fclass->transform_frame) { - GstVideoFrame in_frame, out_frame; - -- if (!gst_video_frame_map (&in_frame, &filter->in_info, inbuf, GST_MAP_READ)) -+ if (!gst_video_frame_map (&in_frame, &filter->in_info, inbuf, -+ GST_MAP_READ | GST_VIDEO_FRAME_MAP_FLAG_NO_REF)) - goto invalid_buffer; - - if (!gst_video_frame_map (&out_frame, &filter->out_info, outbuf, -- GST_MAP_WRITE)) -+ GST_MAP_WRITE | GST_VIDEO_FRAME_MAP_FLAG_NO_REF)) - goto invalid_buffer; - -- /* GstVideoFrame has another reference, so the buffer looks unwriteable, -- * meaning that we can't attach any metas or anything to it. Other -- * map() functions like gst_buffer_map() don't get another reference -- * of the buffer and expect the buffer reference to be kept until -- * the buffer is unmapped again. */ -- gst_buffer_unref (inbuf); -- gst_buffer_unref (outbuf); - res = fclass->transform_frame (filter, &in_frame, &out_frame); -- gst_buffer_ref (inbuf); -- gst_buffer_ref (outbuf); - - gst_video_frame_unmap (&out_frame); - gst_video_frame_unmap (&in_frame); -@@ -317,7 +309,7 @@ gst_video_filter_transform_ip (GstBaseTransform * trans, GstBuffer * buf) - GstVideoFrame frame; - GstMapFlags flags; - -- flags = GST_MAP_READ; -+ flags = GST_MAP_READ | GST_VIDEO_FRAME_MAP_FLAG_NO_REF; - - if (!gst_base_transform_is_passthrough (trans)) - flags |= GST_MAP_WRITE; -@@ -325,14 +317,7 @@ gst_video_filter_transform_ip (GstBaseTransform * trans, GstBuffer * buf) - if (!gst_video_frame_map (&frame, &filter->in_info, buf, flags)) - goto invalid_buffer; - -- /* GstVideoFrame has another reference, so the buffer looks unwriteable, -- * meaning that we can't attach any metas or anything to it. Other -- * map() functions like gst_buffer_map() don't get another reference -- * of the buffer and expect the buffer reference to be kept until -- * the buffer is unmapped again. */ -- gst_buffer_unref (buf); - res = fclass->transform_frame_ip (filter, &frame); -- gst_buffer_ref (buf); - - gst_video_frame_unmap (&frame); - } else { --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event-if.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event-if.patch deleted file mode 100644 index aa55de10e..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event-if.patch +++ /dev/null @@ -1,37 +0,0 @@ -From b608d027fff6efc2d1988ebf169cbe3b2b44a61b Mon Sep 17 00:00:00 2001 -From: zhouming <b42586@freescale.com> -Date: Thu, 8 May 2014 12:01:17 +0800 -Subject: [PATCH] ENGR00312034: do not change eos event to gap event if no - data has passed to streamsynchronizer. - -https://bugzilla.gnome.org/show_bug.cgi?id=727074 - -Upstream-Status: Pending - -Signed-off-by: zhouming <b42586@freescale.com> ---- - gst/playback/gststreamsynchronizer.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c -index 3997d1b..3e17c55 100644 ---- a/gst/playback/gststreamsynchronizer.c -+++ b/gst/playback/gststreamsynchronizer.c -@@ -488,12 +488,11 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, - } - g_slist_free (pads); - } else { -- /* if EOS, but no data has passed, then send something to replace EOS -- * for preroll purposes */ -+ /* if EOS, but no data has passed, then send EOS event */ - if (!seen_data) { - GstEvent *gap_event; - -- gap_event = gst_event_new_gap (timestamp, GST_CLOCK_TIME_NONE); -+ gap_event = gst_event_new_eos (); - ret = gst_pad_push_event (srcpad, gap_event); - } else { - GstEvent *gap_event; --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch deleted file mode 100755 index f24bc7cd6..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event2.patch +++ /dev/null @@ -1,49 +0,0 @@ -commit f9536544f5ad182b4f78d0143d1daa45dd64e624 -Author: Song Bing <b06498@freescale.com> -Date: Thu Oct 9 17:37:43 2014 +0800 - -[gststreamsynchronizer] send EOS event insterd of GAP event as GAP -event has issue when A/V have different duration. - -send EOS event insterd of GAP event as GAP event has issue when A/V have different duration. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=736655] - -Signed-off-by: Song Bing <b06498@freescale.com> - -diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c -index 3e17c55..ff42d72 100644 ---- a/gst/playback/gststreamsynchronizer.c -+++ b/gst/playback/gststreamsynchronizer.c -@@ -488,19 +488,24 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, - } - g_slist_free (pads); - } else { -- /* if EOS, but no data has passed, then send EOS event */ -+ /* if EOS, but no data has passed, then send something to replace EOS -+ * for preroll purposes */ - if (!seen_data) { -- GstEvent *gap_event; -+ GstEvent *eos_event; - -- gap_event = gst_event_new_eos (); -- ret = gst_pad_push_event (srcpad, gap_event); -+ /* FIXME: change to EOS event as GAP event has issue when A/V have -+ * different duration */ -+ eos_event = gst_event_new_eos (); -+ ret = gst_pad_push_event (srcpad, eos_event); - } else { -- GstEvent *gap_event; -+ GstEvent *eos_event; - - /* FIXME: Also send a GAP event to let audio sinks start their - * clock in case they did not have enough data yet */ -- gap_event = gst_event_new_gap (timestamp, GST_CLOCK_TIME_NONE); -- ret = gst_pad_push_event (srcpad, gap_event); -+ /* FIXME: change to EOS event as GAP event has issue when A/V have -+ * different duration */ -+ eos_event = gst_event_new_eos (); -+ ret = gst_pad_push_event (srcpad, eos_event); - } - } - gst_object_unref (srcpad); diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch deleted file mode 100755 index 731be686d..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/do-not-change-eos-event-to-gap-event3.patch +++ /dev/null @@ -1,31 +0,0 @@ -commit 3f7052aac5e0118a9a9e09fff2f65091be448972 -Author: Song Bing <b06498@freescale.com> -Date: Thu Oct 23 13:35:13 2014 +0800 - -[streamsynchronizer] One stream can finish playback. - -As changed GAP event EOS event, so EOS will send more times, which will -cause send function return error. -Streamsynchronizer will don’t send second track EOS event if send the -first track EOS return fail. Fixed by ignore the return error. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=736655] - -Signed-off-by: Song Bing b06498@freescale.com - -diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c -index ff42d72..d1732c3 100644 ---- a/gst/playback/gststreamsynchronizer.c -+++ b/gst/playback/gststreamsynchronizer.c -@@ -482,7 +482,10 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstObject * parent, - while (epad) { - pad = epad->data; - GST_DEBUG_OBJECT (pad, "Pushing EOS"); -- ret = ret && gst_pad_push_event (pad, gst_event_new_eos ()); -+ /* FIXME: remove error check as GAP changed to EOS will send EOS -+ * more times, which will cause return error and then don't send -+ * EOS event to following tracks. */ -+ gst_pad_push_event (pad, gst_event_new_eos ()); - gst_object_unref (pad); - epad = g_slist_next (epad); - } diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch deleted file mode 100755 index ef3f75fba..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/fix-id3demux-utf16-to-utf8-issue.patch +++ /dev/null @@ -1,54 +0,0 @@ -Author: Lyon Wang <b12696@freescale.com> -Date: Thu Oct 9 17:37:43 2014 +0800 - -[id3v2frames] Bug fix for id3demux issue - -Fix the issue that id3 tags utf16 charaters cannot be extreacted in id3demux -when I tried to get the id3v2 tag such as TIT2, TALB etc. it will return extrac -failed. - -Checked in id3v2frame.c, When parse the UTF-16 streams, it used g_convert() to -convert the buffer from UTF-16 to UTF-8, however it will return err that this -conversion is not supported which cause the extraction failed with these UTF-16 -characters. - -In the patch, use g_utf16_to_utf8() instead of g_convert, which can convert the -character format successfully. - -https://bugzilla.gnome.org/show_bug.cgi?id=741144 - -Upstream-Status: Backport [1.5.1] - -Signed-off-by: Lyon Wang <b12696@freescale.com> - -diff --git a/gst-libs/gst/tag/id3v2frames.c b/gst-libs/gst/tag/id3v2frames.c -old mode 100644 -new mode 100755 -index 3785c2a..7b9d8ac ---- a/gst-libs/gst/tag/id3v2frames.c -+++ b/gst-libs/gst/tag/id3v2frames.c -@@ -1057,14 +1057,17 @@ parse_insert_string_field (guint8 encoding, gchar * data, gint data_size, - data_size -= 2; - } - -- field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL); -- -- if (field == NULL || g_utf8_validate (field, -1, NULL) == FALSE) { -- /* As a fallback, try interpreting UTF-16 in the other endianness */ -- if (in_encode == utf16beenc) -- field = g_convert (data, data_size, "UTF-8", utf16leenc, -- NULL, NULL, NULL); -+ if (in_encode == utf16beenc) { -+ gunichar2 *data_utf16; -+ guint i; -+ data_utf16 = (gunichar2 *) data; -+ for (i=0; i<(data_size>>1); i++) { -+ data_utf16[i] = GUINT16_TO_LE (data_utf16[i]); -+ } - } -+ //field = g_convert (data, data_size, "UTF-8", in_encode, NULL, NULL, NULL); -+ field = g_utf16_to_utf8((gunichar2 *)data, (glong)(data_size>>1), NULL, NULL, NULL); -+ - } - - break; diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch deleted file mode 100755 index 833ce72bb..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/handle-audio-video-decoder-error.patch +++ /dev/null @@ -1,64 +0,0 @@ -From bcb2b8b6f49e7c66124a4f5e07dea829d5ebfe59 Mon Sep 17 00:00:00 2001 -From: Lyon Wang <lyon.wang@freescale.com> -Date: Mon, 15 Dec 2014 16:52:07 +0800 -Subject: [PATCH] handle audio/video decoder error - -When there is input data and no output data to the end of the stream, it will -send GST_ELEMENT_ERROR, So the clips playing will quit. -However, if only one of the tracks is corrupt, there is no need to quit other -tracks playing. - -The patch comments the GST_ELEMENT_ERROR() and just add GST_ERROR_OBJECT() -information instead. - -Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=741542] - -Signed-off-by: Lyon Wang <lyon.wang@freescale.com> ---- - gst-libs/gst/audio/gstaudiodecoder.c | 5 +++-- - gst-libs/gst/video/gstvideodecoder.c | 5 +++-- - 2 files changed, 6 insertions(+), 4 deletions(-) - mode change 100644 => 100755 gst-libs/gst/audio/gstaudiodecoder.c - mode change 100644 => 100755 gst-libs/gst/video/gstvideodecoder.c - -diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c -old mode 100644 -new mode 100755 -index c2e7a28..891df0a ---- a/gst-libs/gst/audio/gstaudiodecoder.c -+++ b/gst-libs/gst/audio/gstaudiodecoder.c -@@ -2123,9 +2123,10 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event) - GST_AUDIO_DECODER_STREAM_UNLOCK (dec); - - if (dec->priv->ctx.had_input_data && !dec->priv->ctx.had_output_data) { -- GST_ELEMENT_ERROR (dec, STREAM, DECODE, -+ /* GST_ELEMENT_ERROR (dec, STREAM, DECODE, - ("No valid frames decoded before end of stream"), -- ("no valid frames found")); -+ ("no valid frames found")); */ -+ GST_ERROR_OBJECT(dec, "No valid frames decoded before end of stream"); - } - - /* send taglist if no valid frame is decoded util EOS */ -diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c -old mode 100644 -new mode 100755 -index ac581e1..4278bcd ---- a/gst-libs/gst/video/gstvideodecoder.c -+++ b/gst-libs/gst/video/gstvideodecoder.c -@@ -1068,9 +1068,10 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder, - - /* Error out even if EOS was ok when we had input, but no output */ - if (ret && priv->had_input_data && !priv->had_output_data) { -- GST_ELEMENT_ERROR (decoder, STREAM, DECODE, -+ /* GST_ELEMENT_ERROR (decoder, STREAM, DECODE, - ("No valid frames decoded before end of stream"), -- ("no valid frames found")); -+ ("no valid frames found")); */ -+ GST_ERROR_OBJECT(decoder, "No valid frames decoded before end of stream"); - } - - /* Forward EOS immediately. This is required because no --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch deleted file mode 100644 index 62a52b038..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch +++ /dev/null @@ -1,57 +0,0 @@ -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-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch deleted file mode 100755 index 8cfda955a..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videobuffer_updata_alignment_update.patch +++ /dev/null @@ -1,53 +0,0 @@ -commit 88d253ea23b06289df40401160b606323f16c910 -Author: Song Bing <b06498@freescale.com> -Date: Mon Dec 15 09:34:35 2014 +0800 - -videopool: update video alignment after video alignment - -Video buffer pool will update video alignment to respect stride alignment -requirement. But haven't update it to video alignment in configure. -Which will cause user get wrong video alignment. - -https://bugzilla.gnome.org/show_bug.cgi?id=741501 - -Upstream-Status: Backport [1.5.1] - -Signed-off-by: Song Bing <b06498@freescale.com> -diff --git a/gst-libs/gst/video/gstvideopool.c b/gst-libs/gst/video/gstvideopool.c -index 4475f45..acef594 100644 ---- a/gst-libs/gst/video/gstvideopool.c -+++ b/gst-libs/gst/video/gstvideopool.c -@@ -167,6 +167,7 @@ video_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) - /* get an apply the alignment to the info */ - gst_buffer_pool_config_get_video_alignment (config, &priv->video_align); - gst_video_info_align (&info, &priv->video_align); -+ gst_buffer_pool_config_set_video_alignment (config, &priv->video_align); - } - priv->info = info; - -diff --git a/sys/ximage/ximagepool.c b/sys/ximage/ximagepool.c -index 6cc2cfa..6a1cbc9 100644 ---- a/sys/ximage/ximagepool.c -+++ b/sys/ximage/ximagepool.c -@@ -597,6 +597,8 @@ ximage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) - /* do padding and alignment */ - gst_video_info_align (&info, &priv->align); - -+ gst_buffer_pool_config_set_video_alignment (config, &priv->align); -+ - /* we need the video metadata too now */ - priv->add_metavideo = TRUE; - } else { -diff --git a/sys/xvimage/xvimagepool.c b/sys/xvimage/xvimagepool.c -index 244a51a..34b1ab2 100644 ---- a/sys/xvimage/xvimagepool.c -+++ b/sys/xvimage/xvimagepool.c -@@ -124,6 +124,8 @@ xvimage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) - /* do padding and alignment */ - gst_video_info_align (&info, &priv->align); - -+ gst_buffer_pool_config_set_video_alignment (config, &priv->align); -+ - /* we need the video metadata too now */ - priv->add_metavideo = TRUE; - } else { diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch deleted file mode 100644 index b47696911..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch +++ /dev/null @@ -1,46 +0,0 @@ -From c3f7d36b992a3cbcee3386dea85720f3cb04e1ff Mon Sep 17 00:00:00 2001 -From: Song Bing <b06498@freescale.com> -Date: Fri, 27 Mar 2015 13:39:43 +0800 -Subject: [PATCH] videoencoder: Keep sticky events around when doing a soft - reset - -The current code will first discard all frames, and then tries to copy -all sticky events from the (now discarded) frames. Let's change the order. - -https://bugzilla.gnome.org/show_bug.cgi?id=746865 - -Upstream-Status: Accepted - ---- - gst-libs/gst/video/gstvideoencoder.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c -index 614ba2d..4c5b111 100644 ---- a/gst-libs/gst/video/gstvideoencoder.c -+++ b/gst-libs/gst/video/gstvideoencoder.c -@@ -340,10 +340,6 @@ gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard) - - priv->drained = TRUE; - -- g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL); -- g_list_free (priv->frames); -- priv->frames = NULL; -- - priv->bytes = 0; - priv->time = 0; - -@@ -392,6 +388,10 @@ gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard) - encoder->priv->current_frame_events); - } - -+ g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL); -+ g_list_free (priv->frames); -+ priv->frames = NULL; -+ - GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder); - - return ret; --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb deleted file mode 100644 index 463acb53b..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb +++ /dev/null @@ -1,33 +0,0 @@ -include gstreamer1.0-plugins-base.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \ - file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \ - file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \ - " - -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 \ - file://fix-id3demux-utf16-to-utf8-issue.patch \ - file://handle-audio-video-decoder-error.patch \ - file://videobuffer_updata_alignment_update.patch \ - file://0002-video-frame-Add-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch \ - file://0001-video-frame-Don-t-ref-buffers-twice-when-mapping.patch \ - file://0003-videofilter-Use-new-GST_VIDEO_FRAME_MAP_FLAG_NO_REF.patch \ - file://videoencoder-Keep-sticky-events-around-when-doing-a-soft-.patch \ - file://do-not-change-eos-event-to-gap-event2.patch \ - file://do-not-change-eos-event-to-gap-event3.patch \ - file://0001-basetextoverlay-make-memory-copy-when-video-buffer-s.patch \ - file://0002-gstplaysink-don-t-set-async-of-custom-text-sink-to-f.patch \ - file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \ - file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch \ - file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch \ - file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \ - file://0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch \ - file://0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch \ -" - -SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e" -SRC_URI[sha256sum] = "77bd8199e7a312d3d71de9b7ddf761a3b78560a2c2a80829d0815ca39cbd551d" - -S = "${WORKDIR}/gst-plugins-base-${PV}" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch deleted file mode 100755 index 288631bf7..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch +++ /dev/null @@ -1,25 +0,0 @@ -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-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb deleted file mode 100644 index 25cb28c06..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb +++ /dev/null @@ -1,10 +0,0 @@ -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] = "6954beed7bb9a93e426dee543ff46393" -SRC_URI[sha256sum] = "5cd5e81cf618944f4dc935f1669b2125e8bb2fe9cc7dc8dc15b72237aca49067" - -S = "${WORKDIR}/gst-plugins-ugly-${PV}" - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc deleted file mode 100644 index b7519fcaf..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc +++ /dev/null @@ -1,68 +0,0 @@ -SUMMARY = "Plugins for the GStreamer multimedia framework 1.x" -HOMEPAGE = "http://gstreamer.freedesktop.org/" -BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" -SECTION = "multimedia" -DEPENDS = "gstreamer1.0" - -inherit autotools pkgconfig gobject-introspection - -GSTREAMER_1_0_DEBUG ?= "--disable-debug" -GSTREAMER_1_0_GIT_BRANCH ?= "master" -EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_1_0_DEBUG} --disable-examples " - -## SRC_URI_append = " file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch" - -delete_pkg_m4_file() { - # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection - rm "${S}/common/m4/pkg.m4" || true -} - -do_configure[prefuncs] += " delete_pkg_m4_file" - -acpaths = "-I ${S}/common/m4 -I ${S}/m4" - -LIBV = "1.0" -require gst-plugins-package.inc - -PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc orc-native" - -export ORCC = "${STAGING_DIR_NATIVE}${bindir}/orcc" - -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 -# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html -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 -} - -SRC_URI = "${@get_gst_srcuri(d)}" - -def get_gst_srcuri(d): - # check if expected prefix is present - prefix = "gstreamer1.0-" - bpn = d.getVar("BPN", True) - if not bpn.startswith(prefix): - bb.fatal('Invalid GStreamer 1.0 plugin package name "%s" : must start with "%s"' % (bpn, prefix)) - - # replaced prefix with "gst-", which is what is used for the tarball and repository filenames - gstpkg_basename = "gst-" + bpn[len(prefix):] - pv = d.getVar("PV", True) - branch = d.getVar("GSTREAMER_1_0_GIT_BRANCH", True) - - if pv == "git": - s = "git://anongit.freedesktop.org/gstreamer/%s;branch=%s" % (gstpkg_basename, branch) - else: - s = "http://gstreamer.freedesktop.org/src/%s/%s-%s.tar.xz" % (gstpkg_basename, gstpkg_basename, pv) - return s - -delete_liblink_m4_file() { - # This m4 file contains nastiness which conflicts with libtool 2.2.2 - rm "${S}/m4/lib-link.m4" || true -} - -do_configure[prefuncs] += " delete_liblink_m4_file " - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb deleted file mode 100644 index bb9b42b53..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb +++ /dev/null @@ -1,6 +0,0 @@ -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-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0.inc b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0.inc deleted file mode 100644 index 50a3ca72a..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0.inc +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "GStreamer 1.0 multimedia framework" -DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ -It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." -HOMEPAGE = "http://gstreamer.freedesktop.org/" -BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" -SECTION = "multimedia" -LICENSE = "LGPLv2+" -DEPENDS = "glib-2.0 libxml2 bison-native flex-native" - -inherit autotools pkgconfig gettext gobject-introspection - -PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" -PACKAGECONFIG[check] = "--enable-check,--disable-check" - -EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \ - --disable-dependency-tracking \ - --disable-examples --disable-tests \ - --disable-valgrind \ - " - -RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" -RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" - -delete_pkg_m4_file() { - # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection - rm "${S}/common/m4/pkg.m4" || true -} - -do_configure[prefuncs] += " delete_pkg_m4_file" - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs:${B}/libs/gst/base/.libs" -} - -CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" - -FILES_${PN} += " ${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dev += " ${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a" -FILES_${PN}-dbg += " ${libdir}/gstreamer-1.0/.debug/ ${libexecdir}/gstreamer-1.0/.debug/" - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch deleted file mode 100644 index 8213c4b8b..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch +++ /dev/null @@ -1,55 +0,0 @@ -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-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch deleted file mode 100644 index 1505cbefc..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 6914566ed6a89c96973a578aa5ecd01ee68cdcfd Mon Sep 17 00:00:00 2001 -From: Jian <Jian.Li@freescale.com> -Date: Thu, 14 May 2015 15:49:43 +0800 -Subject: [PATCH] basesink: Fix QoS/lateness checking if subclass implements - prepare/prepare_list vfuncs -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In basesink functions gst_base_sink_chain_unlocked(), below code is used to -checking if buffer is late before doing prepare call to save some effort: - if (syncable && do_sync) - late = - gst_base_sink_is_too_late (basesink, obj, rstart, rstop, - GST_CLOCK_EARLY, 0, FALSE); - - if (G_UNLIKELY (late)) - goto dropped; - -But this code has problem, it should calculate jitter based on current media -clock, rather than just passing 0. I found it will drop all the frames when -rewind in slow speed, such as -2X. - -https://bugzilla.gnome.org/show_bug.cgi?id=749258 - -Upstream-Status: Backport [1.5.1] ---- - libs/gst/base/gstbasesink.c | 26 ++++++++++++++++++++++---- - 1 file changed, 22 insertions(+), 4 deletions(-) - -diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c -index a505695..5fb2d6a 100644 ---- a/libs/gst/base/gstbasesink.c -+++ b/libs/gst/base/gstbasesink.c -@@ -3369,10 +3369,28 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad, - if (G_UNLIKELY (stepped)) - goto dropped; - -- if (syncable && do_sync) -- late = -- gst_base_sink_is_too_late (basesink, obj, rstart, rstop, -- GST_CLOCK_EARLY, 0, FALSE); -+ if (syncable && do_sync) { -+ GstClock *clock; -+ -+ GST_OBJECT_LOCK (basesink); -+ clock = GST_ELEMENT_CLOCK (basesink); -+ if (clock && GST_STATE (basesink) == GST_STATE_PLAYING) { -+ GstClockTime base_time; -+ GstClockTime stime; -+ GstClockTime now; -+ -+ base_time = GST_ELEMENT_CAST (basesink)->base_time; -+ stime = base_time + gst_base_sink_adjust_time (basesink, rstart); -+ now = gst_clock_get_time (clock); -+ GST_OBJECT_UNLOCK (basesink); -+ -+ late = -+ gst_base_sink_is_too_late (basesink, obj, rstart, rstop, -+ GST_CLOCK_EARLY, GST_CLOCK_DIFF (stime, now), FALSE); -+ } else { -+ GST_OBJECT_UNLOCK (basesink); -+ } -+ } - - if (G_UNLIKELY (late)) - goto dropped; --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch deleted file mode 100755 index d682ee60c..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 73df2b5c0aea58015788f5a94a3ec65296a688d3 Mon Sep 17 00:00:00 2001 -From: Song Bing <b06498@freescale.com> -Date: Thu, 2 Jul 2015 14:32:21 +0800 -Subject: [PATCH] basesink: Shouldn't drop buffer when sync=false - -Shouldn't drop buffer when sync=false - -Upstream-Status: Accepted - -https://bugzilla.gnome.org/show_bug.cgi?id=751819 ---- - libs/gst/base/gstbasesink.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c -index d44e8fc..cd759ac 100644 ---- a/libs/gst/base/gstbasesink.c -+++ b/libs/gst/base/gstbasesink.c -@@ -3423,7 +3423,7 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad, - if (G_UNLIKELY (stepped)) - goto dropped; - -- if (syncable && do_sync) { -+ if (syncable && do_sync && gst_base_sink_get_sync (basesink)) { - GstClock *clock; - - GST_OBJECT_LOCK (basesink); --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch deleted file mode 100755 index f50ce6ff2..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0/inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch +++ /dev/null @@ -1,167 +0,0 @@ -From 83bed90c306ed3185d48febf6441177d638f7341 Mon Sep 17 00:00:00 2001 -From: Song Bing <b06498@freescale.com> -Date: Wed, 24 Dec 2014 10:13:51 +0800 -Subject: [PATCH] inputselector: sticky events haven't send out when active - track reach EOS - -EOS event hasn't been send to down-element. The resolution is block EOS event -of inactive pad, send the event after the pad actived. - -https://bugzilla.gnome.org/show_bug.cgi?id=740949 - -Upstream-Status: Backport [1.5.1] - -Signed-off-by: Song Bing <b06498@freescale.com> ---- - plugins/elements/gstinputselector.c | 58 ++++++++++++++++++++++++++--------- - plugins/elements/gstinputselector.h | 1 + - 2 files changed, 45 insertions(+), 14 deletions(-) - -diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c -index fb50802..4461f7c 100644 ---- a/plugins/elements/gstinputselector.c -+++ b/plugins/elements/gstinputselector.c -@@ -440,6 +440,17 @@ gst_selector_pad_iterate_linked_pads (GstPad * pad, GstObject * parent) - } - - static gboolean -+gst_input_selector_eos_wait (GstInputSelector * self, GstSelectorPad * pad) -+{ -+ while (!self->eos && !self->flushing && !pad->flushing) { -+ /* we can be unlocked here when we are shutting down (flushing) or when we -+ * get unblocked */ -+ GST_INPUT_SELECTOR_WAIT (self); -+ } -+ return self->flushing; -+} -+ -+static gboolean - gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) - { - gboolean res = TRUE; -@@ -486,6 +497,7 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) - case GST_EVENT_FLUSH_START: - /* Unblock the pad if it's waiting */ - selpad->flushing = TRUE; -+ sel->eos = FALSE; - GST_INPUT_SELECTOR_BROADCAST (sel); - break; - case GST_EVENT_FLUSH_STOP: -@@ -523,21 +535,12 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) - case GST_EVENT_EOS: - selpad->eos = TRUE; - -- if (forward) { -- selpad->eos_sent = TRUE; -- } else { -- GstSelectorPad *active_selpad; -- -- /* If the active sinkpad is in EOS state but EOS -- * was not sent downstream this means that the pad -- * got EOS before it was set as active pad and that -- * the previously active pad got EOS after it was -- * active -- */ -- active_selpad = GST_SELECTOR_PAD (active_sinkpad); -- forward = (active_selpad->eos && !active_selpad->eos_sent); -- active_selpad->eos_sent = TRUE; -+ if (!forward) { -+ /* blocked until active the sind pad or flush */ -+ gst_input_selector_eos_wait (sel, selpad); -+ forward = TRUE; - } -+ selpad->eos_sent = TRUE; - GST_DEBUG_OBJECT (pad, "received EOS"); - break; - case GST_EVENT_GAP:{ -@@ -676,6 +679,12 @@ gst_input_selector_wait_running_time (GstInputSelector * sel, - gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (selpad)); - active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad); - -+ if (sel->eos) { -+ GST_DEBUG_OBJECT (sel, "Not waiting because inputselector reach EOS."); -+ GST_INPUT_SELECTOR_UNLOCK (sel); -+ return FALSE; -+ } -+ - if (seg->format != GST_FORMAT_TIME) { - GST_DEBUG_OBJECT (selpad, - "Not waiting because we don't have a TIME segment"); -@@ -971,6 +980,12 @@ gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) - GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); - - GST_INPUT_SELECTOR_LOCK (sel); -+ if (sel->eos) { -+ GST_DEBUG_OBJECT (pad, "inputselector eos."); -+ GST_INPUT_SELECTOR_UNLOCK (sel); -+ goto eos; -+ } -+ - /* wait or check for flushing */ - if (gst_input_selector_wait (sel, selpad)) { - GST_INPUT_SELECTOR_UNLOCK (sel); -@@ -1151,6 +1166,13 @@ flushing: - res = GST_FLOW_FLUSHING; - goto done; - } -+eos: -+ { -+ GST_DEBUG_OBJECT (pad, "We are eos, discard buffer %p", buf); -+ gst_buffer_unref (buf); -+ res = GST_FLOW_EOS; -+ goto done; -+ } - } - - static void gst_input_selector_dispose (GObject * object); -@@ -1309,6 +1331,7 @@ gst_input_selector_init (GstInputSelector * sel) - g_mutex_init (&sel->lock); - g_cond_init (&sel->cond); - sel->blocked = FALSE; -+ sel->eos = FALSE; - - /* lets give a change for downstream to do something on - * active-pad change before we start pushing new buffers */ -@@ -1377,6 +1400,11 @@ gst_input_selector_set_active_pad (GstInputSelector * self, GstPad * pad) - GST_DEBUG_OBJECT (self, "New active pad is %" GST_PTR_FORMAT, - self->active_sinkpad); - -+ if (old != new && new->eos && !new->eos_sent) { -+ self->eos = TRUE; -+ GST_INPUT_SELECTOR_BROADCAST (self); -+ } -+ - return TRUE; - } - -@@ -1771,6 +1799,7 @@ gst_input_selector_change_state (GstElement * element, - switch (transition) { - case GST_STATE_CHANGE_READY_TO_PAUSED: - GST_INPUT_SELECTOR_LOCK (self); -+ self->eos = FALSE; - self->blocked = FALSE; - self->flushing = FALSE; - GST_INPUT_SELECTOR_UNLOCK (self); -@@ -1779,6 +1808,7 @@ gst_input_selector_change_state (GstElement * element, - /* first unlock before we call the parent state change function, which - * tries to acquire the stream lock when going to ready. */ - GST_INPUT_SELECTOR_LOCK (self); -+ self->eos = TRUE; - self->blocked = FALSE; - self->flushing = TRUE; - GST_INPUT_SELECTOR_BROADCAST (self); -diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h -index 96c680f..9bf924f 100644 ---- a/plugins/elements/gstinputselector.h -+++ b/plugins/elements/gstinputselector.h -@@ -77,6 +77,7 @@ struct _GstInputSelector { - GMutex lock; - GCond cond; - gboolean blocked; -+ gboolean eos; - gboolean flushing; - }; - --- -1.7.9.5 - diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb b/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb deleted file mode 100644 index 2876333f8..000000000 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb +++ /dev/null @@ -1,19 +0,0 @@ -include gstreamer1.0.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ - file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" - -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 \ - file://inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch \ - file://0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch \ - file://0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch \ - file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch \ -" -SRC_URI[md5sum] = "88a9289c64a4950ebb4f544980234289" -SRC_URI[sha256sum] = "40801aa7f979024526258a0e94707ba42b8ab6f7d2206e56adbc4433155cb0ae" - -S = "${WORKDIR}/gstreamer-${PV}" - |