Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-1.1
Commits
22d851e1
Commit
22d851e1
authored
Jan 25, 2003
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* all : fixed some memory leaks thanks valgrind.
parent
25eea88d
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
222 additions
and
167 deletions
+222
-167
modules/demux/aac/demux.c
modules/demux/aac/demux.c
+68
-60
modules/demux/asf/asf.c
modules/demux/asf/asf.c
+2
-2
modules/demux/avi/avi.c
modules/demux/avi/avi.c
+4
-2
modules/demux/avi/libavi.c
modules/demux/avi/libavi.c
+16
-2
modules/demux/avi/libavi.h
modules/demux/avi/libavi.h
+8
-1
modules/demux/demuxdump.c
modules/demux/demuxdump.c
+9
-9
modules/demux/mp4/libmp4.c
modules/demux/mp4/libmp4.c
+58
-54
modules/demux/mp4/mp4.c
modules/demux/mp4/mp4.c
+7
-3
modules/demux/wav/wav.c
modules/demux/wav/wav.c
+50
-34
No files found.
modules/demux/aac/demux.c
View file @
22d851e1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* demux.c : Raw aac Stream input module for vlc
* demux.c : Raw aac Stream input module for vlc
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* Copyright (C) 2001 VideoLAN
* $Id: demux.c,v 1.
4 2003/01/20 13:03:03
fenrir Exp $
* $Id: demux.c,v 1.
5 2003/01/25 16:58:34
fenrir Exp $
*
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
*
...
@@ -37,7 +37,7 @@
...
@@ -37,7 +37,7 @@
*****************************************************************************/
*****************************************************************************/
static
int
Activate
(
vlc_object_t
*
);
static
int
Activate
(
vlc_object_t
*
);
static
int
Demux
(
input_thread_t
*
);
static
int
Demux
(
input_thread_t
*
);
static
void
Deactivate
(
vlc_object_t
*
);
/*****************************************************************************
/*****************************************************************************
* Module descriptor
* Module descriptor
...
@@ -52,7 +52,7 @@ vlc_module_end();
...
@@ -52,7 +52,7 @@ vlc_module_end();
/*****************************************************************************
/*****************************************************************************
* Definitions of structures and functions used by this plugins
* Definitions of structures and functions used by this plugins
*****************************************************************************/
*****************************************************************************/
#define FREE( p ) if( p ) { free( p ); (p) = NULL; }
/* XXX set this to 0 to avoid problem with PS XXX */
/* XXX set this to 0 to avoid problem with PS XXX */
/* but with some file or web radio will failed to detect */
/* but with some file or web radio will failed to detect */
/* it's you to choose */
/* it's you to choose */
...
@@ -91,7 +91,7 @@ typedef struct adts_header_s
...
@@ -91,7 +91,7 @@ typedef struct adts_header_s
typedef
struct
adif_header_s
typedef
struct
adif_header_s
{
{
int
b_copyright_id_present
;
int
b_copyright_id_present
;
u
8
i_copyright_id
[
10
];
u
int8_t
i_copyright_id
[
10
];
int
b_original_copy
;
int
b_original_copy
;
...
@@ -134,13 +134,13 @@ struct demux_sys_t
...
@@ -134,13 +134,13 @@ struct demux_sys_t
****************************************************************************/
****************************************************************************/
typedef
struct
bit_s
typedef
struct
bit_s
{
{
u
8
*
p_buffer
;
u
int8_t
*
p_buffer
;
int
i_buffer
;
int
i_buffer
;
int
i_mask
;
int
i_mask
;
}
bit_t
;
}
bit_t
;
static
void
bit_init
(
bit_t
*
p_bit
,
static
void
bit_init
(
bit_t
*
p_bit
,
u
8
*
p_buffer
,
u
int8_t
*
p_buffer
,
int
i_buffer
)
int
i_buffer
)
{
{
p_bit
->
p_buffer
=
p_buffer
;
p_bit
->
p_buffer
=
p_buffer
;
...
@@ -148,9 +148,9 @@ static void bit_init( bit_t *p_bit,
...
@@ -148,9 +148,9 @@ static void bit_init( bit_t *p_bit,
p_bit
->
i_mask
=
0x80
;
p_bit
->
i_mask
=
0x80
;
}
}
static
u
32
bit_get
(
bit_t
*
p_bit
)
static
u
int32_t
bit_get
(
bit_t
*
p_bit
)
{
{
u
32
i_bit
;
u
int32_t
i_bit
;
if
(
p_bit
->
i_buffer
<=
0
)
if
(
p_bit
->
i_buffer
<=
0
)
{
{
return
(
0
);
return
(
0
);
...
@@ -167,9 +167,9 @@ static u32 bit_get( bit_t *p_bit )
...
@@ -167,9 +167,9 @@ static u32 bit_get( bit_t *p_bit )
return
(
i_bit
);
return
(
i_bit
);
}
}
static
u
32
bit_gets
(
bit_t
*
p_bit
,
int
i_count
)
static
u
int32_t
bit_gets
(
bit_t
*
p_bit
,
int
i_count
)
{
{
u
32
i_bits
;
u
int32_t
i_bits
;
i_bits
=
0
;
i_bits
=
0
;
for
(
;
i_count
>
0
;
i_count
--
)
for
(
;
i_count
>
0
;
i_count
--
)
{
{
...
@@ -256,7 +256,7 @@ static int ReadPES( input_thread_t *p_input,
...
@@ -256,7 +256,7 @@ static int ReadPES( input_thread_t *p_input,
static
int
GetADIF
(
input_thread_t
*
p_input
,
static
int
GetADIF
(
input_thread_t
*
p_input
,
adif_header_t
*
p_adif
)
adif_header_t
*
p_adif
)
{
{
u
8
*
p_peek
;
u
int8_t
*
p_peek
;
int
i_size
;
int
i_size
;
if
(
(
i_size
=
input_Peek
(
p_input
,
&
p_peek
,
60
)
)
<
60
)
if
(
(
i_size
=
input_Peek
(
p_input
,
&
p_peek
,
60
)
)
<
60
)
...
@@ -285,7 +285,7 @@ static int GetADTS( input_thread_t *p_input,
...
@@ -285,7 +285,7 @@ static int GetADTS( input_thread_t *p_input,
int
i_max_pos
,
int
i_max_pos
,
int
*
pi_skip
)
int
*
pi_skip
)
{
{
u
8
*
p_peek
;
u
int8_t
*
p_peek
;
int
i_size
;
int
i_size
;
bit_t
bit
;
bit_t
bit
;
...
@@ -381,7 +381,7 @@ static void ExtractConfiguration( demux_sys_t *p_aac )
...
@@ -381,7 +381,7 @@ static void ExtractConfiguration( demux_sys_t *p_aac )
static
int
CheckPS
(
input_thread_t
*
p_input
)
static
int
CheckPS
(
input_thread_t
*
p_input
)
{
{
u
8
*
p_peek
;
u
int8_t
*
p_peek
;
int
i_size
=
input_Peek
(
p_input
,
&
p_peek
,
8196
);
int
i_size
=
input_Peek
(
p_input
,
&
p_peek
,
8196
);
while
(
i_size
>
4
)
while
(
i_size
>
4
)
...
@@ -649,3 +649,11 @@ static int Demux( input_thread_t * p_input )
...
@@ -649,3 +649,11 @@ static int Demux( input_thread_t * p_input )
return
(
1
);
return
(
1
);
}
}
static
void
Deactivate
(
vlc_object_t
*
p_this
)
{
input_thread_t
*
p_input
=
(
input_thread_t
*
)
p_this
;
// demux_sys_t *p_aac = p_input->p_demux_data;
FREE
(
p_input
->
p_demux_data
);
}
modules/demux/asf/asf.c
View file @
22d851e1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* asf.c : ASFv01 file input module for vlc
* asf.c : ASFv01 file input module for vlc
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* Copyright (C) 2001 VideoLAN
* $Id: asf.c,v 1.1
7 2003/01/23 15:07:20
fenrir Exp $
* $Id: asf.c,v 1.1
8 2003/01/25 16:58:34
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
...
@@ -858,7 +858,7 @@ static void Deactivate( vlc_object_t * p_this )
...
@@ -858,7 +858,7 @@ static void Deactivate( vlc_object_t * p_this )
}
}
#undef p_stream
#undef p_stream
}
}
FREE
(
p_input
->
p_demux_data
);
#undef FREE
#undef FREE
}
}
modules/demux/avi/avi.c
View file @
22d851e1
...
@@ -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
0 2003/01/25 03:12:20
fenrir Exp $
* $Id: avi.c,v 1.3
1 2003/01/25 16:58:34
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
...
@@ -52,7 +52,7 @@ static int AVIDemux_Seekable ( input_thread_t * );
...
@@ -52,7 +52,7 @@ static int AVIDemux_Seekable ( input_thread_t * );
static
int
AVIDemux_UnSeekable
(
input_thread_t
*
p_input
);
static
int
AVIDemux_UnSeekable
(
input_thread_t
*
p_input
);
#define AVIEnd(a) __AVIEnd(VLC_OBJECT(a))
#define AVIEnd(a) __AVIEnd(VLC_OBJECT(a))
#define FREE( p ) if( p ) { free( p ); (p) = NULL; }
/*****************************************************************************
/*****************************************************************************
* Module descriptor
* Module descriptor
*****************************************************************************/
*****************************************************************************/
...
@@ -793,6 +793,8 @@ static void __AVIEnd ( vlc_object_t * p_this )
...
@@ -793,6 +793,8 @@ static void __AVIEnd ( vlc_object_t * p_this )
}
}
#endif
#endif
AVI_ChunkFreeRoot
(
p_input
,
&
p_avi
->
ck_root
);
AVI_ChunkFreeRoot
(
p_input
,
&
p_avi
->
ck_root
);
FREE
(
p_input
->
p_demux_data
);
}
}
/*****************************************************************************
/*****************************************************************************
...
...
modules/demux/avi/libavi.c
View file @
22d851e1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* libavi.c :
* libavi.c :
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* Copyright (C) 2001 VideoLAN
* $Id: libavi.c,v 1.1
4 2003/01/20 13:01:53
fenrir Exp $
* $Id: libavi.c,v 1.1
5 2003/01/25 16:58:34
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
...
@@ -520,6 +520,7 @@ static int AVI_ChunkRead_strf( input_thread_t *p_input,
...
@@ -520,6 +520,7 @@ static int AVI_ChunkRead_strf( input_thread_t *p_input,
switch
(
p_strh
->
strh
.
i_type
)
switch
(
p_strh
->
strh
.
i_type
)
{
{
case
(
AVIFOURCC_auds
):
case
(
AVIFOURCC_auds
):
p_chk
->
strf
.
auds
.
i_cat
=
AUDIO_ES
;
p_chk
->
strf
.
auds
.
p_wf
=
malloc
(
p_chk
->
common
.
i_chunk_size
);
p_chk
->
strf
.
auds
.
p_wf
=
malloc
(
p_chk
->
common
.
i_chunk_size
);
AVI_READ2BYTES
(
p_chk
->
strf
.
auds
.
p_wf
->
wFormatTag
);
AVI_READ2BYTES
(
p_chk
->
strf
.
auds
.
p_wf
->
wFormatTag
);
AVI_READ2BYTES
(
p_chk
->
strf
.
auds
.
p_wf
->
nChannels
);
AVI_READ2BYTES
(
p_chk
->
strf
.
auds
.
p_wf
->
nChannels
);
...
@@ -561,6 +562,7 @@ static int AVI_ChunkRead_strf( input_thread_t *p_input,
...
@@ -561,6 +562,7 @@ static int AVI_ChunkRead_strf( input_thread_t *p_input,
break
;
break
;
case
(
AVIFOURCC_vids
):
case
(
AVIFOURCC_vids
):
p_strh
->
strh
.
i_samplesize
=
0
;
// XXX for ffmpeg avi file
p_strh
->
strh
.
i_samplesize
=
0
;
// XXX for ffmpeg avi file
p_chk
->
strf
.
vids
.
i_cat
=
VIDEO_ES
;
p_chk
->
strf
.
vids
.
p_bih
=
malloc
(
p_chk
->
common
.
i_chunk_size
);
p_chk
->
strf
.
vids
.
p_bih
=
malloc
(
p_chk
->
common
.
i_chunk_size
);
AVI_READ4BYTES
(
p_chk
->
strf
.
vids
.
p_bih
->
biSize
);
AVI_READ4BYTES
(
p_chk
->
strf
.
vids
.
p_bih
->
biSize
);
AVI_READ4BYTES
(
p_chk
->
strf
.
vids
.
p_bih
->
biWidth
);
AVI_READ4BYTES
(
p_chk
->
strf
.
vids
.
p_bih
->
biWidth
);
...
@@ -597,6 +599,7 @@ static int AVI_ChunkRead_strf( input_thread_t *p_input,
...
@@ -597,6 +599,7 @@ static int AVI_ChunkRead_strf( input_thread_t *p_input,
break
;
break
;
default:
default:
msg_Warn
(
p_input
,
"unknown stream type"
);
msg_Warn
(
p_input
,
"unknown stream type"
);
p_chk
->
strf
.
common
.
i_cat
=
UNKNOWN_ES
;
break
;
break
;
}
}
AVI_READCHUNK_EXIT
(
VLC_SUCCESS
);
AVI_READCHUNK_EXIT
(
VLC_SUCCESS
);
...
@@ -604,7 +607,18 @@ static int AVI_ChunkRead_strf( input_thread_t *p_input,
...
@@ -604,7 +607,18 @@ static int AVI_ChunkRead_strf( input_thread_t *p_input,
static
void
AVI_ChunkFree_strf
(
input_thread_t
*
p_input
,
static
void
AVI_ChunkFree_strf
(
input_thread_t
*
p_input
,
avi_chunk_t
*
p_chk
)
avi_chunk_t
*
p_chk
)
{
{
avi_chunk_strf_t
*
p_strf
=
(
avi_chunk_strf_t
*
)
p_chk
;
switch
(
p_strf
->
common
.
i_cat
)
{
case
AUDIO_ES
:
FREE
(
p_strf
->
auds
.
p_wf
);
break
;
case
VIDEO_ES
:
FREE
(
p_strf
->
vids
.
p_bih
);
break
;
default:
break
;
}
}
}
static
int
AVI_ChunkRead_strd
(
input_thread_t
*
p_input
,
static
int
AVI_ChunkRead_strd
(
input_thread_t
*
p_input
,
...
...
modules/demux/avi/libavi.h
View file @
22d851e1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* libavi.h : LibAVI library
* libavi.h : LibAVI library
******************************************************************************
******************************************************************************
* Copyright (C) 2001 VideoLAN
* Copyright (C) 2001 VideoLAN
* $Id: libavi.h,v 1.
6 2002/12/06 16:34:06 sam
Exp $
* $Id: libavi.h,v 1.
7 2003/01/25 16:58:34 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
...
@@ -237,12 +237,14 @@ typedef struct avi_chunk_strh_s
...
@@ -237,12 +237,14 @@ typedef struct avi_chunk_strh_s
typedef
struct
avi_chunk_strf_auds_s
typedef
struct
avi_chunk_strf_auds_s
{
{
AVI_CHUNK_COMMON
AVI_CHUNK_COMMON
int
i_cat
;
WAVEFORMATEX
*
p_wf
;
WAVEFORMATEX
*
p_wf
;
}
avi_chunk_strf_auds_t
;
}
avi_chunk_strf_auds_t
;
typedef
struct
avi_chunk_strf_vids_s
typedef
struct
avi_chunk_strf_vids_s
{
{
AVI_CHUNK_COMMON
AVI_CHUNK_COMMON
int
i_cat
;
BITMAPINFOHEADER
*
p_bih
;
BITMAPINFOHEADER
*
p_bih
;
}
avi_chunk_strf_vids_t
;
}
avi_chunk_strf_vids_t
;
...
@@ -250,6 +252,11 @@ typedef union avi_chunk_strf_u
...
@@ -250,6 +252,11 @@ typedef union avi_chunk_strf_u
{
{
avi_chunk_strf_auds_t
auds
;
avi_chunk_strf_auds_t
auds
;
avi_chunk_strf_vids_t
vids
;
avi_chunk_strf_vids_t
vids
;
struct
{
AVI_CHUNK_COMMON
int
i_cat
;
}
common
;
}
avi_chunk_strf_t
;
}
avi_chunk_strf_t
;
typedef
struct
avi_chunk_strd_s
typedef
struct
avi_chunk_strd_s
...
...
modules/demux/demuxdump.c
View file @
22d851e1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* demuxdump.c : Pseudo demux module for vlc (dump raw stream)
* demuxdump.c : Pseudo demux module for vlc (dump raw stream)
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* Copyright (C) 2001 VideoLAN
* $Id: demuxdump.c,v 1.
2 2002/12/18 14:17:10 sam
Exp $
* $Id: demuxdump.c,v 1.
3 2003/01/25 16:58:34 fenrir
Exp $
*
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
*
...
...
modules/demux/mp4/libmp4.c
View file @
22d851e1
...
@@ -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.1
2 2003/01/13 02:30:11
fenrir Exp $
* $Id: libmp4.c,v 1.1
3 2003/01/25 16:58:34
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
...
@@ -1183,6 +1183,10 @@ int MP4_ReadBox_esds( MP4_Stream_t *p_stream, MP4_Box_t *p_box )
...
@@ -1183,6 +1183,10 @@ int MP4_ReadBox_esds( MP4_Stream_t *p_stream, MP4_Box_t *p_box )
void
MP4_FreeBox_esds
(
input_thread_t
*
p_input
,
MP4_Box_t
*
p_box
)
void
MP4_FreeBox_esds
(
input_thread_t
*
p_input
,
MP4_Box_t
*
p_box
)
{
{
FREE
(
p_box
->
data
.
p_esds
->
es_descriptor
.
psz_URL
);
FREE
(
p_box
->
data
.
p_esds
->
es_descriptor
.
psz_URL
);
if
(
p_box
->
data
.
p_esds
->
es_descriptor
.
p_decConfigDescr
)
{
FREE
(
p_box
->
data
.
p_esds
->
es_descriptor
.
p_decConfigDescr
->
p_decoder_specific_info
);
}
FREE
(
p_box
->
data
.
p_esds
->
es_descriptor
.
p_decConfigDescr
);
FREE
(
p_box
->
data
.
p_esds
->
es_descriptor
.
p_decConfigDescr
);
}
}
...
...
modules/demux/mp4/mp4.c
View file @
22d851e1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* mp4.c : MP4 file input module for vlc
* mp4.c : MP4 file input module for vlc
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* Copyright (C) 2001 VideoLAN
* $Id: mp4.c,v 1.1
2 2003/01/08 10:46:30
fenrir Exp $
* $Id: mp4.c,v 1.1
3 2003/01/25 16:58:34
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
...
@@ -441,6 +441,7 @@ static void __MP4End ( vlc_object_t * p_this )
...
@@ -441,6 +441,7 @@ static void __MP4End ( vlc_object_t * p_this )
FREE
(
p_demux
->
track
[
i_track
].
chunk
[
i_chunk
].
p_sample_delta_dts
);
FREE
(
p_demux
->
track
[
i_track
].
chunk
[
i_chunk
].
p_sample_delta_dts
);
}
}
}
}
FREE
(
p_demux
->
track
[
i_track
].
chunk
);
if
(
!
p_demux
->
track
[
i_track
].
i_sample_size
)
if
(
!
p_demux
->
track
[
i_track
].
i_sample_size
)
{
{
...
@@ -448,6 +449,8 @@ static void __MP4End ( vlc_object_t * p_this )
...
@@ -448,6 +449,8 @@ static void __MP4End ( vlc_object_t * p_this )
}
}
}
}
FREE
(
p_demux
->
track
);
FREE
(
p_demux
->
track
);
FREE
(
p_input
->
p_demux_data
);
#undef FREE
#undef FREE
}
}
...
@@ -1057,7 +1060,8 @@ static void MP4_StartDecoder( input_thread_t *p_input,
...
@@ -1057,7 +1060,8 @@ static void MP4_StartDecoder( input_thread_t *p_input,
case
(
VIDEO_ES
):
case
(
VIDEO_ES
):
/* now create a bitmapinfoheader_t for decoder and
/* now create a bitmapinfoheader_t for decoder and
add information found in p_esds */
add information found in p_esds */
p_init
=
malloc
(
sizeof
(
BITMAPINFOHEADER
)
+
i_decoder_specific_info_len
);
/* XXX XXX + 16 are for avoid segfault when ffmpeg access beyong the data */
p_init
=
malloc
(
sizeof
(
BITMAPINFOHEADER
)
+
i_decoder_specific_info_len
+
16
);
p_bih
=
(
BITMAPINFOHEADER
*
)
p_init
;
p_bih
=
(
BITMAPINFOHEADER
*
)
p_init
;
p_bih
->
biSize
=
sizeof
(
BITMAPINFOHEADER
)
+
i_decoder_specific_info_len
;
p_bih
->
biSize
=
sizeof
(
BITMAPINFOHEADER
)
+
i_decoder_specific_info_len
;
...
@@ -1117,7 +1121,7 @@ static void MP4_StartDecoder( input_thread_t *p_input,
...
@@ -1117,7 +1121,7 @@ static void MP4_StartDecoder( input_thread_t *p_input,
break
;
break
;
case
(
AUDIO_ES
):
case
(
AUDIO_ES
):
p_init
=
malloc
(
sizeof
(
WAVEFORMATEX
)
+
i_decoder_specific_info_len
);
p_init
=
malloc
(
sizeof
(
WAVEFORMATEX
)
+
i_decoder_specific_info_len
+
16
);
p_wf
=
(
WAVEFORMATEX
*
)
p_init
;
p_wf
=
(
WAVEFORMATEX
*
)
p_init
;
p_wf
->
wFormatTag
=
0
;
p_wf
->
wFormatTag
=
0
;
...
...
modules/demux/wav/wav.c
View file @
22d851e1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* wav.c : wav file input module for vlc
* wav.c : wav file input module for vlc
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* Copyright (C) 2001 VideoLAN
* $Id: wav.c,v 1.
9 2003/01/07 21:49:01
fenrir Exp $
* $Id: wav.c,v 1.
10 2003/01/25 16:58:35
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
...
@@ -60,18 +60,18 @@ vlc_module_end();
...
@@ -60,18 +60,18 @@ vlc_module_end();
#define __EVEN( x ) ( (x)%2 != 0 ) ? ((x)+1) : (x)
#define __EVEN( x ) ( (x)%2 != 0 ) ? ((x)+1) : (x)
/* Some functions to manipulate memory */
/* Some functions to manipulate memory */
static
u
16
GetWLE
(
u8
*
p_buff
)
static
u
int16_t
GetWLE
(
uint8_t
*
p_buff
)
{
{
return
(
(
p_buff
[
0
])
+
(
p_buff
[
1
]
<<
8
)
);
return
(
(
p_buff
[
0
])
+
(
p_buff
[
1
]
<<
8
)
);
}
}
static
u
32
GetDWLE
(
u8
*
p_buff
)
static
u
int32_t
GetDWLE
(
uint8_t
*
p_buff
)
{
{
return
(
p_buff
[
0
]
+
(
p_buff
[
1
]
<<
8
)
+
return
(
p_buff
[
0
]
+
(
p_buff
[
1
]
<<
8
)
+
(
p_buff
[
2
]
<<
16
)
+
(
p_buff
[
3
]
<<
24
)
);
(
p_buff
[
2
]
<<
16
)
+
(
p_buff
[
3
]
<<
24
)
);
}
}
static
u
32
CreateDWLE
(
int
a
,
int
b
,
int
c
,
int
d
)
static
u
int32_t
CreateDWLE
(
int
a
,
int
b
,
int
c
,
int
d
)
{
{
return
(
a
+
(
b
<<
8
)
+
(
c
<<
16
)
+
(
d
<<
24
)
);
return
(
a
+
(
b
<<
8
)
+
(
c
<<
16
)
+
(
d
<<
24
)
);
}
}
...
@@ -116,7 +116,7 @@ static int SkipBytes( input_thread_t *p_input, int i_skip )
...
@@ -116,7 +116,7 @@ static int SkipBytes( input_thread_t *p_input, int i_skip )
}
}
/* return 1 if success, 0 if fail */
/* return 1 if success, 0 if fail */
static
int
ReadData
(
input_thread_t
*
p_input
,
u
8
*
p_buff
,
int
i_size
)
static
int
ReadData
(
input_thread_t
*
p_input
,
u
int8_t
*
p_buff
,
int
i_size
)
{
{
data_packet_t
*
p_data
;
data_packet_t
*
p_data
;
...
@@ -192,11 +192,11 @@ static int ReadPES( input_thread_t *p_input,
...
@@ -192,11 +192,11 @@ static int ReadPES( input_thread_t *p_input,
return
(
1
);
return
(
1
);
}
}
static
int
FindTag
(
input_thread_t
*
p_input
,
u
32
i_tag
)
static
int
FindTag
(
input_thread_t
*
p_input
,
u
int32_t
i_tag
)
{
{
u
32
i_id
;
u
int32_t
i_id
;
u
32
i_size
;
u
int32_t
i_size
;
u
8
*
p_peek
;
u
int8_t
*
p_peek
;
for
(
;;
)
for
(
;;
)
{
{
...
@@ -226,8 +226,8 @@ static int FindTag( input_thread_t *p_input, u32 i_tag )
...
@@ -226,8 +226,8 @@ static int FindTag( input_thread_t *p_input, u32 i_tag )
static
int
LoadTag_fmt
(
input_thread_t
*
p_input
,
static
int
LoadTag_fmt
(
input_thread_t
*
p_input
,
demux_sys_t
*
p_demux
)
demux_sys_t
*
p_demux
)
{
{
u
8
*
p_peek
;
u
int8_t
*
p_peek
;
u
32
i_size
;
u
int32_t
i_size
;
WAVEFORMATEX
*
p_wf
;
WAVEFORMATEX
*
p_wf
;
...
@@ -336,8 +336,8 @@ static int IMA_ADPCM_GetFrame( input_thread_t *p_input,
...
@@ -336,8 +336,8 @@ static int IMA_ADPCM_GetFrame( input_thread_t *p_input,
static
int
WAVInit
(
vlc_object_t
*
p_this
)
static
int
WAVInit
(
vlc_object_t
*
p_this
)
{
{
input_thread_t
*
p_input
=
(
input_thread_t
*
)
p_this
;
input_thread_t
*
p_input
=
(
input_thread_t
*
)
p_this
;
u
8
*
p_peek
;
u
int8_t
*
p_peek
;
u
32
i_size
;
u
int32_t
i_size
;
demux_sys_t
*
p_demux
;
demux_sys_t
*
p_demux
;
...
@@ -648,8 +648,24 @@ static void __WAVEnd ( vlc_object_t * p_this )
...
@@ -648,8 +648,24 @@ static void __WAVEnd ( vlc_object_t * p_this )
if
(
p_demux
->
p_demux
)
if
(
p_demux
->
p_demux
)
{
{
char
*
psz_sav
;
/* save context */
psz_sav
=
p_input
->
psz_demux
;
/* switch context */
p_input
->
pf_demux
=
p_demux
->
pf_demux
;
p_input
->
p_demux_data
=
p_demux
->
p_demux_data
;
p_input
->
psz_demux
=
p_demux
->
psz_demux
;
/* unload module */
module_Unneed
(
p_input
,
p_demux
->
p_demux
);
module_Unneed
(
p_input
,
p_demux
->
p_demux
);
/* switch back */
p_input
->
psz_demux
=
psz_sav
;
p_input
->
p_demux_data
=
p_demux
;
}
}
FREE
(
p_input
->
p_demux_data
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment