[vlc-commits] demux: es: use proper types
Francois Cartegnie
git at videolan.org
Wed Sep 26 13:11:39 CEST 2018
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue Sep 25 18:25:42 2018 +0200| [17340adb51dabc986876a65f5afbfa5a91b62737] | committer: Francois Cartegnie
demux: es: use proper types
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=17340adb51dabc986876a65f5afbfa5a91b62737
---
modules/demux/mpeg/es.c | 127 +++++++++++++++++++++++++-----------------------
1 file changed, 65 insertions(+), 62 deletions(-)
diff --git a/modules/demux/mpeg/es.c b/modules/demux/mpeg/es.c
index 4650b95d23..f7a817ea05 100644
--- a/modules/demux/mpeg/es.c
+++ b/modules/demux/mpeg/es.c
@@ -90,7 +90,7 @@ typedef struct
vlc_fourcc_t i_codec;
bool b_use_word;
const char *psz_name;
- int (*pf_probe)( demux_t *p_demux, int64_t *pi_offset );
+ int (*pf_probe)( demux_t *p_demux, uint64_t *pi_offset );
int (*pf_init)( demux_t *p_demux );
} codec_t;
@@ -142,7 +142,7 @@ typedef struct
int i_packet_size;
- int64_t i_stream_offset;
+ uint64_t i_stream_offset;
float f_fps;
@@ -163,21 +163,21 @@ typedef struct
sync_table_t mllt;
} demux_sys_t;
-static int MpgaProbe( demux_t *p_demux, int64_t *pi_offset );
+static int MpgaProbe( demux_t *p_demux, uint64_t *pi_offset );
static int MpgaInit( demux_t *p_demux );
-static int AacProbe( demux_t *p_demux, int64_t *pi_offset );
+static int AacProbe( demux_t *p_demux, uint64_t *pi_offset );
static int AacInit( demux_t *p_demux );
-static int EA52Probe( demux_t *p_demux, int64_t *pi_offset );
-static int A52Probe( demux_t *p_demux, int64_t *pi_offset );
+static int EA52Probe( demux_t *p_demux, uint64_t *pi_offset );
+static int A52Probe( demux_t *p_demux, uint64_t *pi_offset );
static int A52Init( demux_t *p_demux );
-static int DtsProbe( demux_t *p_demux, int64_t *pi_offset );
+static int DtsProbe( demux_t *p_demux, uint64_t *pi_offset );
static int DtsInit( demux_t *p_demux );
-static int MlpProbe( demux_t *p_demux, int64_t *pi_offset );
-static int ThdProbe( demux_t *p_demux, int64_t *pi_offset );
+static int MlpProbe( demux_t *p_demux, uint64_t *pi_offset );
+static int ThdProbe( demux_t *p_demux, uint64_t *pi_offset );
static int MlpInit( demux_t *p_demux );
static bool Parse( demux_t *p_demux, block_t **pp_output );
@@ -205,7 +205,7 @@ static const codec_t codec_m4v = {
* OpenCommon: initializes demux structures
*****************************************************************************/
static int OpenCommon( demux_t *p_demux,
- int i_cat, const codec_t *p_codec, int64_t i_bs_offset )
+ int i_cat, const codec_t *p_codec, uint64_t i_bs_offset )
{
demux_sys_t *p_sys;
@@ -277,7 +277,7 @@ static int OpenAudio( vlc_object_t *p_this )
demux_t *p_demux = (demux_t*)p_this;
for( int i = 0; p_codecs[i].i_codec != 0; i++ )
{
- int64_t i_offset;
+ uint64_t i_offset;
if( !p_codecs[i].pf_probe( p_demux, &i_offset ) )
return OpenCommon( p_demux, AUDIO_ES, &p_codecs[i], i_offset );
}
@@ -571,11 +571,12 @@ static int GenericFormatCheck( int i_format, const uint8_t *p_head )
* Wav header skipper
*****************************************************************************/
#define WAV_PROBE_SIZE (512*1024)
-static int WavSkipHeader( demux_t *p_demux, int *pi_skip, const int pi_format[],
+static int WavSkipHeader( demux_t *p_demux, uint64_t *pi_skip,
+ const uint16_t rgi_twocc[],
int (*pf_format_check)( int, const uint8_t * ) )
{
const uint8_t *p_peek;
- int i_peek = 0;
+ size_t i_peek = 0;
uint32_t i_len;
/* */
@@ -597,7 +598,7 @@ static int WavSkipHeader( demux_t *p_demux, int *pi_skip, const int pi_format[],
return VLC_EGENERIC;
i_peek += i_len + 8;
- if( vlc_stream_Peek( p_demux->s, &p_peek, i_peek ) != i_peek )
+ if( vlc_stream_Peek( p_demux->s, &p_peek, i_peek ) != (ssize_t) i_peek )
return VLC_EGENERIC;
}
@@ -607,20 +608,20 @@ static int WavSkipHeader( demux_t *p_demux, int *pi_skip, const int pi_format[],
return VLC_EGENERIC;
i_peek += i_len + 8;
- if( vlc_stream_Peek( p_demux->s, &p_peek, i_peek ) != i_peek )
+ if( vlc_stream_Peek( p_demux->s, &p_peek, i_peek ) != (ssize_t) i_peek )
return VLC_EGENERIC;
- const int i_format = GetWLE( p_peek + i_peek - i_len - 8 /* wFormatTag */ );
+ const uint16_t i_twocc = GetWLE( p_peek + i_peek - i_len - 8 /* wFormatTag */ );
int i_format_idx;
- for( i_format_idx = 0; pi_format[i_format_idx] != WAVE_FORMAT_UNKNOWN; i_format_idx++ )
+ for( i_format_idx = 0; rgi_twocc[i_format_idx] != WAVE_FORMAT_UNKNOWN; i_format_idx++ )
{
- if( i_format == pi_format[i_format_idx] )
+ if( i_twocc == rgi_twocc[i_format_idx] )
break;
}
- if( pi_format[i_format_idx] == WAVE_FORMAT_UNKNOWN )
+ if( rgi_twocc[i_format_idx] == WAVE_FORMAT_UNKNOWN )
return VLC_EGENERIC;
if( pf_format_check &&
- pf_format_check( i_format, p_peek + i_peek - i_len - 6 ) != VLC_SUCCESS )
+ pf_format_check( i_twocc, p_peek + i_peek - i_len - 6 ) != VLC_SUCCESS )
return VLC_EGENERIC;
/* Skip the wave header */
@@ -631,34 +632,35 @@ static int WavSkipHeader( demux_t *p_demux, int *pi_skip, const int pi_format[],
return VLC_EGENERIC;
i_peek += i_len + 8;
- if( vlc_stream_Peek( p_demux->s, &p_peek, i_peek ) != i_peek )
+ if( vlc_stream_Peek( p_demux->s, &p_peek, i_peek ) != (ssize_t) i_peek )
return VLC_EGENERIC;
}
*pi_skip = i_peek;
return VLC_SUCCESS;
}
-static int GenericProbe( demux_t *p_demux, int64_t *pi_offset,
+static int GenericProbe( demux_t *p_demux, uint64_t *pi_offset,
const char * ppsz_name[],
- int (*pf_check)( const uint8_t *, int * ), int i_check_size,
- const int pi_wav_format[],
+ int (*pf_check)( const uint8_t *, unsigned * ),
+ unsigned i_check_size,
+ const uint16_t pi_twocc[],
int (*pf_format_check)( int, const uint8_t * ) )
{
bool b_forced_demux;
- int64_t i_offset;
+ uint64_t i_offset;
const uint8_t *p_peek;
- int i_skip;
+ uint64_t i_skip;
b_forced_demux = false;
- for( int i = 0; ppsz_name[i] != NULL; i++ )
+ for( size_t i = 0; ppsz_name[i] != NULL; i++ )
{
b_forced_demux |= demux_IsForced( p_demux, ppsz_name[i] );
}
i_offset = vlc_stream_Tell( p_demux->s );
- if( WavSkipHeader( p_demux, &i_skip, pi_wav_format, pf_format_check ) )
+ if( WavSkipHeader( p_demux, &i_skip, pi_twocc, pf_format_check ) )
{
if( !b_forced_demux )
return VLC_EGENERIC;
@@ -669,8 +671,8 @@ static int GenericProbe( demux_t *p_demux, int64_t *pi_offset,
* It is common that wav files have some sort of garbage at the begining
* We will accept probing 0.5s of data in this case.
*/
- const int i_probe = i_skip + i_check_size + 8000 + ( b_wav ? (44000/2*2*2) : 0);
- const int i_peek = vlc_stream_Peek( p_demux->s, &p_peek, i_probe );
+ const size_t i_probe = i_skip + i_check_size + 8000 + ( b_wav ? (44000/2*2*2) : 0);
+ const size_t i_peek = vlc_stream_Peek( p_demux->s, &p_peek, i_probe );
if( i_peek < i_skip + i_check_size )
{
msg_Dbg( p_demux, "cannot peek" );
@@ -684,7 +686,7 @@ static int GenericProbe( demux_t *p_demux, int64_t *pi_offset,
return VLC_EGENERIC;
break;
}
- int i_samples = 0;
+ unsigned i_samples = 0;
int i_size = pf_check( &p_peek[i_skip], &i_samples );
if( i_size >= 0 )
{
@@ -763,15 +765,16 @@ static int MpgaGetFrameSamples( uint32_t h )
}
}
-static int MpgaProbe( demux_t *p_demux, int64_t *pi_offset )
+static int MpgaProbe( demux_t *p_demux, uint64_t *pi_offset )
{
- const int pi_wav[] = { WAVE_FORMAT_MPEG, WAVE_FORMAT_MPEGLAYER3, WAVE_FORMAT_UNKNOWN };
+ const uint16_t rgi_twocc[] = { WAVE_FORMAT_MPEG, WAVE_FORMAT_MPEGLAYER3, WAVE_FORMAT_UNKNOWN };
bool b_forced;
bool b_forced_demux;
- int64_t i_offset;
+ uint64_t i_offset;
const uint8_t *p_peek;
- int i_skip;
+ uint64_t i_skip;
+ ssize_t i_peek;
b_forced = demux_IsPathExtension( p_demux, ".mp3" );
b_forced_demux = demux_IsForced( p_demux, "mp3" ) ||
@@ -779,7 +782,7 @@ static int MpgaProbe( demux_t *p_demux, int64_t *pi_offset )
i_offset = vlc_stream_Tell( p_demux->s );
- if( WavSkipHeader( p_demux, &i_skip, pi_wav, NULL ) )
+ if( WavSkipHeader( p_demux, &i_skip, rgi_twocc, NULL ) )
{
if( !b_forced_demux )
return VLC_EGENERIC;
@@ -787,19 +790,19 @@ static int MpgaProbe( demux_t *p_demux, int64_t *pi_offset )
return VLC_EGENERIC;
}
- if( vlc_stream_Peek( p_demux->s, &p_peek, i_skip + 4 ) < i_skip + 4 )
+ i_peek = vlc_stream_Peek( p_demux->s, &p_peek, i_skip + 4 );
+ if( i_peek <= 0 || (uint64_t) i_peek < i_skip + 4 )
return VLC_EGENERIC;
if( !MpgaCheckSync( &p_peek[i_skip] ) )
{
bool b_ok = false;
- int i_peek;
if( !b_forced_demux && !b_forced )
return VLC_EGENERIC;
i_peek = vlc_stream_Peek( p_demux->s, &p_peek, i_skip + 8096 );
- while( i_skip + 4 < i_peek )
+ while( i_peek > 0 && i_skip + 4 < (uint64_t) i_peek )
{
if( MpgaCheckSync( &p_peek[i_skip] ) )
{
@@ -1064,12 +1067,12 @@ static int MpgaInit( demux_t *p_demux )
/*****************************************************************************
* AAC
*****************************************************************************/
-static int AacProbe( demux_t *p_demux, int64_t *pi_offset )
+static int AacProbe( demux_t *p_demux, uint64_t *pi_offset )
{
bool b_forced;
bool b_forced_demux;
- int64_t i_offset;
+ uint64_t i_offset;
const uint8_t *p_peek;
b_forced = demux_IsPathExtension( p_demux, ".aac" ) ||
@@ -1112,7 +1115,7 @@ static int AacInit( demux_t *p_demux )
/*****************************************************************************
* A52
*****************************************************************************/
-static int A52CheckSync( const uint8_t *p_peek, bool *p_big_endian, int *pi_samples, bool b_eac3 )
+static int A52CheckSync( const uint8_t *p_peek, bool *p_big_endian, unsigned *pi_samples, bool b_eac3 )
{
vlc_a52_header_t header;
uint8_t p_tmp[VLC_A52_HEADER_SIZE];
@@ -1133,34 +1136,34 @@ static int A52CheckSync( const uint8_t *p_peek, bool *p_big_endian, int *pi_samp
*pi_samples = header.i_samples;
return header.i_size;
}
-static int EA52CheckSyncProbe( const uint8_t *p_peek, int *pi_samples )
+static int EA52CheckSyncProbe( const uint8_t *p_peek, unsigned *pi_samples )
{
bool b_dummy;
return A52CheckSync( p_peek, &b_dummy, pi_samples, true );
}
-static int EA52Probe( demux_t *p_demux, int64_t *pi_offset )
+static int EA52Probe( demux_t *p_demux, uint64_t *pi_offset )
{
const char *ppsz_name[] = { "eac3", NULL };
- const int pi_wav[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_A52, WAVE_FORMAT_UNKNOWN };
+ const uint16_t rgi_twocc[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_A52, WAVE_FORMAT_UNKNOWN };
return GenericProbe( p_demux, pi_offset, ppsz_name, EA52CheckSyncProbe,
- VLC_A52_HEADER_SIZE, pi_wav, GenericFormatCheck );
+ VLC_A52_HEADER_SIZE, rgi_twocc, GenericFormatCheck );
}
-static int A52CheckSyncProbe( const uint8_t *p_peek, int *pi_samples )
+static int A52CheckSyncProbe( const uint8_t *p_peek, unsigned *pi_samples )
{
bool b_dummy;
return A52CheckSync( p_peek, &b_dummy, pi_samples, false );
}
-static int A52Probe( demux_t *p_demux, int64_t *pi_offset )
+static int A52Probe( demux_t *p_demux, uint64_t *pi_offset )
{
const char *ppsz_name[] = { "a52", "ac3", NULL };
- const int pi_wav[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_A52, WAVE_FORMAT_UNKNOWN };
+ const uint16_t rgi_twocc[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_A52, WAVE_FORMAT_UNKNOWN };
return GenericProbe( p_demux, pi_offset, ppsz_name, A52CheckSyncProbe,
- VLC_A52_HEADER_SIZE, pi_wav, GenericFormatCheck );
+ VLC_A52_HEADER_SIZE, rgi_twocc, GenericFormatCheck );
}
static int A52Init( demux_t *p_demux )
@@ -1183,7 +1186,7 @@ static int A52Init( demux_t *p_demux )
/*****************************************************************************
* DTS
*****************************************************************************/
-static int DtsCheckSync( const uint8_t *p_peek, int *pi_samples )
+static int DtsCheckSync( const uint8_t *p_peek, unsigned *pi_samples )
{
VLC_UNUSED(pi_samples);
@@ -1199,13 +1202,13 @@ static int DtsCheckSync( const uint8_t *p_peek, int *pi_samples )
return VLC_EGENERIC;
}
-static int DtsProbe( demux_t *p_demux, int64_t *pi_offset )
+static int DtsProbe( demux_t *p_demux, uint64_t *pi_offset )
{
const char *ppsz_name[] = { "dts", NULL };
- const int pi_wav[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_DTS, WAVE_FORMAT_UNKNOWN };
+ const uint16_t rgi_twocc[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_DTS, WAVE_FORMAT_UNKNOWN };
return GenericProbe( p_demux, pi_offset, ppsz_name, DtsCheckSync,
- VLC_DTS_HEADER_SIZE, pi_wav, NULL );
+ VLC_DTS_HEADER_SIZE, rgi_twocc, NULL );
}
static int DtsInit( demux_t *p_demux )
{
@@ -1219,7 +1222,7 @@ static int DtsInit( demux_t *p_demux )
/*****************************************************************************
* MLP
*****************************************************************************/
-static int MlpCheckSync( const uint8_t *p_peek, int *pi_samples )
+static int MlpCheckSync( const uint8_t *p_peek, unsigned *pi_samples )
{
if( p_peek[4+0] != 0xf8 || p_peek[4+1] != 0x72 || p_peek[4+2] != 0x6f )
return -1;
@@ -1231,7 +1234,7 @@ static int MlpCheckSync( const uint8_t *p_peek, int *pi_samples )
VLC_UNUSED(pi_samples);
return 0;
}
-static int ThdCheckSync( const uint8_t *p_peek, int *pi_samples )
+static int ThdCheckSync( const uint8_t *p_peek, unsigned *pi_samples )
{
if( p_peek[4+0] != 0xf8 || p_peek[4+1] != 0x72 || p_peek[4+2] != 0x6f )
return -1;
@@ -1243,21 +1246,21 @@ static int ThdCheckSync( const uint8_t *p_peek, int *pi_samples )
VLC_UNUSED(pi_samples);
return 0;
}
-static int MlpProbe( demux_t *p_demux, int64_t *pi_offset )
+static int MlpProbe( demux_t *p_demux, uint64_t *pi_offset )
{
const char *ppsz_name[] = { "mlp", NULL };
- const int pi_wav[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_UNKNOWN };
+ const uint16_t rgi_twocc[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_UNKNOWN };
return GenericProbe( p_demux, pi_offset, ppsz_name, MlpCheckSync,
- 4+28+16*4, pi_wav, GenericFormatCheck );
+ 4+28+16*4, rgi_twocc, GenericFormatCheck );
}
-static int ThdProbe( demux_t *p_demux, int64_t *pi_offset )
+static int ThdProbe( demux_t *p_demux, uint64_t *pi_offset )
{
const char *ppsz_name[] = { "thd", NULL };
- const int pi_wav[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_UNKNOWN };
+ const uint16_t rgi_twocc[] = { WAVE_FORMAT_PCM, WAVE_FORMAT_UNKNOWN };
return GenericProbe( p_demux, pi_offset, ppsz_name, ThdCheckSync,
- 4+28+16*4, pi_wav, GenericFormatCheck );
+ 4+28+16*4, rgi_twocc, GenericFormatCheck );
}
static int MlpInit( demux_t *p_demux )
More information about the vlc-commits
mailing list