Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
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-2-2
Commits
8fe4cd20
Commit
8fe4cd20
authored
Jan 23, 2010
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed a few memleaks in AVI demuxer.
parent
e331532c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
9 deletions
+11
-9
modules/demux/avi/avi.c
modules/demux/avi/avi.c
+8
-6
modules/demux/avi/libavi.c
modules/demux/avi/libavi.c
+0
-3
modules/demux/avi/libavi.h
modules/demux/avi/libavi.h
+3
-0
No files found.
modules/demux/avi/avi.c
View file @
8fe4cd20
...
...
@@ -135,9 +135,6 @@ typedef struct
unsigned
int
i_idxposc
;
/* numero of chunk */
unsigned
int
i_idxposb
;
/* byte in the current chunk */
/* extra information given to the decoder */
void
*
p_extra
;
/* For VBR audio only */
unsigned
int
i_blockno
;
unsigned
int
i_blocksize
;
...
...
@@ -437,7 +434,7 @@ static int Open( vlc_object_t * p_this )
fmt
.
i_extra
=
__MIN
(
p_auds
->
p_wf
->
cbSize
,
p_auds
->
i_chunk_size
-
sizeof
(
WAVEFORMATEX
)
);
fmt
.
p_extra
=
tk
->
p_extra
=
malloc
(
fmt
.
i_extra
);
fmt
.
p_extra
=
malloc
(
fmt
.
i_extra
);
if
(
!
fmt
.
p_extra
)
goto
error
;
memcpy
(
fmt
.
p_extra
,
&
p_auds
->
p_wf
[
1
],
fmt
.
i_extra
);
...
...
@@ -493,7 +490,7 @@ static int Open( vlc_object_t * p_this )
uint8_t
*
p_out
=
malloc
(
i_headers_size
);
if
(
!
p_out
)
goto
error
;
free
(
fmt
.
p_extra
);
fmt
.
p_extra
=
tk
->
p_extra
=
p_out
;
fmt
.
p_extra
=
p_out
;
fmt
.
i_extra
=
i_headers_size
;
#define copy_packet( len ) \
*p_out++ = len >> 8; \
...
...
@@ -653,6 +650,7 @@ static int Open( vlc_object_t * p_this )
if
(
tk
->
p_out_muxed
==
NULL
)
tk
->
p_es
=
es_out_Add
(
p_demux
->
out
,
&
fmt
);
TAB_APPEND
(
p_sys
->
i_track
,
p_sys
->
track
,
tk
);
es_format_Clean
(
&
fmt
);
}
if
(
p_sys
->
i_track
<=
0
)
...
...
@@ -808,7 +806,6 @@ static void Close ( vlc_object_t * p_this )
if
(
p_sys
->
track
[
i
]
->
p_out_muxed
)
stream_Delete
(
p_sys
->
track
[
i
]
->
p_out_muxed
);
free
(
p_sys
->
track
[
i
]
->
p_index
);
free
(
p_sys
->
track
[
i
]
->
p_extra
);
free
(
p_sys
->
track
[
i
]
);
}
}
...
...
@@ -2321,6 +2318,7 @@ static void AVI_IndexLoad_indx( demux_t *p_demux )
break
;
}
__Parse_indx
(
p_demux
,
i_stream
,
&
ck_sub
.
indx
);
AVI_ChunkFree
(
p_demux
->
s
,
&
ck_sub
);
}
}
else
...
...
@@ -2570,6 +2568,7 @@ static void AVI_ExtractSubtitle( demux_t *p_demux,
p
,
i_payload
);
if
(
p_attachment
)
TAB_APPEND
(
p_sys
->
i_attachment
,
p_sys
->
attachment
,
p_attachment
);
free
(
psz_name
);
free
(
psz_description
);
exit:
...
...
@@ -2580,6 +2579,9 @@ exit:
msg_Dbg
(
p_demux
,
"Loaded an embed subtitle"
);
else
msg_Warn
(
p_demux
,
"Failed to load an embed subtitle"
);
if
(
p_indx
==
&
ck
.
indx
)
AVI_ChunkFree
(
p_demux
->
s
,
&
ck
);
}
/*****************************************************************************
* Stream management
...
...
modules/demux/avi/libavi.c
View file @
8fe4cd20
...
...
@@ -40,9 +40,6 @@ static vlc_fourcc_t GetFOURCC( const uint8_t *p_buff )
return
VLC_FOURCC
(
p_buff
[
0
],
p_buff
[
1
],
p_buff
[
2
],
p_buff
[
3
]
);
}
#define AVI_ChunkFree( a, b ) _AVI_ChunkFree( (a), (avi_chunk_t*)(b) )
void
_AVI_ChunkFree
(
stream_t
*
,
avi_chunk_t
*
p_chk
);
/****************************************************************************
*
* Basics functions to manipulates chunks
...
...
modules/demux/avi/libavi.h
View file @
8fe4cd20
...
...
@@ -216,6 +216,7 @@ typedef union avi_chunk_u
int
_AVI_ChunkRead
(
stream_t
*
,
avi_chunk_t
*
p_chk
,
avi_chunk_t
*
p_father
);
void
_AVI_ChunkFree
(
stream_t
*
,
avi_chunk_t
*
);
int
_AVI_ChunkCount
(
avi_chunk_t
*
,
vlc_fourcc_t
);
void
*
_AVI_ChunkFind
(
avi_chunk_t
*
,
vlc_fourcc_t
,
int
);
...
...
@@ -229,6 +230,8 @@ void AVI_ChunkFreeRoot( stream_t *, avi_chunk_t *p_chk );
_AVI_ChunkCount( (avi_chunk_t*)p_chk, i_fourcc )
#define AVI_ChunkFind( p_chk, i_fourcc, i_number ) \
_AVI_ChunkFind( (avi_chunk_t*)p_chk, i_fourcc, i_number )
#define AVI_ChunkFree( a, b ) \
_AVI_ChunkFree( (a), (avi_chunk_t*)(b) )
/* *** avi stuff *** */
...
...
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