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 158018 - gstreamer typefind stalls on these JPEG files
gstreamer typefind stalls on these JPEG files
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.8.7
Other Linux
: Normal normal
: 0.8.8
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 156568 156891 158017 158077 158978 159196 160910 161418 163211 163512 163722 163880 164967 165336 166629 (view as bug list)
Depends on:
Blocks: 158017
 
 
Reported: 2004-11-12 02:43 UTC by Ed Catmur
Modified: 2005-02-08 08:25 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10



Description Ed Catmur 2004-11-12 02:43:36 UTC
gstreamer stalls with maximum CPU usage when I run typefind on these JPEG files:

$ gst-launch-0.8 --gst-debug-level=1 gnomevfssrc
location=public_html/breaks-rb/cover.jpg ! typefind
RUNNING pipeline ...

This is a problem because I have cover images in my music folders; rhythmbox
runs gst typefind over them when importing, and stalls.

Breaks: http://catmur.ath.cx/~ed/breaks-rb/cover.jpg
OK: http://catmur.ath.cx/~ed/breaks-rb/ok.jpg
More that break: http://catmur.ath.cx/~ed/breaks-rb/
Comment 1 Ed Catmur 2004-11-12 02:48:28 UTC
They all load OK in ImageMagick, eog, nautilus, etc.

The OK image gives:

$ gst-launch-0.8 --gst-debug-level=1 gnomevfssrc
location=public_html/breaks-rb/ok.jpg ! typefind
RUNNING pipeline ...
Execution ended after 5 iterations (sum 4380000 ns, average 876000 ns, min 25000
ns, max 4083000 ns).

If I run it on a broken image with gst-debug=typefind:5 and hit Ctrl+C I get:

$ gst-launch-0.8 --gst-debug=typefind:5 gnomevfssrc
location=public_html/breaks-rb/cover.jpg ! typefind
RUNNING pipeline ...
DEBUG (0x8050960 - 305618:45:30.459089000)        typefind(20799)
gsttypefindelement.c(329):start_typefinding:<typefindelement0> starting typefinding
INFO  (0x8050960 - 305618:45:30.460358000)        typefind(20799)
gsttypefindelement.c(599):gst_type_find_element_chain:<typefindelement0>
starting with 71 typefinding functions
INFO  (0x8050960 - 305618:45:30.460762000)        typefind(20799)
gsttypefindelement.c(618):gst_type_find_element_chain:<typefindelement0>
iterating 71 typefinding functions
LOG   (0x8050960 - 305618:45:30.463954000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'video/x-msvideo' called
peek (0, 12)
DEBUG (0x8050960 - 305618:45:30.464252000)        typefind(20799)
gsttypefindelement.c(631):gst_type_find_element_chain:<typefindelement0>
'video/x-msvideo' was removed - no chance of being the right plugin
LOG   (0x8050960 - 305618:45:30.464455000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'video/x-cdxa' called
peek (0, 12)
DEBUG (0x8050960 - 305618:45:30.464558000)        typefind(20799)
gsttypefindelement.c(631):gst_type_find_element_chain:<typefindelement0>
'video/x-cdxa' was removed - no chance of being the right plugin
LOG   (0x8050960 - 305618:45:30.464695000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/x-flac' called
peek (0, 4)
DEBUG (0x8050960 - 305618:45:30.464795000)        typefind(20799)
gsttypefindelement.c(631):gst_type_find_element_chain:<typefindelement0>
'audio/x-flac' was removed - no chance of being the right plugin
LOG   (0x8050960 - 305618:45:30.464905000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'application/x-id3'
called peek (0, 10)LOG   (0x8050960 - 305618:45:30.465004000)       
typefind(20799) gsttypefindelement.c(505):find_peek:<typefindelement0>
'application/x-id3' called peek (-128, 3)
DEBUG (0x8050960 - 305618:45:30.465110000)        typefind(20799)
gsttypefindelement.c(425):find_element_get_length:<typefindelement0>
'application/x-id3' called get_length () and it's 3802 bytes
DEBUG (0x8050960 - 305618:45:30.465213000)        typefind(20799)
gsttypefindelement.c(631):gst_type_find_element_chain:<typefindelement0>
'application/x-id3' was removed - no chance of being the right plugin
LOG   (0x8050960 - 305618:45:30.465329000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/x-ttafile' called
peek (0, 3)
DEBUG (0x8050960 - 305618:45:30.465427000)        typefind(20799)
gsttypefindelement.c(631):gst_type_find_element_chain:<typefindelement0>
'audio/x-ttafile' was removed - no chance of being the right plugin
LOG   (0x8050960 - 305618:45:30.465526000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(0, 2048)
LOG   (0x8050960 - 305618:45:30.465701000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(2048, 2048)
LOG   (0x8050960 - 305618:45:30.465830000)        typefind(20799)
gsttypefindelement.c(528):find_peek:<typefindelement0> setting requested peek
(2048, 2048) on 'audio/mpeg'
LOG   (0x8050960 - 305618:45:30.465927000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(2048, 1024)
LOG   (0x8050960 - 305618:45:30.466032000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3072, 2048)
LOG   (0x8050960 - 305618:45:30.466132000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3072, 1024)
LOG   (0x8050960 - 305618:45:30.466247000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3072, 512)
LOG   (0x8050960 - 305618:45:30.466350000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3583, 4)
LOG   (0x8050960 - 305618:45:30.466448000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3584, 2048)
LOG   (0x8050960 - 305618:45:30.466608000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3584, 1024)
LOG   (0x8050960 - 305618:45:30.466709000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3584, 512)
LOG   (0x8050960 - 305618:45:30.466809000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3584, 256)
LOG   (0x8050960 - 305618:45:30.466906000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3584, 128)
LOG   (0x8050960 - 305618:45:30.467004000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3712, 2048)
LOG   (0x8050960 - 305618:45:30.467103000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3712, 1024)
LOG   (0x8050960 - 305618:45:30.467202000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3712, 512)
LOG   (0x8050960 - 305618:45:30.467315000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3712, 256)
LOG   (0x8050960 - 305618:45:30.467413000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3712, 128)
LOG   (0x8050960 - 305618:45:30.467511000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3712, 64)
LOG   (0x8050960 - 305618:45:30.467620000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3776, 2048)
LOG   (0x8050960 - 305618:45:30.467721000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3776, 1024)
LOG   (0x8050960 - 305618:45:30.467820000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3776, 512)
LOG   (0x8050960 - 305618:45:30.467919000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3776, 256)
LOG   (0x8050960 - 305618:45:30.468017000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3776, 128)
LOG   (0x8050960 - 305618:45:30.468114000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3776, 64)
LOG   (0x8050960 - 305618:45:30.468226000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3776, 32)
LOG   (0x8050960 - 305618:45:30.468323000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3776, 16)
LOG   (0x8050960 - 305618:45:30.468420000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3792, 2048)
LOG   (0x8050960 - 305618:45:30.468519000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3792, 1024)
LOG   (0x8050960 - 305618:45:30.468637000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3792, 512)
LOG   (0x8050960 - 305618:45:30.468735000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3792, 256)
LOG   (0x8050960 - 305618:45:30.468834000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3792, 128)
LOG   (0x8050960 - 305618:45:30.468931000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3792, 64)
LOG   (0x8050960 - 305618:45:30.469029000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3792, 32)
LOG   (0x8050960 - 305618:45:30.469127000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3792, 16)
LOG   (0x8050960 - 305618:45:30.469240000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3792, 8)
LOG   (0x8050960 - 305618:45:30.469337000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3800, 2048)
LOG   (0x8050960 - 305618:45:30.469437000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3800, 1024)
LOG   (0x8050960 - 305618:45:30.469535000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3800, 512)
LOG   (0x8050960 - 305618:45:30.469646000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3800, 256)
LOG   (0x8050960 - 305618:45:30.469744000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3800, 128)
LOG   (0x8050960 - 305618:45:30.469841000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3800, 64)
LOG   (0x8050960 - 305618:45:30.469939000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3800, 32)
LOG   (0x8050960 - 305618:45:30.470037000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3800, 16)
LOG   (0x8050960 - 305618:45:30.470149000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/mpeg' called peek
(3800, 8)
LOG   (0x8050960 - 305618:45:30.470252000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'video/mpeg1' called peek
(0, 2048)
LOG   (0x8050960 - 305618:45:30.470370000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'video/mpeg1' called peek
(2045, 2048)
LOG   (0x8050960 - 305618:45:30.470471000)        typefind(20799)
gsttypefindelement.c(528):find_peek:<typefindelement0> setting requested peek
(2045, 2048) on 'video/mpeg1'
LOG   (0x8050960 - 305618:45:30.470573000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'application/ogg' called
peek (0, 4)
DEBUG (0x8050960 - 305618:45:30.470683000)        typefind(20799)
gsttypefindelement.c(631):gst_type_find_element_chain:<typefindelement0>
'application/ogg' was removed - no chance of being the right plugin
LOG   (0x8050960 - 305618:45:30.470782000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'audio/x-wav' called peek
(0, 12)
DEBUG (0x8050960 - 305618:45:30.470881000)        typefind(20799)
gsttypefindelement.c(631):gst_type_find_element_chain:<typefindelement0>
'audio/x-wav' was removed - no chance of being the right plugin
LOG   (0x8050960 - 305618:45:30.470980000)        typefind(20799)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'image/jpeg' called peek
(0, 10)
LOG   (0x8050960 - 305618:45:30.471086000)        typefind(20799)
gsttypefindelement.c(541):find_suggest:<typefindelement0> 'image/jpeg' called
suggest (100, image/jpeg)
INFO  (0x8050960 - 305618:45:30.471257000)        typefind(20799)
gsttypefindelement.c(641):gst_type_find_element_chain:<typefindelement0>
'image/jpeg' returned 100/100 probability, using it NOW
INFO  (0x8050960 - 305618:45:30.471396000)        typefind(20799)
gsttypefindelement.c(124):gst_type_find_element_have_type:<typefindelement0>
found caps image/jpeg
DEBUG (0x8050960 - 305618:45:30.471534000)        typefind(20799)
gsttypefindelement.c(346):stop_typefinding:<typefindelement0> stopping
typefinding and pushing cached buffers
DEBUG (0x8050960 - 305618:45:30.471681000)        typefind(20799)
gsttypefindelement.c(363):stop_typefinding:<typefindelement0> seeking back to
current position 3802
Caught interrupt.
Execution ended after 216454 iterations (sum 3891023000 ns, average 17976 ns,
min 15000 ns, max 12218000 ns).
DEBUG (0x8050960 - 305618:45:36.297988000)        typefind(20799)
gsttypefindelement.c(346):stop_typefinding:<typefindelement0> stopping typefinding

I'm happy to supply any more info.
Comment 2 Ed Catmur 2004-11-12 02:51:40 UTC
Oops. On the OK image I get:

...
LOG   (0x8050960 - 305618:50:47.312159000)        typefind(20839)
gsttypefindelement.c(505):find_peek:<typefindelement0> 'image/jpeg' called peek
(0, 10)
LOG   (0x8050960 - 305618:50:47.312319000)        typefind(20839)
gsttypefindelement.c(541):find_suggest:<typefindelement0> 'image/jpeg' called
suggest (100, image/jpeg)
INFO  (0x8050960 - 305618:50:47.312482000)        typefind(20839)
gsttypefindelement.c(641):gst_type_find_element_chain:<typefindelement0>
'image/jpeg' returned 100/100 probability, using it NOW
INFO  (0x8050960 - 305618:50:47.312624000)        typefind(20839)
gsttypefindelement.c(124):gst_type_find_element_have_type:<typefindelement0>
found caps image/jpeg
DEBUG (0x8050960 - 305618:50:47.312766000)        typefind(20839)
gsttypefindelement.c(346):stop_typefinding:<typefindelement0> stopping
typefinding and pushing cached buffers
DEBUG (0x8050960 - 305618:50:47.342362000)        typefind(20839)
gsttypefindelement.c(363):stop_typefinding:<typefindelement0> seeking back to
current position 4096
DEBUG (0x8050960 - 305618:50:47.342855000)        typefind(20839)
gsttypefindelement.c(388):push_buffer_store:<typefindelement0> pushing cached
data (4096 bytes)
Execution ended after 5 iterations (sum 39118000 ns, average 7823600 ns, min
27000 ns, max 38435000 ns).
DEBUG (0x8050960 - 305618:50:47.343931000)        typefind(20839)
gsttypefindelement.c(346):stop_typefinding:<typefindelement0> stopping typefinding
Comment 4 Ed Catmur 2004-11-12 03:08:07 UTC
Yep, that fixes it. That'll be in the 0.8.8 release, yes?

Closing FIXED.
Comment 5 Christophe Fergeau 2004-11-12 10:39:20 UTC
*** Bug 158017 has been marked as a duplicate of this bug. ***
Comment 6 Christophe Fergeau 2004-12-01 00:25:05 UTC
*** Bug 158978 has been marked as a duplicate of this bug. ***
Comment 7 Christophe Fergeau 2004-12-02 10:33:55 UTC
*** Bug 156568 has been marked as a duplicate of this bug. ***
Comment 8 Christophe Fergeau 2004-12-02 15:42:50 UTC
*** Bug 158077 has been marked as a duplicate of this bug. ***
Comment 9 Christophe Fergeau 2004-12-03 11:07:23 UTC
*** Bug 156568 has been marked as a duplicate of this bug. ***
Comment 10 Christophe Fergeau 2004-12-03 11:40:10 UTC
*** Bug 159196 has been marked as a duplicate of this bug. ***
Comment 11 Christophe Fergeau 2004-12-06 22:49:34 UTC
*** Bug 156568 has been marked as a duplicate of this bug. ***
Comment 12 Christophe Fergeau 2004-12-09 21:15:08 UTC
*** Bug 156891 has been marked as a duplicate of this bug. ***
Comment 13 Christophe Fergeau 2004-12-09 23:46:45 UTC
*** Bug 160910 has been marked as a duplicate of this bug. ***
Comment 14 Christophe Fergeau 2004-12-20 21:34:37 UTC
*** Bug 161418 has been marked as a duplicate of this bug. ***
Comment 15 Christophe Fergeau 2005-01-08 23:02:16 UTC
*** Bug 163211 has been marked as a duplicate of this bug. ***
Comment 16 Christophe Fergeau 2005-01-10 00:11:32 UTC
*** Bug 163512 has been marked as a duplicate of this bug. ***
Comment 17 Christophe Fergeau 2005-01-11 22:23:00 UTC
*** Bug 163722 has been marked as a duplicate of this bug. ***
Comment 18 Christophe Fergeau 2005-01-13 15:49:35 UTC
*** Bug 163880 has been marked as a duplicate of this bug. ***
Comment 19 Christophe Fergeau 2005-01-25 08:49:38 UTC
*** Bug 164967 has been marked as a duplicate of this bug. ***
Comment 20 Christophe Fergeau 2005-01-27 09:38:55 UTC
*** Bug 165336 has been marked as a duplicate of this bug. ***
Comment 21 Christophe Fergeau 2005-02-08 08:25:11 UTC
*** Bug 166629 has been marked as a duplicate of this bug. ***