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 665756 - Showing a video background on the speaker screen crashes Pinpoint
Showing a video background on the speaker screen crashes Pinpoint
Status: RESOLVED WONTFIX
Product: pinpoint
Classification: Other
Component: general
unspecified
Other Linux
: Normal critical
: ---
Assigned To: Pinpoint maintainer(s)
Pinpoint maintainer(s)
gnome[unmaintained]
Depends on:
Blocks:
 
 
Reported: 2011-12-07 21:18 UTC by Chris Charles
Modified: 2018-08-17 19:57 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to fix the race condition (1.67 KB, patch)
2011-12-30 10:19 UTC, Gary Ching-Pang Lin
none Details | Review

Description Chris Charles 2011-12-07 21:18:33 UTC
Overview:

Running Pinpoint with the sample introduction.pin file, after downloading a video and renaming to bunny.ogv, crashes when the video slide should appear on the speaker screen.


Steps to Reproduce:

1) Download an Ogg Video file and rename to bunny.ogv. Place in Pinpoint build directory. I used the Big Buck Bunny preview located at

    http://developer.longtailvideo.com/trac/browser/trunk/html5/test/files/bunny.ogv?rev=944

and a few others.

2) Run Pinpoint with the sample presentation:

    ./pinpoint introduction.pin

3) Activate the speaker screen with F1.

4) Advance the presentation to slide #7 using the right arrow key.


Actual Results:

Segfault.


Expected Results:

The presentation should continue, possibly showing a thumbnail of the video on the speaker screen.


Build Date & Platform:

Pinpoint built from Git 92e553a47504a44b04fc28267877494116cdb296, 'blank screen when B is pressed', on Arch Linux.
Comment 1 Gary Ching-Pang Lin 2011-12-30 10:19:08 UTC
Created attachment 204345 [details] [review]
Patch to fix the race condition

Pinpoint crashed due to the race condition.

Pinpoint creates a new thread to update the frames every 15 milliseconds. However, rendering the thumbnail of the video may take longer, and then there will be 2 threads updating the frame spontaneously, so the cairo context will be cleaned by a thread when it finishes the thumbnail rendering and the other gets NULL when it tries to use the context.

My patch did a simple check and skip the frame until the previous one is done, and it works for me.
Comment 2 Chris Charles 2011-12-31 19:03:36 UTC
Seems to prevent the crash for me too. Thanks, Gary!
Comment 3 Antonio Terceiro 2012-03-18 12:16:20 UTC
this patch fixes the problem for me as well.
Comment 4 Pedro Villavicencio 2012-03-21 17:29:45 UTC
just for the record it works fine for me too, Thanks for the patch Gary!.
Comment 5 Jean-François Fortin Tam 2012-04-15 01:16:01 UTC
So, why not commit it? The patch is essential to being able to use videos in presentations.
Comment 6 Jean-François Fortin Tam 2012-05-30 20:16:51 UTC
Hmmm. I tested this again today in Fedora 17, using pinpoint master + the patch, and it doesn't work anymore. For some reason, it just hangs the UI when you try to switch to a slide that contains video with the presenter mode active.

There is no error/warning in the terminal and no segfault. Using Clutter 1.10.4. Gary, could you check if this fix is still working with newer distros?
Comment 7 Jean-François Fortin Tam 2012-05-30 20:21:23 UTC
Actually, I wonder if it might be due to the warnings as shown in bug 677122; namely, there is a suspicious "‘clutter_gst_video_sink_new’ is deprecated".
Comment 8 Lionel Landwerlin 2012-05-30 22:08:08 UTC
I think I fixed the "UI hangs" problem with this patch :

http://git.gnome.org/browse/pinpoint/commit/?id=f95713006bdb900bcc2b1231f4ba5aedca8591ce

It has been merged on master together with the patch proposed in this bug report.

Feel free to check it out and see if everything works well.
Comment 9 Jean-François Fortin Tam 2012-06-01 14:37:19 UTC
Indeed, it works now with those commits in master:


commit f95713006bdb900bcc2b1231f4ba5aedca8591ce
Author: Lionel Landwerlin <llandwerlin@gmail.com>
Date:   Wed May 30 22:39:28 2012 +0100

    Don't run gstreamer in a sub mainloop with the same maincontext


commit a1990fc0bfc722c194d5b8dfc59ca114e0c10561
Author: Gary Ching-Pang Lin <chingpang@gmail.com>
Date:   Fri Dec 30 18:04:37 2011 +0800

    Skip the frames until the previous frame is rendered
Comment 10 André Klapper 2018-08-17 19:57:27 UTC
pinpoint is not under active development anymore since 2015.
Its codebase has been archived:
https://gitlab.gnome.org/Archive/pinpoint/commits/master

Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect
reality. Please feel free to reopen this ticket (or rather transfer the project
to GNOME Gitlab, as GNOME Bugzilla is deprecated) if anyone takes the
responsibility for active development again.