GNOME Bugzilla – Bug 717671
use GStreamer for video thumbnailing once again
Last modified: 2013-05-01 06:39:00 UTC
---- Reported by adam@yorba.org 2011-03-29 09:54:00 -0700 ---- Original Redmine bug id: 3439 Original URL: http://redmine.yorba.org/issues/3439 Searchable id: yorba-bug-3439 Original author: Adam Dingle Original description: In 0.8, we used GStreamer to generate video thumbnails. Unfortunately we found that for a small set of obscure videos it would hang, which is untenable. In 0.9 we switched to using totem-video-thumbnailer. This works reliably, but some of our users understandable don't like Shotwell's dependency on Totem and all the packages that Totem in turn depends on. I now think we should switch back to using GStreamer, but implement a safeguard against GStreamer bugs that hang. There are two ways we could do that: 1. Implement a shotwell-video-thumbnailer program which runs as a separate process. This could be a simple program which uses GStreamer to generate a thumbnail without using any special tricks. If Shotwell ever notices that shotwell-video-thumbnailer has taken more than a few seconds to run, it can kill the process and, furthermore, not attempt to thumbnail any more videos of the same type. 2. Thumbnail videos using GStreamer in the main Shotwell process. We could use one GStreamer thread per video type. If any GStreamer thread hangs, no videos of that type will get thumbnails, but all the other threads will continue and generate thumbnails for all other videos. We'd to make sure that even if a thread hangs, the main import process appears to complete normally. I think we can't kill threads explicitly since that's relatively dangerous, so a hung thumbnailing thread would just remain hung for the lifetime of the Shotwell process. Related issues: related to shotwell - Feature #3411: Investigate ffmpegthumbnailer as an alternative to Totem (Invalid) ---- Additional Comments From shotwell-maint@gnome.bugs 2013-05-01 11:39:00 -0700 ---- ### History #### #1 Updated by Bruno Girin over 2 years ago For option 2, I would add that Shotwell should then blacklist the type of video that caused the thread to hang, at least for the duration of the Shotwell process so that I doesn't start that thread again when the user imports for a second time. One feature that would also be very useful is if the thumbnail generation was able to capture details of videos that cause problems so that the details can be logged and potentially reported upstream. #### #2 Updated by Eric Gregory over 2 years ago * **Status** changed from _Open_ to _Review_ * **Assignee** changed from _Anonymous_ to _Eric Gregory_ #### #3 Updated by Eric Gregory over 2 years ago * **Status** changed from _Review_ to _5_ * **Resolution** set to _fixed_ * **% Done** changed from _0_ to _100_ Fixed in 96fe5e59724bd3592add9ebcf073f6c464d77ff0 We now use a new process, shotwell-video-thumbnailer, for creating video thumbnails. It's less likely to hang than our previous implementation in my testing, but just in case there's a kill timeout and error reporting in the event of a hang. #### #4 Updated by Eric Gregory over 2 years ago Also see f1847bcb16c1b804dce5254507353fc6bd185ad1 #### #5 Updated by Charles Lindsay 7 months ago * **Status** changed from _5_ to _Fixed_ --- Bug imported by chaz@yorba.org 2013-11-25 21:53 UTC --- This bug was previously known as _bug_ 3439 at http://redmine.yorba.org/show_bug.cgi?id=3439 Unknown Component Using default product and component set in Parameters Unknown milestone "unknown in product shotwell. Setting to default milestone for this product, "---". Setting qa contact to the default for this product. This bug either had no qa contact or an invalid one.