add support for some MS DIB formats for avisynth
authorSteve L'Homme <slhomme@divxcorp.com>
Sun, 1 Oct 2006 20:41:02 +0000 (20:41 +0000)
committerGuillaume Poirier <gpoirier@mplayerhq.hu>
Sun, 1 Oct 2006 20:41:02 +0000 (20:41 +0000)
Patch by Steve Lhomme % slhomme AH divxcorp P com %
Original thread:
Date: Sep 27, 2006 7:20 PM
Subject: [Ffmpeg-devel] [PATCH] AVISynth support for some MS DIB formats

Originally committed as revision 6411 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/avisynth.c

index 80019c1..422f775 100644 (file)
@@ -94,6 +94,7 @@ static int avisynth_read_header(AVFormatContext *s, AVFormatParameters *ap)
                   stream->chunck_samples = wvfmt.nSamplesPerSec * (uint64_t)info.dwScale / (uint64_t)info.dwRate;
                   stream->chunck_size = stream->chunck_samples * wvfmt.nChannels * wvfmt.wBitsPerSample / 8;
 
+                  st->codec->codec_tag = wvfmt.wFormatTag;
                   st->codec->codec_id = wav_codec_get_id(wvfmt.wFormatTag, st->codec->bits_per_sample);
                 }
               else if (stream->info.fccType == streamtypeVIDEO)
@@ -115,9 +116,10 @@ static int avisynth_read_header(AVFormatContext *s, AVFormatParameters *ap)
                   st->codec->width = imgfmt.bmiHeader.biWidth;
                   st->codec->height = imgfmt.bmiHeader.biHeight;
 
-                  st->codec->bits_per_sample = stream->info.dwSampleSize * 8;
+                  st->codec->bits_per_sample = imgfmt.bmiHeader.biBitCount;
                   st->codec->bit_rate = (uint64_t)stream->info.dwSampleSize * (uint64_t)stream->info.dwRate * 8 / (uint64_t)stream->info.dwScale;
-                  st->codec->codec_id = codec_get_id(codec_bmp_tags, stream->info.fccHandler);
+                  st->codec->codec_tag = imgfmt.bmiHeader.biCompression;
+                  st->codec->codec_id = codec_get_id(codec_bmp_tags, imgfmt.bmiHeader.biCompression);
 
                   st->duration = stream->info.dwLength;
                 }
@@ -128,7 +130,6 @@ static int avisynth_read_header(AVFormatContext *s, AVFormatParameters *ap)
                 }
 
               avs->nb_streams++;
-              st->codec->codec_tag = stream->info.fccHandler;
 
               st->codec->stream_codec_tag = stream->info.fccHandler;