X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmodules%2Fkino%2Favi.cc;h=96e2b54470f47e98f5d119c46dfb30ce45884aa3;hb=8820b2068dee09af6b9ddb5ed078abbeeca5fdf2;hp=1ed29ad18c2ddf6b740ac20e510d47ceaa0a2504;hpb=815c458e95c73c39433fa7913afb4a830d7fd376;p=melted diff --git a/src/modules/kino/avi.cc b/src/modules/kino/avi.cc index 1ed29ad..96e2b54 100644 --- a/src/modules/kino/avi.cc +++ b/src/modules/kino/avi.cc @@ -21,6 +21,48 @@ * 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;