Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.2:Test
grip
grip-flac-progress.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File grip-flac-progress.patch of Package grip
- fix progress display when encoding using flac The first hunk is actally not related to flac encoding but to ripping in general: - Allow for 1.5 seconds for CD-ROM drive spinup until speed and progress metering starts, avoids starting with very low speed indication. The remaining 3 hunks apply to encoding to a .flac file, Using a value which is too low causes the progress bar to reach 100% a while before encoding is actually finished. Tests with many CDs show that a value of 980 kbits is safe. The changes are specifically only for progress display, evaluation of %b (bitrate) is not changed. - fix for precision problems at start of ripping: The fix is to do this: - elapsed = (gfloat)now - (gfloat)ginfo->rip_started; + elapsed = now - ginfo->rip_started; now and rip_started are two time_t values (seconds since epoch), so they are signed long int's on x86_64, so it's not a good idea ================================================================================ --- grip-3.2.0/src/rip.c +++ grip-3.2.0/src/rip.c @@ -805,7 +805,7 @@ gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->ripprogbar),percent); now = time(NULL); - elapsed = (gfloat)now - (gfloat)ginfo->rip_started; + elapsed = now - ginfo->rip_started; /* 1x is 44100*2*2 = 176400 bytes/sec */ if(elapsed < 0.1f) /* 1/10 sec. */ @@ -935,10 +935,16 @@ percent); now = time(NULL); - elapsed = (gfloat)now - (gfloat)ginfo->mp3_started[mycpu]; + elapsed = now - ginfo->mp3_started[mycpu]; if(elapsed < 0.1f) /* 1/10 sec. */ speed=0.0f; +#define FLAC_BITRATE 980 + // Quick fix until we can add per-encoder bitrates: + else if (!strcmp(ginfo->mp3extension, "flac") + && ginfo->kbits_per_sec < FLAC_BITRATE) + speed=(gfloat)mystat.st_size/ + (FLAC_BITRATE * 128.0f * elapsed); else speed=(gfloat)mystat.st_size/ ((gfloat)ginfo->kbits_per_sec * 128.0f * elapsed); @@ -1100,8 +1106,6 @@ { static char res[PATH_MAX]; EncodeTrack *enc_track; - gchar *conv_str,*st; - gsize rb,wb; enc_track=(EncodeTrack *)data; @@ -1719,6 +1723,13 @@ unlink(ginfo->mp3file[cpu]); + // Quick fix until we can add per-encoder bitrates + if (!strcmp(ginfo->mp3extension, "flac") + && ginfo->kbits_per_sec < FLAC_BITRATE) + ginfo->mp3size[cpu]= + (int)((gfloat)((enc_track->end_frame-enc_track->start_frame)+1)* + (gfloat)(FLAC_BITRATE*1024)/600.0); + else ginfo->mp3size[cpu]= (int)((gfloat)((enc_track->end_frame-enc_track->start_frame)+1)* (gfloat)(ginfo->kbits_per_sec*1024)/600.0); @@ -1819,6 +1830,13 @@ static size_t CalculateEncSize(GripInfo *ginfo, int track) { double tmp_encsize=0.0; + // Quick fix until we can add per-encoder bitrates: + if (!strcmp(ginfo->mp3extension, "flac") + && ginfo->kbits_per_sec < FLAC_BITRATE) + tmp_encsize=(double)((ginfo->disc.track[track].length.mins*60+ + ginfo->disc.track[track].length.secs-2)* + FLAC_BITRATE*1024/8); + else /* It's not the best way, but i couldn't find anything better */ tmp_encsize=(double)((ginfo->disc.track[track].length.mins*60+ ginfo->disc.track[track].length.secs-2)*
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor