new parameter addspacechars
[swftools.git] / avi2swf / videoreader_avifile.cc
index afe4f54..371835d 100644 (file)
@@ -39,8 +39,8 @@
 #if (AVIFILE_MAJOR_VERSION == 0) && (AVIFILE_MINOR_VERSION>=6) 
    #include <avifile.h>
    #include <aviplay.h>
-   #include <fourcc.h>
-   #include <creators.h>
+   #include <avm_fourcc.h>
+   #include <avm_creators.h>
    #include <StreamInfo.h>
    #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)