gst-player: Disable visualizations as workaround

Audio playback in gtk-play is broken with vaapi because the
visualizations do not work: disable visualizations as workaround.
This should be reverted as soon as [YOCTO #11410] is fixed.

(From OE-Core rev: 1092a8d4bc78a53f60ad0137aeb08b31853db9eb)

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jussi Kukkonen 2017-04-28 14:54:34 +03:00 committed by Richard Purdie
parent d7ec005904
commit 1565a24918
2 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,59 @@
From 6cf42c468e93b0aaa171961e059bc3e2fb915889 Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Fri, 28 Apr 2017 14:35:19 +0300
Subject: [PATCH] gtk-play: Disable visualizations
This is a workaround for [YOCTO #11410] (audio playback is broken in
mediaplayer if vaapi is used). It disables visualizations and makes
sure we clear the window (otherwise nothing does that and result is
very ugly).
This patch should be removed when 11410 is fixed.
Upstream-Status: Inappropriate [bug workaround]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
gtk/gtk-play.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c
index 8ae0fea..63b9bb0 100644
--- a/gtk/gtk-play.c
+++ b/gtk/gtk-play.c
@@ -1401,6 +1401,15 @@ get_child_position (GtkOverlay * overlay, GtkWidget * widget,
return TRUE;
}
+/* Hack to make sure something gets drawn if visualizations are disabled */
+static gboolean
+draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
+{
+ cairo_set_source_rgb (cr, 0, 0, 0);
+ cairo_paint (cr);
+ return FALSE;
+}
+
static void
create_ui (GtkPlay * play)
{
@@ -1431,6 +1440,8 @@ create_ui (GtkPlay * play)
play->video_area = gtk_drawing_area_new ();
g_signal_connect (play->video_area, "realize",
G_CALLBACK (video_area_realize_cb), play);
+ g_signal_connect (play->video_area, "draw",
+ G_CALLBACK (draw_cb), NULL);
}
gtk_widget_set_events (play->video_area, GDK_EXPOSURE_MASK
| GDK_LEAVE_NOTIFY_MASK
@@ -1753,7 +1764,7 @@ gtk_play_constructor (GType type, guint n_construct_params,
/* enable visualization (by default playbin uses goom) */
/* if visualization is enabled then use the first element */
- gst_player_set_visualization_enabled (self->player, TRUE);
+ gst_player_set_visualization_enabled (self->player, FALSE);
g_signal_connect (G_OBJECT (self), "show", G_CALLBACK (show_cb), NULL);
--
2.1.4

View File

@ -8,6 +8,7 @@ SRC_URI = "git://github.com/sdroege/gst-player.git \
file://filechooser.patch;apply=0 \
file://Fix-pause-play.patch;apply=0 \
file://Add-error-signal-emission-for-missing-plugins.patch;apply=0 \
file://0001-gtk-play-Disable-visualizations.patch \
file://gst-player.desktop"
SRCREV = "ee3c226c82767a089743e4e06058743e67f73cdb"