Menu

#290 stdin: skipping unkown wave chunks doesn´t work

closed-fixed
7
2007-09-12
2007-08-18
Anonymous
No

Hi,

I found a problem with stdin-input (system: Windows XP x64): skipping unknown wave chunks doesn´t work, because flac tries to seek in the stdin stream. I was able to fix the problem by using currently unused code for seeking without using fseek:

FLAC__bool fskip_ahead(FILE *f, FLAC__uint64 offset)
{
static unsigned char dump[8192];
if(f == stdin) {
while(offset > 0) {
const long need = (long)min(offset, sizeof(dump));
if(fread(dump, 1, need, f) < need)
return false;
offset -= need;
}
}
else {
while(offset > 0) {
long need = (long)min(offset, LONG_MAX);
if(fseeko(f, need, SEEK_CUR) < 0) {
need = (long)min(offset, sizeof(dump));
if((long)fread(dump, 1, need, f) < need)
return false;
}
offset -= need;
}
}
return true;
}

Regards,
Stefan

Discussion

  • Josh Coalson

    Josh Coalson - 2007-08-22
    • priority: 5 --> 7
    • assigned_to: nobody --> jcoalson
    • status: open --> open-accepted
     
  • Josh Coalson

    Josh Coalson - 2007-09-12

    Logged In: YES
    user_id=78173
    Originator: NO

    fixed in CVS

     
  • Josh Coalson

    Josh Coalson - 2007-09-12
    • status: open-accepted --> closed-fixed
     

Log in to post a comment.