GNOME Bugzilla – Bug 132057
Seg. fault when decoding QuickTIme/MJPEG
Last modified: 2004-12-22 21:47:04 UTC
I have several QuickTime files that use the MJPEG codec. Gst-launch seg. faults when I try to decode them with: gst-launch filesrc location=acronyms.mov ! qtdemux name=demux .video_00 ! { queue ! jpegdec ! colorspace ! ximagesink } Here is a gdb backtrace of the same: [mike@imp mike]$ gdb gst-launch GNU gdb Red Hat Linux (5.3.90-0.20030710.41rh) Copyright 2003 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ppc-redhat-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) run filesrc location=~/flyn_mind/docs/videos/50th_anniversary.mov ! qtdemux name=demux .video_00 ! { queue ! jpegdec ! colorspace ! ximagesink } Starting program: /usr/local/bin/gst-launch filesrc location=~/flyn_mind/docs/videos/50th_anniversary.mov ! qtdemux name=demux .video_00 ! { queue ! jpegdec ! colorspace ! ximagesink } [Thread debugging using libthread_db enabled] [New Thread 805549440 (LWP 3031)] RUNNING pipeline [New Thread 809954080 (LWP 3032)] Program received signal SIGSEGV, Segmentation fault.
+ Trace 43388
Thread 809954080 (LWP 3032)
A quick peek at things shows that the code seg. faults because jpegdec->line[0] is NULL when "jpegdec->line[0][j] = base[0]; base[0] += width" executes.
jpegdec broke some time ago, I'll fix it when I find some time to do it...
I am still having problems with this (using version 0.7.5). I no longer get a seg. fault. However, gst-launch seems to hang before any display window is drawn to the screen: [mike@imp videos]$ gst-launch filesrc location=acronyms.mov ! qtdemux name=demux .video_00 ! { queue ! jpegdec ! colorspace ! ximagesink } RUNNING pipeline ... format index is 0 ** (process:6736): CRITICAL **: file ximagesink.c: line 386 (gst_ximagesink_xwindow_clear): assertion `xwindow != NULL' failed format index is 4
With gstreamer 0.8.0: gst-launch filesrc location=acronyms.mov ! qtdemux name=demux .video_00 ! { queue ! jpegdec ! ffcolorspace ! ximagesink } works fine. gst-launch filesrc location=acronyms.mov ! qtdemux name=demux .video_00 ! { queue ! jpegdec ! colorspace ! ximagesink } says: format index is 0 format index is 4 ERROR: from element /pipeline0/thread0/ximagesink0: Internal GStreamer error: state change failed. File a bug. Perhaps this is a bug in colorspace vs. ffcolorspace?
Well, it's not a _bug_ in colorspace. It's just a conversion it doesn't support. colorspace is rather limited (compared to 0.6). If that's the only problem remaining in this bug, could you close it? Thanks.
I am closing this bug on David's advice. Things work fine when I use ffcolorspace.