X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=avi2swf%2Fvideoreader_avifile.cc;h=371835d84c6506ea5f3b9cea0b5eb684a99abf8d;hb=c34a9e0500bc5141864683ff548b8979f611747b;hp=afe4f542aa5cb741376fa25ed974ae1854e063bb;hpb=aa34df2f7434eb76f98ab1438c7d44d66ef418a4;p=swftools.git diff --git a/avi2swf/videoreader_avifile.cc b/avi2swf/videoreader_avifile.cc index afe4f54..371835d 100644 --- a/avi2swf/videoreader_avifile.cc +++ b/avi2swf/videoreader_avifile.cc @@ -39,8 +39,8 @@ #if (AVIFILE_MAJOR_VERSION == 0) && (AVIFILE_MINOR_VERSION>=6) #include #include - #include - #include + #include + #include #include #define VERSION6 #else @@ -86,6 +86,11 @@ static int readSamples(videoreader_avifile_internal*i, void*buffer, int buffer_s while(i->audio_buffer.available < buffer_size) { unsigned int samples_read = 0, bytes_read = 0; ret = i->astream->ReadFrames(buffer, buffer_size, numsamples, samples_read, bytes_read); + if(ret!=0) { + if(verbose) { + printf("ReadFrames() returns %d\n", ret);fflush(stdout); + } + } if(samples_read<=0) { int l = i->audio_buffer.available; ringbuffer_read(&i->audio_buffer, buffer, l); @@ -113,12 +118,22 @@ static int videoreader_avifile_getsamples(videoreader_t* v, void*buffer, int num b[t] = 0; b[t+1] = x-128; } - if(!num_read) i->audio_eof=1; + if(!num_read) { + if(verbose) { + printf("end of audio\n");fflush(stdout); + } + i->audio_eof=1; + } return num_read; } if(i->soundbits == 16) { int num_read = readSamples(i, buffer, num, num/(v->channels*2)); - if(!num_read) i->audio_eof=1; + if(!num_read) { + if(verbose) { + printf("end of audio\n");fflush(stdout); + } + i->audio_eof=1; + } return num_read; } return 0; @@ -265,11 +280,11 @@ int videoreader_avifile_open(videoreader_t* v, char* filename) printf("fps: %d\n", 1000000/head.dwMicroSecPerFrame); printf("frames: %d\n", head.dwTotalFrames); printf("streams: %d\n", head.dwStreams); - printf("width: %d\n", head.dwWidth); - printf("height: %d\n", head.dwHeight); + printf("width: %d\n", abs(head.dwWidth)); + printf("height: %d\n", abs(head.dwHeight)); printf("sound: %u samples (%f seconds)\n", i->astream->GetEndPos(), i->astream->GetEndTime()); - v->width = head.dwWidth; - v->height = head.dwHeight; + v->width = abs(head.dwWidth); + v->height = abs(head.dwHeight); dwMicroSecPerFrame = head.dwMicroSecPerFrame; samplesperframe = astream->GetEndPos()/astream->GetEndTime()*head.dwMicroSecPerFrame/1000000; v->samplerate = (int)(astream->GetEndPos()/astream->GetEndTime()); @@ -280,8 +295,8 @@ int videoreader_avifile_open(videoreader_t* v, char* filename) { StreamInfo*videoinfo; videoinfo = i->vstream->GetStreamInfo(); - v->width = videoinfo->GetVideoWidth(); - v->height = videoinfo->GetVideoHeight(); + v->width = abs(videoinfo->GetVideoWidth()); + v->height = abs(videoinfo->GetVideoHeight()); v->fps = (double)(videoinfo->GetFps()); } if(i->do_audio)