GNOME Bugzilla – Bug 708034
shotwell.video.thumnail fails to create video with version other than 1.0.7
Last modified: 2013-09-18 09:23:00 UTC
When using shotwell to manage photos/videos with gstreamer version 1.0.5 or 1.0.10 shotwell is not able to produce video thumbnails. The app functions normally with gstreamer-1.0.7. the app error is: L 21237 2013-09-12 10:13:32 [WRN] VideoSupport.vala:254: Error creating pixbuf: Unrecognized image file format
Can you provide a debug log with GST_DEBUG=6 with GStreamer 1.0.10 and attach it here? Also this should probably be first assigned to shotwell, I have no idea what they're doing.
Created attachment 255071 [details] GST_DEBUG=6 log running shotwell
See also http://redmine.yorba.org/issues/7258 and https://bugzilla.redhat.com/show_bug.cgi?id=986574 (in particular the debug log at https://bugzilla.redhat.com/show_bug.cgi?id=986574#c5 ) The shotwell side of things is *really* simple: http://git.yorba.org/cgit.cgi/shotwell/tree/thumbnailer/shotwell-video-thumbnailer.vala
> class ShotwellThumbnailer { > const string caps_string = """video/x-raw,format=RGB,bpp=32,depth=32,pixel-aspect-ratio=1/1"""; In 1.0 the bpp/depth is expressed through the format string. If you want bpp=32 and depth=32 you want ARGB or RGBA or somesuch. If you want bpp=32 and depth=24 you want format=RGBx or xRGB or xBGR or somesuch. If you want bpp=24 and depth=24 then format=RGB is ok. So these caps are broken, because if you specify those bpp/depth fields it means they *must* be present now in 1.x. The patch that enforces this strictly was backported to the 1.0 branch after much testing because it fixes other important things. Unfortunately it breaks cases like this with broken caps. Sorry. Please try removing the bpp/depth fields and see if that helps. Btw, you could simplify your code a lot by using gdkpixbufsink from gst-plugins-good. Then you just do 1) seek 2) wait for ASYNC_DONE on the bus, or do a get_state() with a timeout and wait for it to return SUCCESS 4) read the "last-pixbuf" property of the gdkpixbufsink 5) hey presto, a GdkPixbuf :)
sed s^video/x-raw,format=RGB,bpp=32,depth=32,pixel-aspect-ratio=1/1^video/x-raw,format=RGB,bpp=24,depth=24,pixel-aspect-ratio=1/1^ -i shotwell-video-thumbnailer That didn't work. Then I stopped being lazy and actually rebuilt it with this patch: - const string caps_string = """video/x-raw,format=RGB,bpp=32,depth=32,pixel-aspect-ratio=1/1"""; + const string caps_string = """video/x-raw,format=RGB,pixel-aspect-ratio=1/1"""; That one appears to work.
The second one is correct (no bpp/depth fields at all any more). Moving this back to shotwell then, since I don't think there's anything left to do in GStreamer in this case. Again sorry for the breakage, but the caps were incorrect from the start, it was basically just a lucky coincidence they had been working until then.