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 132057 - Seg. fault when decoding QuickTIme/MJPEG
Seg. fault when decoding QuickTIme/MJPEG
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gst-plugins
0.7.3
Other Linux
: Normal normal
: NONE
Assigned To: Ronald Bultje
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2004-01-21 03:53 UTC by W. Michael Petullo
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.3/2.4



Description W. Michael Petullo 2004-01-21 03:53:37 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.

Thread 809954080 (LWP 3032)

  • #0 gst_jpegdec_chain
    at gstjpegdec.c line 441
  • #1 gst_jpegdec_chain
    at gstjpegdec.c line 462
  • #2 gst_pad_push
    at gstpad.c line 2347
  • #3 get_group_schedule_function
    at gstoptimalscheduler.c line 970
  • #4 schedule_group
    at gstoptimalscheduler.c line 841
  • #5 gst_opt_scheduler_schedule_run_queue
    at gstoptimalscheduler.c line 880
  • #6 schedule_chain
    at gstoptimalscheduler.c line 924
  • #7 gst_opt_scheduler_iterate
    at gstoptimalscheduler.c line 2074
  • #8 gst_scheduler_iterate
    at gstscheduler.c line 729
  • #9 gst_bin_iterate_func
    at gstbin.c line 1080
  • #10 gst_marshal_BOOLEAN__VOID
    at gstmarshal.c line 353
  • #11 g_type_class_meta_marshal
    at gclosure.c line 514
  • #12 g_closure_invoke
    at gclosure.c line 437
  • #13 signal_emit_unlocked_R
    at gsignal.c line 2860
  • #14 g_signal_emit_valist
    at gsignal.c line 2564
  • #15 g_signal_emit
    at gsignal.c line 2612
  • #16 gst_bin_iterate
    at gstbin.c line 1119
  • #17 gst_thread_main_loop
    at gstthread.c line 551
  • #18 g_thread_create_proxy
    at gthread.c line 551
  • #19 start_thread
    from /lib/tls/libpthread.so.0
  • #20 clone
    from /lib/tls/libc.so.6

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.
Comment 1 Ronald Bultje 2004-01-21 08:56:35 UTC
jpegdec broke some time ago, I'll fix it when I find some time to do it...
Comment 2 W. Michael Petullo 2004-03-07 17:28:10 UTC
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
Comment 3 W. Michael Petullo 2004-03-18 03:14:29 UTC
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?
Comment 4 David Schleef 2004-03-18 03:18:42 UTC
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.
Comment 5 W. Michael Petullo 2004-03-18 04:06:08 UTC
I am closing this bug on David's advice.  Things work fine when I use
ffcolorspace.