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 722303 - v4l2sink: Enable rendering of the preroll buffer
v4l2sink: Enable rendering of the preroll buffer
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 1.3.3
Assigned To: Nicolas Dufresne (ndufresne)
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-01-15 22:50 UTC by Nicolas Dufresne (ndufresne)
Modified: 2014-05-26 18:09 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Allow process a buffer again (3.34 KB, patch)
2014-01-15 22:50 UTC, Nicolas Dufresne (ndufresne)
needs-work Details | Review
Enable display of preroll buffer (2.68 KB, patch)
2014-01-15 22:51 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review
Implement get_times (4.11 KB, patch)
2014-01-15 22:51 UTC, Nicolas Dufresne (ndufresne)
rejected Details | Review

Description Nicolas Dufresne (ndufresne) 2014-01-15 22:50:18 UTC
This was disabled in the past due to issue with processing an already queued buffer. The following patches fixes the issue and re-enable this feature.
Comment 1 Nicolas Dufresne (ndufresne) 2014-01-15 22:50:59 UTC
Created attachment 266411 [details] [review]
Allow process a buffer again
Comment 2 Nicolas Dufresne (ndufresne) 2014-01-15 22:51:25 UTC
Created attachment 266412 [details] [review]
Enable display of preroll buffer
Comment 3 Nicolas Dufresne (ndufresne) 2014-01-15 22:51:43 UTC
Created attachment 266413 [details] [review]
Implement get_times
Comment 4 Sebastian Dröge (slomo) 2014-05-26 12:39:52 UTC
Comment on attachment 266411 [details] [review]
Allow process a buffer again

This needs to be updated to latest GIT. There is no meta in v4l2 anymore

Nicolas, what's the plan here?
Comment 5 Nicolas Dufresne (ndufresne) 2014-05-26 15:31:19 UTC
Ok, the status is that this method is wrong for encoder, since the encoder won't let you dequeue it's observation. We have to copy if we want to render the same buffer again, it's actually very simple to do.
Comment 6 Nicolas Dufresne (ndufresne) 2014-05-26 18:04:09 UTC
Comment on attachment 266413 [details] [review]
Implement get_times

This I won't merge. Looking at it, it's a bit unrelated and not needed for the problem we are solving. It improve support for buffer without duration by calculating the duration from the framerate. This could be done in the GstVideoSink base class, though I don't understand well the effect.
Comment 7 Nicolas Dufresne (ndufresne) 2014-05-26 18:08:42 UTC
commit 5c07e6b45c9a9c91ea5e5dbe577f75830d69ad65
Author: Julien Isorce <julien.isorce@collabora.co.uk>
Date:   Mon May 26 10:59:55 2014 -0400

    v4l2sink: implement gstvideosink.show_frame instead of gstbasesink.render
    
    It allows to show preroll frame. Especially it allows to update the
    frame when seeking in PAUSED state.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722303


commit b3bf4e33d00d3c6b59d1f9aee46a58786ae08dfb
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Mon May 26 12:34:42 2014 -0400

    v4l2bufferpool: Copy already queued buffer
    
    This is required as during preroll we pass the first buffer twice, hence already
    queued. It is also useful, to allow filters replaying a previous rendered buffers.
    This will require 1 more buffer in sink if last-sample is enabled, since the last
    sample will not be the same as the currently queued buffer.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=722303
Comment 8 Nicolas Dufresne (ndufresne) 2014-05-26 18:09:22 UTC
Comment on attachment 266412 [details] [review]
Enable display of preroll buffer

Had to manually redo this one.