bugGnash - The GNU Flash player - Bugs: bug #48087, gst_install_plugins_sync may...

 
 

bug #48087: gst_install_plugins_sync may freeze gnash or make too many popups

Submitted by:  Dag Hovland <daghovland>
Submitted on:  Thu 02 Jun 2016 08:23:11 AM UTC  
 
Category: video-gstSeverity: 3 - Normal
Release: 0.8.10Status: Fixed
Privacy: PublicAssigned to: Sandro Santilli <strk>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Mon 25 Jul 2016 04:04:36 PM UTC, comment #3:

Thanks!

Sandro Santilli <strk>
Project MemberIn charge of this item.
Mon 25 Jul 2016 10:36:36 AM UTC, comment #2:

I think this can be closed now, as [Patch #9016] has been applied

Dag Hovland <daghovland>
Thu 02 Jun 2016 10:54:31 AM UTC, comment #1:

Just now saw the patches list, so added it there:
patch #9016

Dag Hovland <daghovland>
Thu 02 Jun 2016 08:23:11 AM UTC, original submission:

This is a follow-up of support https://savannah.gnu.org/support/?109027 and gnash-dev email conversations on May 26- June 1.

Problems:
- The call to gst_install_plugins_sync in libmedia/gst/GstUtil.cpp will not return if the plugin installer crashes.
- If the plugin installation is unsuccessful or the user cancels, gst_install_plugins_sync will be called repeatedly, making the movie unusable.

Flash file:
http://kids.discovery.com/files/games/pompeii/media/global.swf

OS:
Ubuntu 16.04 (64 bit) without the package gstreamer0.10-ffmpeg installed.

Scenario:
Downloaded the file above, ran gtk-gnash from the commandline with the file. The plugin installer attempts to install gstreamer0.10-ffmpeg, which is not in the ubuntu distribution. The plugin installer crashes at this point, which freezes the whole movie and has to be killed.
If I instead click cancel in the plugin installer dialog, the plugin installer is just called again and again, making the movie unusable.

Fix in the attached patch
- Changed the call to gst_install_plugins_async, as recommended by the gstremaer docs.
- Made the movie pause during plugin installation, and resume afterwards. The user may click "Play" on the screen at any time, e.g. if the installer crashes.
- Prevented any further install attempts after the user has once clicked cancel.
- Added dialogs for some of the different return values from the gst plugin installer: Informing the user about the consequence of plugin installation errors, and asking the user whether to restart the movie in case of successful installation.

To do the last part, I had to get hold of a movie_root object, which was not available in libmedia. I passed the object down all the calls from the classes in libcore/asobj, where it is available.

If you can use this code, it would be nice. Please tell me if there are issues or it's better if I send this in some other way.

Questions:
- Is there a better way to get access to movie_root or the gui? (Sandro Santili suggests using RunResources instead, but that would also have to be passed down the same path. I think.)
- Do the automatic pausing of the movie during plugin installation, and the added dialogs fit in the general user experience?

Cheers,

Dag Hovland

Dag Hovland <daghovland>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #37350:  pluginasync.patch added by daghovland (31KiB - text/x-patch - patch for async gst plugin install)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by strk (Posted a comment)
  • -unavailable- added by daghovland (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 5 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Mon 25 Jul 2016 04:04:36 PM UTCstrkReleaseNone=>0.8.10
      StatusNone=>Fixed
      Assigned toNone=>strk
      Open/ClosedOpen=>Closed
    Thu 02 Jun 2016 08:23:11 AM UTCdaghovlandAttached File-=>Added pluginasync.patch, #37350

    Back to the top


    Powered by Savane 3.1-cleanup1