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 797082 - new frames not drawn after getting last-sample of sink and reusing context
new frames not drawn after getting last-sample of sink and reusing context
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.14.x
Other Mac OS
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-09-05 12:28 UTC by Muhammet Ilendemli
Modified: 2018-11-03 12:10 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Example project (51.49 KB, application/zip)
2018-09-06 11:16 UTC, Muhammet Ilendemli
Details

Description Muhammet Ilendemli 2018-09-05 12:28:46 UTC
Getting the last-sample of a videosink and reinitializing GStreamer with the same UIView causes new frames not to be drawn.
Comment 1 Nicolas Dufresne (ndufresne) 2018-09-05 12:42:08 UTC
Thanks for taking the time to report this.
This bug report isn't very useful because it doesn't describe the bug well. If you have time and can still reproduce the bug, please read https://bugzilla.gnome.org/page.cgi?id=bug-writing.html and add a more useful description to this bug. When providing a better description, please reset the status of this bug report from NEEDINFO to its previous status. A better description should include a complete pipeline being used, a list of elements involved, etc.
Comment 2 Muhammet Ilendemli 2018-09-06 11:16:26 UTC
Sorry for the vague report. Here is a more detailored description of the issue i am having.

Short: Same as before, getting last-sample of a videosink causes no frames to be drawn when reusing the UIView.

We are running the following pipeline:
rtspsrc location=<url> latency=50 ! rtph264depay ! h264parse ! queue ! decodebin3 ! glimagesink

Steps to Reproduce:
Create a UIView which has a CAEAGLLayer as its layer. Start the pipeline and bind the sink to the UIView. Start playing the stream. While running get the last-sample from the sink. Stop playing the stream. Restart the pipeline but bind the sink to the old UIView.

Expected behaviour:
Context being cleared and new frames being drawn.

Actual behaviour:
No new frames are drawn even though frames are received.

PS: It works fine if you stop the stream and restart the pipeline with the old UIView without taking the last-sample.

Attached an example project aswell.
Comment 3 Muhammet Ilendemli 2018-09-06 11:16:58 UTC
Created attachment 373554 [details]
Example project
Comment 4 Julien Isorce 2018-09-07 03:21:42 UTC
Just a guess, make sure to unref the last sample when done.
Comment 5 Muhammet Ilendemli 2018-09-07 08:23:11 UTC
Unreffing by doing `GstBuffer *snapbuffer = gst_sample_get_buffer(gst_sample_copy(videobuffer));
gst_sample_unref(videobuffer);` didn't work either.
Comment 6 GStreamer system administrator 2018-11-03 12:10:03 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/484.