Commit 4683e7ed authored by Laurent Aimar's avatar Laurent Aimar

* all: fix endian issue with new definition of VLC_FOURCC, but

untested. Meuuh, could you test it ?
parent 35b47400
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* avi.c : AVI file Stream input module for vlc * avi.c : AVI file Stream input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: avi.c,v 1.3 2002/08/08 22:28:22 sam Exp $ * $Id: avi.c,v 1.4 2002/09/18 23:34:28 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -59,24 +59,23 @@ vlc_module_end(); ...@@ -59,24 +59,23 @@ vlc_module_end();
*****************************************************************************/ *****************************************************************************/
static u16 GetWLE( byte_t *p_buff ) static u16 GetWLE( byte_t *p_buff )
{ {
u16 i; return( p_buff[0] + ( p_buff[1] << 8 ) );
i = (*p_buff) + ( *(p_buff + 1) <<8 );
return ( i );
} }
static u32 GetDWLE( byte_t *p_buff ) static u32 GetDWLE( byte_t *p_buff )
{ {
u32 i; return( p_buff[0] + ( p_buff[1] << 8 ) +
i = (*p_buff) + ( *(p_buff + 1) <<8 ) + ( p_buff[2] << 16 ) + ( p_buff[3] << 24 ) );
( *(p_buff + 2) <<16 ) + ( *(p_buff + 3) <<24 );
return ( i );
} }
static u32 GetDWBE( byte_t *p_buff ) static u32 GetDWBE( byte_t *p_buff )
{ {
u32 i; return( p_buff[3] + ( p_buff[2] << 8 ) +
i = ((*p_buff)<<24) + ( *(p_buff + 1) <<16 ) + ( p_buff[1] << 16 ) + ( p_buff[0] << 24 ) );
( *(p_buff + 2) <<8 ) + ( *(p_buff + 3) );
return ( i );
} }
static vlc_fourcc_t GetFOURCC( byte_t *p_buff )
{
return( VLC_FOURCC( p_buff[0], p_buff[1], p_buff[2], p_buff[3] ) );
}
static inline off_t __EVEN( off_t i ) static inline off_t __EVEN( off_t i )
{ {
return( (i & 1) ? i+1 : i ); return( (i & 1) ? i+1 : i );
...@@ -105,8 +104,8 @@ static void AVI_Parse_avih( MainAVIHeader_t *p_avih, byte_t *p_buff ) ...@@ -105,8 +104,8 @@ static void AVI_Parse_avih( MainAVIHeader_t *p_avih, byte_t *p_buff )
} }
static void AVI_Parse_Header( AVIStreamHeader_t *p_strh, byte_t *p_buff ) static void AVI_Parse_Header( AVIStreamHeader_t *p_strh, byte_t *p_buff )
{ {
p_strh->i_type = GetDWLE( p_buff ); p_strh->i_type = GetFOURCC( p_buff );
p_strh->i_handler = GetDWLE( p_buff + 4 ); p_strh->i_handler = GetFOURCC( p_buff + 4 );
p_strh->i_flags = GetDWLE( p_buff + 8 ); p_strh->i_flags = GetDWLE( p_buff + 8 );
p_strh->i_reserved1 = GetDWLE( p_buff + 12); p_strh->i_reserved1 = GetDWLE( p_buff + 12);
p_strh->i_initialframes = GetDWLE( p_buff + 16); p_strh->i_initialframes = GetDWLE( p_buff + 16);
...@@ -125,7 +124,7 @@ static void AVI_Parse_BitMapInfoHeader( bitmapinfoheader_t *h, byte_t *p_data ) ...@@ -125,7 +124,7 @@ static void AVI_Parse_BitMapInfoHeader( bitmapinfoheader_t *h, byte_t *p_data )
h->i_height = GetDWLE( p_data + 8 ); h->i_height = GetDWLE( p_data + 8 );
h->i_planes = GetWLE( p_data + 12 ); h->i_planes = GetWLE( p_data + 12 );
h->i_bitcount = GetWLE( p_data + 14 ); h->i_bitcount = GetWLE( p_data + 14 );
h->i_compression = GetDWLE( p_data + 16 ); h->i_compression = GetFOURCC( p_data + 16 );
h->i_sizeimage = GetDWLE( p_data + 20 ); h->i_sizeimage = GetDWLE( p_data + 20 );
h->i_xpelspermeter = GetDWLE( p_data + 24 ); h->i_xpelspermeter = GetDWLE( p_data + 24 );
h->i_ypelspermeter = GetDWLE( p_data + 28 ); h->i_ypelspermeter = GetDWLE( p_data + 28 );
...@@ -147,10 +146,10 @@ static inline int AVI_GetESTypeFromTwoCC( u16 i_type ) ...@@ -147,10 +146,10 @@ static inline int AVI_GetESTypeFromTwoCC( u16 i_type )
{ {
switch( i_type ) switch( i_type )
{ {
case( TWOCC_wb ): case( AVITWOCC_wb ):
return( AUDIO_ES ); return( AUDIO_ES );
case( TWOCC_dc ): case( AVITWOCC_dc ):
case( TWOCC_db ): case( AVITWOCC_db ):
return( VIDEO_ES ); return( VIDEO_ES );
default: default:
return( UNKNOWN_ES ); return( UNKNOWN_ES );
...@@ -335,7 +334,7 @@ static void AVI_PESBuffer_Flush( input_buffers_t *p_method_data, ...@@ -335,7 +334,7 @@ static void AVI_PESBuffer_Flush( input_buffers_t *p_method_data,
static void AVI_ParseStreamHeader( u32 i_id, int *i_number, int *i_type ) static void AVI_ParseStreamHeader( u32 i_id, int *i_number, int *i_type )
{ {
int c1,c2; int c1,c2;
/* XXX i_id have to be read using MKFOURCC and NOT VLC_FOURCC */
c1 = ( i_id ) & 0xFF; c1 = ( i_id ) & 0xFF;
c2 = ( i_id >> 8 ) & 0xFF; c2 = ( i_id >> 8 ) & 0xFF;
...@@ -435,7 +434,7 @@ static void __AVI_GetIndex( input_thread_t *p_input ) ...@@ -435,7 +434,7 @@ static void __AVI_GetIndex( input_thread_t *p_input )
if( RIFF_FindAndGotoDataChunk( p_input, if( RIFF_FindAndGotoDataChunk( p_input,
p_avi->p_riff, p_avi->p_riff,
&p_idx1, &p_idx1,
FOURCC_idx1)!=0 ) AVIFOURCC_idx1)!=0 )
{ {
msg_Warn( p_input, "cannot find index" ); msg_Warn( p_input, "cannot find index" );
RIFF_GoToChunk( p_input, p_avi->p_hdrl ); RIFF_GoToChunk( p_input, p_avi->p_hdrl );
...@@ -582,7 +581,7 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -582,7 +581,7 @@ static int AVIInit( vlc_object_t * p_this )
p_input->i_bufsize = INPUT_DEFAULT_BUFSIZE; p_input->i_bufsize = INPUT_DEFAULT_BUFSIZE;
} }
if( RIFF_TestFileHeader( p_input, &p_riff, FOURCC_AVI ) != 0 ) if( RIFF_TestFileHeader( p_input, &p_riff, AVIFOURCC_AVI ) != 0 )
{ {
AVIEnd( p_input ); AVIEnd( p_input );
msg_Warn( p_input, "RIFF-AVI module discarded" ); msg_Warn( p_input, "RIFF-AVI module discarded" );
...@@ -598,7 +597,7 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -598,7 +597,7 @@ static int AVIInit( vlc_object_t * p_this )
} }
/* it's a riff-avi file, so search for LIST-hdrl */ /* it's a riff-avi file, so search for LIST-hdrl */
if( RIFF_FindListChunk(p_input ,&p_hdrl,p_riff, FOURCC_hdrl) != 0 ) if( RIFF_FindListChunk(p_input ,&p_hdrl,p_riff, AVIFOURCC_hdrl) != 0 )
{ {
AVIEnd( p_input ); AVIEnd( p_input );
msg_Err( p_input, "cannot find \"LIST-hdrl\"" ); msg_Err( p_input, "cannot find \"LIST-hdrl\"" );
...@@ -614,7 +613,7 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -614,7 +613,7 @@ static int AVIInit( vlc_object_t * p_this )
} }
/* in LIST-hdrl search avih */ /* in LIST-hdrl search avih */
if( RIFF_FindAndLoadChunk( p_input, p_hdrl, if( RIFF_FindAndLoadChunk( p_input, p_hdrl,
&p_avih, FOURCC_avih ) != 0 ) &p_avih, AVIFOURCC_avih ) != 0 )
{ {
AVIEnd( p_input ); AVIEnd( p_input );
msg_Err( p_input, "cannot find \"avih\" chunk" ); msg_Err( p_input, "cannot find \"avih\" chunk" );
...@@ -667,7 +666,7 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -667,7 +666,7 @@ static int AVIInit( vlc_object_t * p_this )
memset( p_info, 0, sizeof( AVIStreamInfo_t ) ); memset( p_info, 0, sizeof( AVIStreamInfo_t ) );
if( ( RIFF_FindListChunk(p_input, if( ( RIFF_FindListChunk(p_input,
&p_strl,p_hdrl, FOURCC_strl) != 0 ) &p_strl,p_hdrl, AVIFOURCC_strl) != 0 )
||( RIFF_DescendChunk(p_input) != 0 )) ||( RIFF_DescendChunk(p_input) != 0 ))
{ {
AVIEnd( p_input ); AVIEnd( p_input );
...@@ -677,7 +676,7 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -677,7 +676,7 @@ static int AVIInit( vlc_object_t * p_this )
/* in LIST-strl search strh */ /* in LIST-strl search strh */
if( RIFF_FindAndLoadChunk( p_input, p_hdrl, if( RIFF_FindAndLoadChunk( p_input, p_hdrl,
&p_strh, FOURCC_strh ) != 0 ) &p_strh, AVIFOURCC_strh ) != 0 )
{ {
RIFF_DeleteChunk( p_input, p_strl ); RIFF_DeleteChunk( p_input, p_strl );
AVIEnd( p_input ); AVIEnd( p_input );
...@@ -690,7 +689,7 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -690,7 +689,7 @@ static int AVIInit( vlc_object_t * p_this )
/* in LIST-strl search strf */ /* in LIST-strl search strf */
if( RIFF_FindAndLoadChunk( p_input, p_hdrl, if( RIFF_FindAndLoadChunk( p_input, p_hdrl,
&p_strf, FOURCC_strf ) != 0 ) &p_strf, AVIFOURCC_strf ) != 0 )
{ {
RIFF_DeleteChunk( p_input, p_strl ); RIFF_DeleteChunk( p_input, p_strl );
AVIEnd( p_input ); AVIEnd( p_input );
...@@ -717,7 +716,7 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -717,7 +716,7 @@ static int AVIInit( vlc_object_t * p_this )
switch( p_info->header.i_type ) switch( p_info->header.i_type )
{ {
case( FOURCC_auds ): case( AVIFOURCC_auds ):
p_es->i_cat = AUDIO_ES; p_es->i_cat = AUDIO_ES;
AVI_Parse_WaveFormatEx( &p_info->audio_format, AVI_Parse_WaveFormatEx( &p_info->audio_format,
p_strf->p_data->p_payload_start ); p_strf->p_data->p_payload_start );
...@@ -725,7 +724,7 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -725,7 +724,7 @@ static int AVIInit( vlc_object_t * p_this )
p_info->audio_format.i_formattag ); p_info->audio_format.i_formattag );
break; break;
case( FOURCC_vids ): case( AVIFOURCC_vids ):
p_es->i_cat = VIDEO_ES; p_es->i_cat = VIDEO_ES;
AVI_Parse_BitMapInfoHeader( &p_info->video_format, AVI_Parse_BitMapInfoHeader( &p_info->video_format,
p_strf->p_data->p_payload_start ); p_strf->p_data->p_payload_start );
...@@ -762,7 +761,7 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -762,7 +761,7 @@ static int AVIInit( vlc_object_t * p_this )
} }
/* go to movi chunk to get it*/ /* go to movi chunk to get it*/
if( RIFF_FindListChunk(p_input ,&p_movi,p_riff, FOURCC_movi) != 0 ) if( RIFF_FindListChunk(p_input ,&p_movi,p_riff, AVIFOURCC_movi) != 0 )
{ {
msg_Err( p_input, "cannot find \"LIST-movi\"" ); msg_Err( p_input, "cannot find \"LIST-movi\"" );
AVIEnd( p_input ); AVIEnd( p_input );
...@@ -1275,7 +1274,7 @@ static int __AVI_GetChunk( input_thread_t *p_input, ...@@ -1275,7 +1274,7 @@ static int __AVI_GetChunk( input_thread_t *p_input,
} }
/* msg_Dbg( p_input, "ck: %4.4s len %d", &p_ck->i_id, p_ck->i_size ); */ /* msg_Dbg( p_input, "ck: %4.4s len %d", &p_ck->i_id, p_ck->i_size ); */
/* special case for LIST-rec chunk */ /* special case for LIST-rec chunk */
if( ( p_ck->i_id == FOURCC_LIST )&&( p_ck->i_type == FOURCC_rec ) ) if( ( p_ck->i_id == AVIFOURCC_LIST )&&( p_ck->i_type == AVIFOURCC_rec ) )
{ {
RIFF_DescendChunk( p_input ); RIFF_DescendChunk( p_input );
RIFF_DeleteChunk( p_input, p_ck ); RIFF_DeleteChunk( p_input, p_ck );
...@@ -1879,12 +1878,12 @@ static int __AVIDemux_ChunkAction( int i_streams_max, ...@@ -1879,12 +1878,12 @@ static int __AVIDemux_ChunkAction( int i_streams_max,
switch( p_ck->i_id ) switch( p_ck->i_id )
{ {
case( FOURCC_JUNK ): case( AVIFOURCC_JUNK ):
return( 1 ); return( 1 );
case( FOURCC_idx1 ): case( AVIFOURCC_idx1 ):
return( 3 ); return( 3 );
case( FOURCC_LIST ): case( AVIFOURCC_LIST ):
if( p_ck->i_type == FOURCC_rec ) if( p_ck->i_type == AVIFOURCC_rec )
{ {
return( 2 ); return( 2 );
} }
...@@ -1897,7 +1896,7 @@ static int __AVIDemux_ChunkAction( int i_streams_max, ...@@ -1897,7 +1896,7 @@ static int __AVIDemux_ChunkAction( int i_streams_max,
} }
/* test for ix?? */ /* test for ix?? */
if( ( p_ck->i_id & 0xFFFF ) == VLC_TWOCC( 'i','x' ) ) if( ( p_ck->i_id & 0xFFFF ) == MKTWOCC( 'i','x' ) )
{ {
return( 1 ); return( 1 );
} }
...@@ -1921,9 +1920,9 @@ static int AVI_NotSeekableRecover( input_thread_t *p_input ) ...@@ -1921,9 +1920,9 @@ static int AVI_NotSeekableRecover( input_thread_t *p_input )
i_id = GetDWLE( p_id ); i_id = GetDWLE( p_id );
switch( i_id ) switch( i_id )
{ {
case( FOURCC_idx1 ): case( AVIFOURCC_idx1 ):
case( FOURCC_JUNK ): case( AVIFOURCC_JUNK ):
case( FOURCC_LIST ): case( AVIFOURCC_LIST ):
return( 1 ); return( 1 );
default: default:
AVI_ParseStreamHeader( i_id, &i_number, &i_type ); AVI_ParseStreamHeader( i_id, &i_number, &i_type );
...@@ -1931,10 +1930,10 @@ static int AVI_NotSeekableRecover( input_thread_t *p_input ) ...@@ -1931,10 +1930,10 @@ static int AVI_NotSeekableRecover( input_thread_t *p_input )
{ {
switch( i_type ) switch( i_type )
{ {
case( TWOCC_wb ): case( AVITWOCC_wb ):
case( TWOCC_db ): case( AVITWOCC_db ):
case( TWOCC_dc ): case( AVITWOCC_dc ):
case( TWOCC_pc ): case( AVITWOCC_pc ):
return( 1 ); return( 1 );
} }
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* avi.h : AVI file Stream input module for vlc * avi.h : AVI file Stream input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: avi.h,v 1.2 2002/08/07 00:29:36 sam Exp $ * $Id: avi.h,v 1.3 2002/09/18 23:34:28 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -40,31 +40,36 @@ ...@@ -40,31 +40,36 @@
the keyframe flag isn't a true flag the keyframe flag isn't a true flag
but have to be verified */ but have to be verified */
/* AVI stuff */ #define MKTWOCC( a, b ) \
#define FOURCC_RIFF VLC_FOURCC('R','I','F','F') ( (u16)(a) | ( (u16)(b) << 8 ) )
#define FOURCC_LIST VLC_FOURCC('L','I','S','T')
#define FOURCC_JUNK VLC_FOURCC('J','U','N','K')
#define FOURCC_AVI VLC_FOURCC('A','V','I',' ')
#define FOURCC_WAVE VLC_FOURCC('W','A','V','E')
#define FOURCC_avih VLC_FOURCC('a','v','i','h') /* *** avi stuff *** */
#define FOURCC_hdrl VLC_FOURCC('h','d','r','l')
#define FOURCC_movi VLC_FOURCC('m','o','v','i')
#define FOURCC_idx1 VLC_FOURCC('i','d','x','1')
#define FOURCC_strl VLC_FOURCC('s','t','r','l') #define AVIFOURCC_RIFF MKFOURCC('R','I','F','F')
#define FOURCC_strh VLC_FOURCC('s','t','r','h') #define AVIFOURCC_LIST MKFOURCC('L','I','S','T')
#define FOURCC_strf VLC_FOURCC('s','t','r','f') #define AVIFOURCC_JUNK MKFOURCC('J','U','N','K')
#define FOURCC_strd VLC_FOURCC('s','t','r','d') #define AVIFOURCC_AVI MKFOURCC('A','V','I',' ')
#define AVIFOURCC_WAVE MKFOURCC('W','A','V','E')
#define FOURCC_rec VLC_FOURCC('r','e','c',' ') #define AVIFOURCC_avih MKFOURCC('a','v','i','h')
#define FOURCC_auds VLC_FOURCC('a','u','d','s') #define AVIFOURCC_hdrl MKFOURCC('h','d','r','l')
#define FOURCC_vids VLC_FOURCC('v','i','d','s') #define AVIFOURCC_movi MKFOURCC('m','o','v','i')
#define AVIFOURCC_idx1 MKFOURCC('i','d','x','1')
#define TWOCC_wb VLC_TWOCC('w','b') #define AVIFOURCC_strl MKFOURCC('s','t','r','l')
#define TWOCC_db VLC_TWOCC('d','b') #define AVIFOURCC_strh MKFOURCC('s','t','r','h')
#define TWOCC_dc VLC_TWOCC('d','c') #define AVIFOURCC_strf MKFOURCC('s','t','r','f')
#define TWOCC_pc VLC_TWOCC('p','c') #define AVIFOURCC_strd MKFOURCC('s','t','r','d')
#define AVIFOURCC_rec MKFOURCC('r','e','c',' ')
#define AVIFOURCC_auds MKFOURCC('a','u','d','s')
#define AVIFOURCC_vids MKFOURCC('v','i','d','s')
#define AVITWOCC_wb MKTWOCC('w','b')
#define AVITWOCC_db MKTWOCC('d','b')
#define AVITWOCC_dc MKTWOCC('d','c')
#define AVITWOCC_pc MKTWOCC('p','c')
/* *** codex stuff *** */
/* MPEG4 video */ /* MPEG4 video */
#define FOURCC_DIVX VLC_FOURCC('D','I','V','X') #define FOURCC_DIVX VLC_FOURCC('D','I','V','X')
...@@ -142,12 +147,12 @@ typedef struct bitmapinfoheader_s ...@@ -142,12 +147,12 @@ typedef struct bitmapinfoheader_s
typedef struct waveformatex_s typedef struct waveformatex_s
{ {
u16 i_formattag; u16 i_formattag; // + 0x00
u16 i_channels; u16 i_channels; // + 0x02
u32 i_samplespersec; u32 i_samplespersec; // + 0x04
u32 i_avgbytespersec; u32 i_avgbytespersec; // + 0x08
u16 i_blockalign; u16 i_blockalign; // + 0x0c
u16 i_bitspersample; u16 i_bitspersample; // + 0x0e
u16 i_size; /* the extra size in bytes */ u16 i_size; /* the extra size in bytes */
} waveformatex_t; } waveformatex_t;
...@@ -210,15 +215,12 @@ typedef struct AVIESBuffer_s ...@@ -210,15 +215,12 @@ typedef struct AVIESBuffer_s
typedef struct AVIStreamInfo_s typedef struct AVIStreamInfo_s
{ {
int i_cat; /* AUDIO_ES, VIDEO_ES */
riffchunk_t *p_strl; vlc_fourcc_t i_fourcc;
riffchunk_t *p_strh; vlc_fourcc_t i_codec;
riffchunk_t *p_strf;
riffchunk_t *p_strd; /* not used */
AVIStreamHeader_t header; AVIStreamHeader_t header;
u8 i_cat; /* AUDIO_ES, VIDEO_ES */
bitmapinfoheader_t video_format; bitmapinfoheader_t video_format;
waveformatex_t audio_format; waveformatex_t audio_format;
es_descriptor_t *p_es; es_descriptor_t *p_es;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* libioRIFF.c : AVI file Stream input module for vlc * libioRIFF.c : AVI file Stream input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: libioRIFF.c,v 1.1 2002/08/04 17:23:42 sam Exp $ * $Id: libioRIFF.c,v 1.2 2002/09/18 23:34:28 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "video.h" #include "video.h"
#include "libioRIFF.h" #include "libioRIFF.h"
static inline u16 __GetWLE( byte_t *p_buff ) static inline u16 __GetWLE( byte_t *p_buff )
{ {
return( (*p_buff) + ( *(p_buff+1) <<8 ) ); return( (*p_buff) + ( *(p_buff+1) <<8 ) );
...@@ -355,7 +354,7 @@ int RIFF_TestFileHeader( input_thread_t * p_input, riffchunk_t ** pp_riff, u32 ...@@ -355,7 +354,7 @@ int RIFF_TestFileHeader( input_thread_t * p_input, riffchunk_t ** pp_riff, u32
{ {
return( -1 ); return( -1 );
} }
if( (*pp_riff)->i_id != VLC_FOURCC('R','I','F','F') if( (*pp_riff)->i_id != MKFOURCC('R','I','F','F')
|| (*pp_riff)->i_type != i_type ) || (*pp_riff)->i_type != i_type )
{ {
free( *pp_riff ); free( *pp_riff );
...@@ -416,7 +415,7 @@ int RIFF_FindListChunk( input_thread_t *p_input, riffchunk_t **pp_riff, riffch ...@@ -416,7 +415,7 @@ int RIFF_FindListChunk( input_thread_t *p_input, riffchunk_t **pp_riff, riffch
free( *pp_riff ); free( *pp_riff );
} }
if( RIFF_FindChunk( p_input, if( RIFF_FindChunk( p_input,
VLC_FOURCC('L','I','S','T'), p_rifffather ) != 0 ) MKFOURCC('L','I','S','T'), p_rifffather ) != 0 )
{ {
return( -1 ); return( -1 );
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* libioRIFF.h : AVI file Stream input module for vlc * libioRIFF.h : AVI file Stream input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: libioRIFF.h,v 1.1 2002/08/04 17:23:42 sam Exp $ * $Id: libioRIFF.h,v 1.2 2002/09/18 23:34:28 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -19,12 +19,13 @@ ...@@ -19,12 +19,13 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/ *****************************************************************************/
#define MKFOURCC( a, b, c, d ) \
( ((u32)a) | ( ((u32)b) << 8 ) | ( ((u32)c) << 16 ) | ( ((u32)d) << 24 ) )
typedef struct riffchunk_s typedef struct riffchunk_s
{ {
u32 i_id; vlc_fourcc_t i_id;
u32 i_size; u32 i_size;
u32 i_type; vlc_fourcc_t i_type;
u32 i_pos; u32 i_pos;
data_packet_t *p_data; data_packet_t *p_data;
u64 i_8bytes; /* it's the first 8 bytes after header u64 i_8bytes; /* it's the first 8 bytes after header
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* libmp4.c : LibMP4 library for mp4 module for vlc * libmp4.c : LibMP4 library for mp4 module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: libmp4.c,v 1.5 2002/09/17 11:57:38 fenrir Exp $ * $Id: libmp4.c,v 1.6 2002/09/18 23:34:28 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -61,7 +61,8 @@ ...@@ -61,7 +61,8 @@
dst = GetDWBE( p_peek ); p_peek += 4; i_read -= 4 dst = GetDWBE( p_peek ); p_peek += 4; i_read -= 4
#define MP4_GETFOURCC( dst ) \ #define MP4_GETFOURCC( dst ) \
dst = GetDWLE( p_peek ); p_peek += 4; i_read -= 4 dst = VLC_FOURCC( p_peek[0], p_peek[1], p_peek[2], p_peek[3] ); \
p_peek += 4; i_read -= 4
#define MP4_GET8BYTES( dst ) \ #define MP4_GET8BYTES( dst ) \
dst = GetQWBE( p_peek ); p_peek += 8; i_read -= 8 dst = GetQWBE( p_peek ); p_peek += 8; i_read -= 8
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment