From f8e8408f984b72dd90467f9c46ede4767139b189 Mon Sep 17 00:00:00 2001
From: kramm <kramm>
Date: Mon, 20 Sep 2004 16:16:37 +0000
Subject: [PATCH] several more bugfixes.

---
 avi2swf/videoreader_vfw.cc |   22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/avi2swf/videoreader_vfw.cc b/avi2swf/videoreader_vfw.cc
index ec05d13..b809eb0 100644
--- a/avi2swf/videoreader_vfw.cc
+++ b/avi2swf/videoreader_vfw.cc
@@ -167,7 +167,6 @@ int videoreader_vfw_getimage(videoreader_t* vr, void*buffer)
 	fprintf(stderr, "AVIStreamGetFrame failed\n");
 	return 0;
     }
-    printf("%dx%d:%d\n", bi->biWidth, bi->biHeight, bi->biBitCount);
     
     if(!bitmap_to_rgba(bi, buffer, i->width, i->height)) {
 	fprintf(stderr, "couldn't convert bitmap to RGBA.\n");
@@ -279,28 +278,37 @@ int videoreader_vfw_open(videoreader_t* vr, char* filename)
 	    /* video stream */
 
 	    BITMAPINFOHEADER bitmap;
-	    LONG size = sizeof(i->bitmap);
+	    LONG size = sizeof(bitmap);
 	    AVIStreamReadFormat(stream, 0, &bitmap, &size);
 
-	    if(i->bitmap.biCompression == 0/*RGB*/) {
+	    if(1) {
 		i->bitmap = bitmap;
 		i->vs = stream;
 		i->width = bitmap.biWidth;
 		i->height = bitmap.biHeight;
+	    } else {
+		fprintf(stderr, "Ignoring video stream: %dx%d compression=%d planes=%d\n", 
+			bitmap.biWidth, bitmap.biHeight,
+			bitmap.biCompression,bitmap.biPlanes);
 	    }
         }
         else if (streaminfo.fccType == streamtypeAUDIO) {
 	    /* audio stream */
 
 	    WAVEFORMATEX waveformat;
-	    LONG size = sizeof(i->waveformat);
+	    LONG size = sizeof(waveformat);
 	    AVIStreamReadFormat(stream, 0, &waveformat, &size);
 
-	    if(i->waveformat.wBitsPerSample == 16 || i->waveformat.wBitsPerSample == 8) {
+	    if(waveformat.wBitsPerSample == 16 || 
+	       waveformat.wBitsPerSample == 8 ||
+	       waveformat.wBitsPerSample == 1
+	       ) {
 		i->waveformat = waveformat;
 		i->as = stream;
-		i->channels = i->waveformat.nChannels;
-		i->samplerate = i->waveformat.nSamplesPerSec;
+		i->channels = waveformat.nChannels;
+		i->samplerate = waveformat.nSamplesPerSec;
+	    } else {
+		fprintf(stderr, "Ignoring audio stream: bitspersample=%d\n", waveformat.wBitsPerSample);
 	    }
         }
 	t++;
-- 
1.7.10.4