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 116882 - Thread extracting progress for speed
Thread extracting progress for speed
Status: RESOLVED FIXED
Product: sound-juicer
Classification: Applications
Component: ripping
2.10.x
Other Linux
: Normal enhancement
: ---
Assigned To: Sound Juicer Maintainers
Sound Juicer Maintainers
: 126467 166771 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2003-07-07 14:24 UTC by Jens Knutson
Modified: 2005-07-14 11:09 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Jens Knutson 2003-07-07 14:24:33 UTC
I've run a few speed tests on suspicion that Grip was much faster than SJ
at extracting audio, and have discovered that I wasn't just paranoid.

For example, when ripping Smashing Pumpkins "Pisces Iscariot", I get the
following results:

Grip: 6 minutes 30 seconds to rip and encode

Sound Juicer: 10 minutes 10 seconds to rip and encode

Ogg settings in both programs should be identical (-q 6) and I'm using full
paranoia for both Grip and SJ.

This might be a Gstreamer problem, but I wasn't sure, so I filed it against SJ.
Comment 1 Vincent Untz 2003-10-16 20:00:49 UTC
This must be a gstreamer bug. How can it be a SJ bug ?
Comment 2 Jens Knutson 2003-10-16 23:00:19 UTC
I'm not a coder - I wasn't sure if it was gstreamer or the way in
which SJ was <em>implementing</em> SJ.  Since I'm unqualified to
answer the question, I just left it up to Ross, who would know the
answer for sure...
Comment 3 Jens Knutson 2003-12-09 01:47:58 UTC
Err... that's "the way in which SJ was implementing *gstremer*"  not 
"SJ implementing SJ".  Ahem.
Comment 4 Jens Knutson 2004-03-12 22:52:03 UTC
Ross,

Can you confirm/deny that the bug here is with gstreamer and not s-j?
 I'd really like to at least get this bug filed correctly so that this
bug can get some love...
Comment 5 Ross Burton 2004-03-15 11:08:05 UTC
I'm not entirely sure if SJ or GStreamer is to blame here.

I could possibly be Sound Juicer's fault -- I'm running the gstreamer
pipeline in the GTK+ event loop which could be resulting in slower
processing than would be possible if I ran GStreamer inside a thread.
 I'm avoiding a thread at the moment as it introduces another source
of crashes :)
Comment 6 Colin Walters 2004-09-21 21:04:45 UTC
*** Bug 126467 has been marked as a duplicate of this bug. ***
Comment 7 Ross Burton 2004-09-22 08:19:11 UTC
CVS versions of SJ (to be 0.5.13) call gst_bin_iterate() more often which should
result in a better speed. Another speed comparison would be good if Jens can
still do them.
Comment 8 Jens Knutson 2004-09-22 10:51:41 UTC
Eek.  Well, I'm no longer using the same computer, and I'm not sure where that
Smashing Pumpkins CD is at the moment, but I've done another test regardless. 
This PC is a good deal faster, and is running Fedora Core 3 test 2; I think this
bug was filed running Fedora Core 1.  Let me know if you'd really like to see
numbers run with the original PC, etc - if it's important I might be able to get
access to the PC I ran the original benchmark on.

As for this benchmark's settings - Grip has 4 different rip "quality vs speed"
checkboxes - I used 3 configurations of these, figuring (hoping?) they might be
the most common use cases.  Since Sound Juicer doesn't store its paranoia
settings in GConf anymore, I'm not sure which is the best apples-to-apples
comparison...

Anyway, here's what I came up with:

CD: Low - Long Division
Length: 49:09

All encoding was done at Vorbis q6


SJ:
  total time: 11:24
  speed: 4.3x


Grip:

  settings:
  [ ] Disable paranoia
  [ ] Disable extra paranoia
  [ ] Disable scratch detection
  [ ] Disable scratch repair

  total time: 10:00    
  speed: 4.9x


  settings:
  [ ] Disable paranoia
  [x] Disable extra paranoia
  [ ] Disable scratch detection
  [ ] Disable scratch repair

  total time: 9:03
  speed: 5.4x


  settings:
  [x] Disable paranoia
  [x] Disable extra paranoia
  [x] Disable scratch detection
  [x] Disable scratch repair

  total time: 6:20
  speed: 7.7x
Comment 9 Ross Burton 2004-09-22 11:02:27 UTC
OK, times are getting closer.

SJ still does store the paranoia setting in GConf, /apps/sound-juicer/paranoia.
 4 by default (overlay checking), set to 255 for full paranoia.
Comment 10 Bastien Nocera 2004-09-22 11:49:47 UTC
You're not going to get any better results unless you call gst_bin_iterate even
more often (and hog the UI), or switch to using threads...
Comment 11 Ross Burton 2004-09-22 12:07:07 UTC
I've got more important things to work on, but I'll accept (tested) patches to
use threads.  Anyone?
Comment 12 gnome 2005-03-15 23:40:25 UTC
Hi. 

If you go to gconf-editor and set paranoia to 0,
you obtain extra speed. This is equal to disable paranoia in
grip. 
Comment 13 Ross Burton 2005-06-02 21:25:41 UTC
*** Bug 166771 has been marked as a duplicate of this bug. ***
Comment 14 Ross Burton 2005-06-02 21:26:11 UTC
I've been told that a good pipeline to use is:

cdparanoia ! queue ! { encoder ! sink }
Comment 15 Jens Knutson 2005-06-04 04:51:47 UTC
I'd be very happy to test and benchmark a patch that used the "cdparanoia !
queue ! { encoder ! sink }" pipeline - I can't write such a thing though, as I
don't speak C yet.  Getting this nailed would rock. =)
Comment 16 Ross Burton 2005-07-14 11:09:22 UTC
Committed a threaded pipeline.