After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 729335 - basesink: Should render buffers that arrived on time even if prepare() took some time
basesink: Should render buffers that arrived on time even if prepare() took s...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal normal
: 1.3.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 728759 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2014-05-01 14:59 UTC by Nicolas Dufresne (ndufresne)
Modified: 2014-05-02 22:54 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Always render prepared buffer if they arrived on time (2.13 KB, patch)
2014-05-01 14:59 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review

Description Nicolas Dufresne (ndufresne) 2014-05-01 14:59:29 UTC
Created attachment 275548 [details] [review]
Always render prepared buffer if they arrived on time

Currently basesink drops buffers if after having run prepare() they are considered late. This starves rendering, with result of no frame being rendered if prepare() takes a lot of time. This affect glimagesink on HW with low memory bandwidth. Instead of degrading correctly the rendering performance, we get no frame displayed.
Comment 1 Nicolas Dufresne (ndufresne) 2014-05-01 15:23:25 UTC
*** Bug 728759 has been marked as a duplicate of this bug. ***
Comment 2 Nicolas Dufresne (ndufresne) 2014-05-02 22:53:42 UTC
Comment on attachment 275548 [details] [review]
Always render prepared buffer if they arrived on time

commit 3895e431bd8e894b060c514f89618d7c74a84dfa
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Thu May 1 10:37:18 2014 -0400

    basesink: Always render prepared buffer
    
    Currently, if prepare() takes too much time, we skip the call to render().
    The side effect of this, is that we endup starving the render(). The solution
    in this patch is to always render frames that are on time before prepare() is
    executed. This will maximize the number of frames we display and smoothly
    degrade the rendering performance.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=729335