From: Boszormenyi Zoltan <zboszor@pr.hu>
To: "meta-freescale@yoctoproject.org" <meta-freescale@yoctoproject.org>
Subject: Sync to V-blank
Date: Thu, 03 Apr 2014 12:28:51 +0200 [thread overview]
Message-ID: <533D37E3.9070109@pr.hu> (raw)
[-- Attachment #1: Type: text/plain, Size: 843 bytes --]
Hi,
is there a way to enable double buffering in X on the
I would like to achieve tearing-free/flicker-free video.
I have just tried "gst-launch-1.0 playbin uri=file://..."
on a couple of 720p and 1080p test videos and there is
visible tearing when sideways movement or fast fading in
or fading out happens on the screen.
I found this thread: https://community.freescale.com/thread/303863
but "export FB_MULTI_BUFFER=2" doesn't seem to
do anything. Indeed, the "FB_MULTI_BUFFER" string
is not in any of the libraries in /usr/lib or /lib.
Then I looked into the gstreamer1.0-plugins-imx sources
and came up with the attached patch, rebuilt the package,
removed from the board and installed it again. The flicker
is still there.
Do the Vivante drivers support sync-to-V-blank?
Thanks in advance,
Zoltán Böszörményi
[-- Attachment #2: set-eglswapinterval.patch --]
[-- Type: text/x-patch, Size: 1858 bytes --]
diff --git a/src/eglvivsink/egl_platform_fb.c b/src/eglvivsink/egl_platform_fb.c
index eda6040..ad11a25 100644
--- a/src/eglvivsink/egl_platform_fb.c
+++ b/src/eglvivsink/egl_platform_fb.c
@@ -71,20 +71,25 @@ GstImxEglVivSinkEGLPlatform* gst_imx_egl_viv_sink_egl_platform_create(gchar cons
return NULL;
}
if (!eglInitialize(platform->egl_display, &ver_major, &ver_minor))
{
GST_ERROR("eglInitialize failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
g_free(platform);
return NULL;
}
+ if (eglSwapInterval(platform->egl_display, 1) != EGL_TRUE)
+ {
+ GST_WARNING("eglSwapInterval failed, flicker possible!");
+ }
+
GST_INFO("FB EGL platform initialized, using EGL %d.%d", ver_major, ver_minor);
return platform;
}
void gst_imx_egl_viv_sink_egl_platform_destroy(GstImxEglVivSinkEGLPlatform *platform)
{
if (platform != NULL)
{
diff --git a/src/eglvivsink/egl_platform_x11.c b/src/eglvivsink/egl_platform_x11.c
index 99ae600..ca7b33e 100644
--- a/src/eglvivsink/egl_platform_x11.c
+++ b/src/eglvivsink/egl_platform_x11.c
@@ -84,20 +84,25 @@ GstImxEglVivSinkEGLPlatform* gst_imx_egl_viv_sink_egl_platform_create(gchar cons
}
if (!eglInitialize(platform->egl_display, &ver_major, &ver_minor))
{
GST_ERROR("eglInitialize failed: %s", gst_imx_egl_viv_sink_egl_platform_get_last_error_string());
XCloseDisplay(x11_display);
g_free(platform);
return NULL;
}
+ if (eglSwapInterval(platform->egl_display, 1) != EGL_TRUE)
+ {
+ GST_WARNING("eglSwapInterval failed, flicker possible!");
+ }
+
GST_INFO("X11 EGL platform initialized, using EGL %d.%d", ver_major, ver_minor);
return platform;
}
void gst_imx_egl_viv_sink_egl_platform_destroy(GstImxEglVivSinkEGLPlatform *platform)
{
if (platform != NULL)
{
next reply other threads:[~2014-04-03 10:28 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-03 10:28 Boszormenyi Zoltan [this message]
2014-04-03 10:32 ` Sync to V-blank Carlos Rafael Giani
-- strict thread matches above, loose matches on Subject: below --
2014-05-12 0:49 Eric Nelson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=533D37E3.9070109@pr.hu \
--to=zboszor@pr.hu \
--cc=meta-freescale@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.