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 343661 - Jpeg image crashes gstreamer
Jpeg image crashes gstreamer
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
0.10.3
Other All
: Normal critical
: 0.10.4
Assigned To: Wim Taymans
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-06-02 02:06 UTC by Sam Morris
Modified: 2006-06-09 17:13 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
Debug output (187.99 KB, application/x-gzip)
2006-06-06 13:09 UTC, Sam Morris
Details

Description Sam Morris 2006-06-02 02:06:38 UTC
Steps to reproduce:
$ gst-launch -v playbin uri='http://robots.org.uk/stuff/bug.jpg'
Setting pipeline to PAUSED ...
/playbin0/decoder.sink: caps = NULL
Pipeline is PREROLLING ...
/playbin0/decoder/typefind.src: caps = image/jpeg
/playbin0/decoder.src0: caps = NULL
/playbin0/selector_video_src0: active-pad = "sink0"
/playbin0/vbin.sink: caps = NULL
/playbin0/decoder/jpegdec0.sink: caps = image/jpeg
/playbin0/preroll_video_src0: min-threshold-time = 2000000000
/playbin0/decoder/jpegdec0.src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)2850, height=(int)1425, framerate=(fraction)0/1
/playbin0/vbin/id.sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)2850, height=(int)1425, framerate=(fraction)0/1
/playbin0/vbin/id.src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)2850, height=(int)1425, framerate=(fraction)0/1
/playbin0/preroll_video_src0.src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)2850, height=(int)1425, framerate=(fraction)0/1
Segmentation fault

Stack trace:
Can't seem to get one.

$ gdb gst-launch
(no debugging symbols found)
Using host libthread_db library "/usr/lib/debug/libthread_db.so.1".
(gdb) set args -v playbin uri=file:///home/sam/Documents/robots.org.uk/site/bug.jpg
(gdb) handle SIG32 nostop print pass
Signal        Stop      Print   Pass to program Description
SIG32         No        Yes     Yes             Real-time event 32
(gdb) run
Starting program: /usr/bin/gst-launch -v playbin uri=file:///home/sam/Documents/robots.org.uk/site/bug.jpg
(no debugging symbols found)
Setting pipeline to PAUSED ...
/playbin0/decoder.sink: caps = NULL
ERROR: Pipeline doesn't want to pause.
ERROR: from element /playbin0/source: Resource not found.
Additional debug info:
gstgnomevfssrc.c(835): gst_gnome_vfs_src_start (): /playbin0/source:
Could not open vfs file "file:///home/sam/Documents/robots.org.uk/site/bug.jpg" for reading: File not found
Setting pipeline to NULL ...
FREEING pipeline ...

Program received signal SIG32, Real-time event 32.

Program received signal SIG32, Real-time event 32.

Program received signal SIG32, Real-time event 32.

Program received signal SIG32, Real-time event 32.

Program received signal SIG32, Real-time event 32.

Program exited with code 0377.

Other information:
Comment 1 Sam Morris 2006-06-06 13:09:00 UTC
Created attachment 66824 [details]
Debug output

Output of GST_DEBUG=4 gst-launch -v playbin uri='http://robots.org.uk/stuff/bug.jpg'
Comment 2 Wim Taymans 2006-06-08 08:59:56 UTC
a 4:4:4 jpeg image. Our sampling calculations are wrong and so we allow jpeglib to write to invalid memory.
Comment 3 Wim Taymans 2006-06-09 17:13:42 UTC
Problem was that the buffers were not allocated big enough to hold this big an image. Fixed in cvs now with this commit:

        * ext/jpeg/gstjpegdec.c: (gst_idct_method_get_type),
        (gst_jpeg_dec_class_init), (gst_jpeg_dec_init),
        (gst_jpeg_dec_decode_indirect), (gst_jpeg_dec_decode_direct),
        (gst_jpeg_dec_chain), (gst_jpeg_dec_sink_event),
        (gst_jpeg_dec_set_property), (gst_jpeg_dec_get_property):
        * ext/jpeg/gstjpegdec.h:
        API: Added IDCT method property
        Small cleanups.
        Avoid dynamic allocation of trivial fixed structure.
        Allocate enough space for temp 4:4:4 YUV buffers. Fixes #343661.