+ fixes for opendml dv avi
[melted] / src / modules / kino / avi.cc
index 1ed29ad..96e2b54 100644 (file)
 * Change log:
 * 
 * $Log$
+* Revision 1.3  2005/07/25 07:21:39  lilo_booter
+* + fixes for opendml dv avi
+*
+* Revision 1.2  2005/06/21 20:59:39  lilo_booter
+* src/framework/mlt_consumer.c src/framework/mlt_consumer.h
+* + Added a general profile handling for size, aspect ratio and display ratio
+*
+* src/framework/mlt_producer.c
+* + Correction to aspect ratio properties
+*
+* src/inigo/inigo.c
+* + Minimalist support for sdl_preview (still not very good)
+*
+* src/modules/avformat/consumer_avformat.c
+* + Takes consumer profile into account
+*
+* src/modules/core/filter_resize.c
+* + Corrections for synthesised producers and aspect ratio (inherits from consumer)
+*
+* src/modules/core/producer_colour.c
+* src/modules/core/producer_noise.c
+* src/modules/gtk2/producer_pango.c
+* + Ensures that resize picks up consumer aspect ratio
+*
+* src/modules/dv/consumer_libdv.c
+* + Honour wide screen output
+*
+* src/modules/gtk2/producer_pixbuf.c
+* + Correction for 1:1 aspect ratio
+*
+* src/modules/kino/Makefile
+* src/modules/kino/avi.cc
+* src/modules/kino/avi.h
+* src/modules/kino/configure
+* src/modules/kino/filehandler.cc
+* + Attempt to allow mov dv files to provide audio
+*
+* src/modules/sdl/consumer_sdl.c
+* src/modules/sdl/consumer_sdl_preview.c
+* src/modules/sdl/consumer_sdl_still.c
+* + Takes consumer profile into account
+*
 * Revision 1.1  2005/04/15 14:28:26  lilo_booter
 * Initial version
 *
@@ -376,7 +418,7 @@ void AVIFile::Init( int format, int sampleFrequency, int indexType )
        {
                indx[ i ] ->wLongsPerEntry = 4;
                indx[ i ] ->bIndexSubType = 0;
-               indx[ i ] ->bIndexType = AVI_INDEX_OF_INDEXES;
+               indx[ i ] ->bIndexType = KINO_AVI_INDEX_OF_INDEXES;
                indx[ i ] ->nEntriesInUse = 0;
                indx[ i ] ->dwReserved[ 0 ] = 0;
                indx[ i ] ->dwReserved[ 1 ] = 0;
@@ -904,7 +946,7 @@ void AVIFile::ParseRIFF()
 
        avih_chunk = FindDirectoryEntry( make_fourcc( "avih" ) );
        if ( avih_chunk != -1 )
-               ReadChunk( avih_chunk, ( void* ) & mainHdr );
+               ReadChunk( avih_chunk, ( void* ) & mainHdr, sizeof( MainAVIHeader ) );
 }
 
 
@@ -913,7 +955,7 @@ void AVIFile::ReadIndex()
        indx_chunk[ 0 ] = FindDirectoryEntry( make_fourcc( "indx" ) );
        if ( indx_chunk[ 0 ] != -1 )
        {
-               ReadChunk( indx_chunk[ 0 ], ( void* ) indx[ 0 ] );
+               ReadChunk( indx_chunk[ 0 ], ( void* ) indx[ 0 ], sizeof( AVISuperIndex ) );
                index_type = AVI_LARGE_INDEX;
 
                /* recalc number of frames from each index */
@@ -927,7 +969,7 @@ void AVIFile::ReadIndex()
        idx1_chunk = FindDirectoryEntry( make_fourcc( "idx1" ) );
        if ( idx1_chunk != -1 )
        {
-               ReadChunk( idx1_chunk, ( void* ) idx1 );
+               ReadChunk( idx1_chunk, ( void* ) idx1, sizeof( AVISuperIndex ) );
                idx1->nEntriesInUse = GetDirectoryEntry( idx1_chunk ).length / 16;
                index_type = AVI_SMALL_INDEX;
 
@@ -983,7 +1025,7 @@ void AVIFile::FlushIndx( int stream )
 
        ix[ stream ] ->wLongsPerEntry = 2;
        ix[ stream ] ->bIndexSubType = 0;
-       ix[ stream ] ->bIndexType = AVI_INDEX_OF_CHUNKS;
+       ix[ stream ] ->bIndexType = KINO_AVI_INDEX_OF_CHUNKS;
        ix[ stream ] ->nEntriesInUse = 0;
        ix[ stream ] ->dwChunkId = indx[ stream ] ->dwChunkId;
        ix[ stream ] ->qwBaseOffset = offset + length;
@@ -1062,14 +1104,14 @@ bool AVIFile::verifyStreamFormat( FOURCC type )
 
        while ( ( i = FindDirectoryEntry( strh, j++ ) ) != -1 )
        {
-               ReadChunk( i, ( void* ) & avi_stream_header );
+               ReadChunk( i, ( void* ) & avi_stream_header, sizeof( AVIStreamHeader ) );
                if ( avi_stream_header.fccHandler == type )
                        return true;
        }
        j = 0;
        while ( ( i = FindDirectoryEntry( strf, j++ ) ) != -1 )
        {
-               ReadChunk( i, ( void* ) & bih );
+               ReadChunk( i, ( void* ) & bih, sizeof( BITMAPINFOHEADER ) );
                if ( ( FOURCC ) bih.biCompression == type )
                        return true;
        }
@@ -1085,7 +1127,7 @@ bool AVIFile::verifyStream( FOURCC type )
 
        while ( ( i = FindDirectoryEntry( strh, j++ ) ) != -1 )
        {
-               ReadChunk( i, ( void* ) & avi_stream_header );
+               ReadChunk( i, ( void* ) & avi_stream_header, sizeof( AVIStreamHeader ) );
                if ( avi_stream_header.fccType == type )
                        return true;
        }
@@ -1779,7 +1821,7 @@ void AVIFile::setFccHandler( FOURCC type, FOURCC handler )
 
                        while ( ( k = FindDirectoryEntry( strf, j++ ) ) != -1 )
                        {
-                               ReadChunk( k, ( void* ) & bih );
+                               ReadChunk( k, ( void* ) & bih, sizeof( BITMAPINFOHEADER ) );
                                bih.biCompression = handler;
                        }
                }
@@ -1796,7 +1838,7 @@ bool AVIFile::getStreamFormat( void* data, FOURCC type )
 
        while ( ( result == false ) && ( i = FindDirectoryEntry( strh, j++ ) ) != -1 )
        {
-               ReadChunk( i, ( void* ) & avi_stream_header );
+               ReadChunk( i, ( void* ) & avi_stream_header, sizeof( AVIStreamHeader ) );
                if ( avi_stream_header.fccType == type )
                {
                        FOURCC chunkID;