[GEM-dev] Segfault with mjpeg movie and [pix_film]

Jack jack at rybn.org
Wed May 9 16:57:50 CEST 2012


Hello,

When I load a mjpeg movie (endoded with ffmpeg) with [pix_film], pd crash.

I have this output with valgrind :
$ valgrind pd -open
'/home/jack/Documents/ProjetsExternes/Mié/patchsPd/envol/absCalageZone.pd'
==6610== Memcheck, a memory error detector
==6610== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==6610== Using Valgrind-3.6.1-Debian and LibVEX; rerun with -h for
copyright info
==6610== Command: pd -open
/home/jack/Documents/ProjetsExternes/Mié/patchsPd/envol/absCalageZone.pd
==6610==
open: /etc/pd/gem.conf: No such file or directory
open: /home/jack/.config/pure-data/gem.conf: No such file or directory
open: ./gem.conf: No such file or directory
load plugins 'film' in '/home/jack/Gem/'
pattern : /home/jack/Gem/gem_film*.so
dylib loading file '/home/jack/Gem/gem_filmAVIPLAY.so'!
<init> : Avifile RELEASE-0.7.48-110904-08:38-../src/configure
<init> : Available CPU flags: fpu vme de pse tsc msr pae mce cx8 apic
sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht
tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology
nonstop_tsc
<init> : 800.00 MHz Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz processor
detected
dylib loading file '/home/jack/Gem/gem_filmMPEG3.so'!
dylib loading file '/home/jack/Gem/gem_filmQT4L.so'!
load plugins 'image' in '/home/jack/Gem/'
pattern : /home/jack/Gem/gem_image*.so
dylib loading file '/home/jack/Gem/gem_imageJPEG.so'!
dylib loading file '/home/jack/Gem/gem_imageMAGICK.so'!
dylib loading file '/home/jack/Gem/gem_imageSGI.so'!
dylib loading file '/home/jack/Gem/gem_imageTIFF.so'!
watchdog: signaling pd...
not reloading 'image' plugins (already 4 loaded)
load plugins 'image' in '/home/jack/Gem/'
pattern : /home/jack/Gem/gem_image*.so
dylib loading file '/home/jack/Gem/gem_imageJPEG.so'!
dylib loading file '/home/jack/Gem/gem_imageMAGICK.so'!
dylib loading file '/home/jack/Gem/gem_imageSGI.so'!
dylib loading file '/home/jack/Gem/gem_imageTIFF.so'!
load plugins 'model' in '/home/jack/Gem/'
pattern : /home/jack/Gem/gem_model*.so
dylib loading file '/home/jack/Gem/gem_modelOBJ.so'!
load plugins 'record' in '/home/jack/Gem/'
pattern : /home/jack/Gem/gem_record*.so
dylib loading file '/home/jack/Gem/gem_recordQT4L.so'!
dylib loading file '/home/jack/Gem/gem_recordV4L2.so'!
dylib loading file '/home/jack/Gem/gem_recordV4L.so'!
==6610== Invalid read of size 4
==6610==    at 0x6CD195F: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6CD2480: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6CD576B: lqt_registry_init (in
/usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x7E9CEAA: gem::plugins::recordQT4L::recordQT4L()
(recordQT4L.cpp:61)
==6610==    by 0x7E9D67B: gem::plugins::record*
gem::PluginFactoryRegistrar::allocator<gem::plugins::recordQT4L,
gem::plugins::record>() (PluginFactoryTimple.h:134)
==6610==    by 0x49E68BA: gem::plugins::recordMeta::recordMeta()
(PluginFactoryTimple.h:70)
==6610==    by 0x49DF15B: gem::plugins::record::getInstance()
(record.cpp:289)
==6610==    by 0x49B6984: gem::plugins::init() (PluginFactory.cpp:174)
==6610==    by 0x4979269: Gem::setup() (Setup.cpp:225)
==6610==    by 0x75746572: ???
==6610==  Address 0x45bbf08 is 64 bytes inside a block of size 67 alloc'd
==6610==    at 0x4028876: malloc (vg_replace_malloc.c:236)
==6610==    by 0x6CD1933: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6CD2480: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6CD576B: lqt_registry_init (in
/usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x7E9CEAA: gem::plugins::recordQT4L::recordQT4L()
(recordQT4L.cpp:61)
==6610==    by 0x7E9D67B: gem::plugins::record*
gem::PluginFactoryRegistrar::allocator<gem::plugins::recordQT4L,
gem::plugins::record>() (PluginFactoryTimple.h:134)
==6610==    by 0x49E68BA: gem::plugins::recordMeta::recordMeta()
(PluginFactoryTimple.h:70)
==6610==    by 0x49DF15B: gem::plugins::record::getInstance()
(record.cpp:289)
==6610==    by 0x49B6984: gem::plugins::init() (PluginFactory.cpp:174)
==6610==    by 0x4979269: Gem::setup() (Setup.cpp:225)
==6610==    by 0x75746572: ???
==6610==
==6610== Invalid read of size 4
==6610==    at 0x6CD194B: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6CD2480: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6CD576B: lqt_registry_init (in
/usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x7E9CEAA: gem::plugins::recordQT4L::recordQT4L()
(recordQT4L.cpp:61)
==6610==    by 0x7E9D67B: gem::plugins::record*
gem::PluginFactoryRegistrar::allocator<gem::plugins::recordQT4L,
gem::plugins::record>() (PluginFactoryTimple.h:134)
==6610==    by 0x49E68BA: gem::plugins::recordMeta::recordMeta()
(PluginFactoryTimple.h:70)
==6610==    by 0x49DF15B: gem::plugins::record::getInstance()
(record.cpp:289)
==6610==    by 0x49B6984: gem::plugins::init() (PluginFactory.cpp:174)
==6610==    by 0x4979269: Gem::setup() (Setup.cpp:225)
==6610==    by 0x75746572: ???
==6610==  Address 0x45bc08c is 68 bytes inside a block of size 70 alloc'd
==6610==    at 0x4028876: malloc (vg_replace_malloc.c:236)
==6610==    by 0x6CD1933: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6CD2480: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6CD576B: lqt_registry_init (in
/usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x7E9CEAA: gem::plugins::recordQT4L::recordQT4L()
(recordQT4L.cpp:61)
==6610==    by 0x7E9D67B: gem::plugins::record*
gem::PluginFactoryRegistrar::allocator<gem::plugins::recordQT4L,
gem::plugins::record>() (PluginFactoryTimple.h:134)
==6610==    by 0x49E68BA: gem::plugins::recordMeta::recordMeta()
(PluginFactoryTimple.h:70)
==6610==    by 0x49DF15B: gem::plugins::record::getInstance()
(record.cpp:289)
==6610==    by 0x49B6984: gem::plugins::init() (PluginFactory.cpp:174)
==6610==    by 0x4979269: Gem::setup() (Setup.cpp:225)
==6610==    by 0x75746572: ???
==6610==
load plugins 'video' in '/home/jack/Gem/'
pattern : /home/jack/Gem/gem_video*.so
dylib loading file '/home/jack/Gem/gem_videoDC1394.so'!
dylib loading file '/home/jack/Gem/gem_videoV4L2.so'!
dylib loading file '/home/jack/Gem/gem_videoV4L.so'!
dylib loading file '/home/jack/Gem/gem_videoVLC.so'!
==6620==
==6620== HEAP SUMMARY:
==6620==     in use at exit: 10,274,971 bytes in 14,782 blocks
==6620==   total heap usage: 45,435 allocs, 30,653 frees, 46,678,861
bytes allocated
==6620==
==6620== LEAK SUMMARY:
==6620==    definitely lost: 13,974 bytes in 33 blocks
==6620==    indirectly lost: 8,303 bytes in 488 blocks
==6620==      possibly lost: 1,509 bytes in 55 blocks
==6620==    still reachable: 10,251,185 bytes in 14,206 blocks
==6620==         suppressed: 0 bytes in 0 blocks
==6620== Rerun with --leak-check=full to see details of leaked memory
==6620==
==6620== For counts of detected and suppressed errors, rerun with: -v
==6620== ERROR SUMMARY: 165 errors from 2 contexts (suppressed: 457 from 11)
==6621==
==6621== HEAP SUMMARY:
==6621==     in use at exit: 10,274,971 bytes in 14,782 blocks
==6621==   total heap usage: 45,435 allocs, 30,653 frees, 46,678,861
bytes allocated
==6621==
==6621== LEAK SUMMARY:
==6621==    definitely lost: 13,974 bytes in 33 blocks
==6621==    indirectly lost: 8,303 bytes in 488 blocks
==6621==      possibly lost: 1,509 bytes in 55 blocks
==6621==    still reachable: 10,251,185 bytes in 14,206 blocks
==6621==         suppressed: 0 bytes in 0 blocks
==6621== Rerun with --leak-check=full to see details of leaked memory
==6621==
==6621== For counts of detected and suppressed errors, rerun with: -v
==6621== ERROR SUMMARY: 165 errors from 2 contexts (suppressed: 457 from 11)
==6622==
==6622== HEAP SUMMARY:
==6622==     in use at exit: 10,274,971 bytes in 14,782 blocks
==6622==   total heap usage: 45,435 allocs, 30,653 frees, 46,678,861
bytes allocated
==6622==
watchdog: signaling pd...
==6622== LEAK SUMMARY:
==6622==    definitely lost: 13,974 bytes in 33 blocks
==6622==    indirectly lost: 8,303 bytes in 488 blocks
==6622==      possibly lost: 1,509 bytes in 55 blocks
==6622==    still reachable: 10,251,185 bytes in 14,206 blocks
==6622==         suppressed: 0 bytes in 0 blocks
==6622== Rerun with --leak-check=full to see details of leaked memory
==6622==
==6622== For counts of detected and suppressed errors, rerun with: -v
==6622== ERROR SUMMARY: 165 errors from 2 contexts (suppressed: 457 from 11)
==6623==
==6623== HEAP SUMMARY:
==6623==     in use at exit: 10,274,971 bytes in 14,782 blocks
==6623==   total heap usage: 45,435 allocs, 30,653 frees, 46,678,861
bytes allocated
==6623==
==6623== LEAK SUMMARY:
==6623==    definitely lost: 13,974 bytes in 33 blocks
==6623==    indirectly lost: 8,303 bytes in 488 blocks
==6623==      possibly lost: 1,509 bytes in 55 blocks
==6623==    still reachable: 10,251,185 bytes in 14,206 blocks
==6623==         suppressed: 0 bytes in 0 blocks
==6623== Rerun with --leak-check=full to see details of leaked memory
==6623==
==6623== For counts of detected and suppressed errors, rerun with: -v
==6623== ERROR SUMMARY: 165 errors from 2 contexts (suppressed: 457 from 11)
watchdog: signaling pd...
watchdog: signaling pd...
watchdog: signaling pd...
==6610== Warning: invalid file descriptor -1 in syscall close()
watchdog: signaling pd...
not reloading 'film' plugins (already 3 loaded)
not reloading 'image' plugins (already 4 loaded)
==6610== Invalid write of size 1
==6610==    at 0x8028EDE: jpeg_idct_islow (in
/usr/lib/i386-linux-gnu/libjpeg.so.8.3.0)
==6610==    by 0x8016E41: ??? (in /usr/lib/i386-linux-gnu/libjpeg.so.8.3.0)
==6610==    by 0x801473B: jpeg_read_raw_data (in
/usr/lib/i386-linux-gnu/libjpeg.so.8.3.0)
==6610==    by 0xA2AC040: ??? (in /usr/lib/libquicktime2/lqt_mjpeg.so)
==6610==    by 0xA2ACA64: ??? (in /usr/lib/libquicktime2/lqt_mjpeg.so)
==6610==    by 0xA2AB39B: ??? (in /usr/lib/libquicktime2/lqt_mjpeg.so)
==6610==    by 0x6C7C175: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6C7C8CA: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6C7D3C7: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6C7D56E: quicktime_open (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6C05155: gem::plugins::filmQT4L::open(std::string,
gem::Properties const&) (filmQT4L.cpp:93)
==6610==    by 0x49CB539: gem::plugins::filmMeta::open(std::string,
gem::Properties const&) (film.cpp:203)
==6610==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==6610==
==6610==
==6610== Process terminating with default action of signal 11 (SIGSEGV)
==6610==  Access not within mapped region at address 0x0
==6610==    at 0x8028EDE: jpeg_idct_islow (in
/usr/lib/i386-linux-gnu/libjpeg.so.8.3.0)
==6610==    by 0x8016E41: ??? (in /usr/lib/i386-linux-gnu/libjpeg.so.8.3.0)
==6610==    by 0x801473B: jpeg_read_raw_data (in
/usr/lib/i386-linux-gnu/libjpeg.so.8.3.0)
==6610==    by 0xA2AC040: ??? (in /usr/lib/libquicktime2/lqt_mjpeg.so)
==6610==    by 0xA2ACA64: ??? (in /usr/lib/libquicktime2/lqt_mjpeg.so)
==6610==    by 0xA2AB39B: ??? (in /usr/lib/libquicktime2/lqt_mjpeg.so)
==6610==    by 0x6C7C175: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6C7C8CA: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6C7D3C7: ??? (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6C7D56E: quicktime_open (in /usr/lib/libquicktime.so.2.0.0)
==6610==    by 0x6C05155: gem::plugins::filmQT4L::open(std::string,
gem::Properties const&) (filmQT4L.cpp:93)
==6610==    by 0x49CB539: gem::plugins::filmMeta::open(std::string,
gem::Properties const&) (film.cpp:203)
==6610==  If you believe this happened as a result of a stack
==6610==  overflow in your program's main thread (unlikely but
==6610==  possible), you can try to increase the size of the
==6610==  main thread stack using the --main-stacksize= flag.
==6610==  The main thread stack size used in this run was 8388608.
==6610==
==6610== HEAP SUMMARY:
==6610==     in use at exit: 4,433,808 bytes in 18,687 blocks
==6610==   total heap usage: 74,449 allocs, 55,762 frees, 71,659,294
bytes allocated
==6610==
==6610== LEAK SUMMARY:
==6610==    definitely lost: 19,914 bytes in 42 blocks
==6610==    indirectly lost: 13,796 bytes in 650 blocks
==6610==      possibly lost: 5,736 bytes in 212 blocks
==6610==    still reachable: 4,394,362 bytes in 17,783 blocks
==6610==         suppressed: 0 bytes in 0 blocks
==6610== Rerun with --leak-check=full to see details of leaked memory
==6610==
==6610== For counts of detected and suppressed errors, rerun with: -v
==6610== ERROR SUMMARY: 166 errors from 3 contexts (suppressed: 2457
from 11)
Erreur de segmentation

A problem with libquicktime ?
Can I solve this issue ?
Thanx.
++

Jack





More information about the GEM-dev mailing list