Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
26df56c2
Commit
26df56c2
authored
Nov 24, 2003
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* all: do not export input_NullPacket
* input_dec.c: fixed a (big) memory leak.
parent
58cd81bf
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
68 deletions
+28
-68
include/input_ext-plugins.h
include/input_ext-plugins.h
+1
-5
modules/demux/mpeg/system.c
modules/demux/mpeg/system.c
+3
-6
src/input/input_dec.c
src/input/input_dec.c
+16
-36
src/input/input_ext-plugins.c
src/input/input_ext-plugins.c
+8
-21
No files found.
include/input_ext-plugins.h
View file @
26df56c2
...
...
@@ -3,7 +3,7 @@
* but exported to plug-ins
*****************************************************************************
* Copyright (C) 1999-2002 VideoLAN
* $Id: input_ext-plugins.h,v 1.4
3 2003/11/24 00:39:00
fenrir Exp $
* $Id: input_ext-plugins.h,v 1.4
4 2003/11/24 03:30:38
fenrir Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
...
...
@@ -63,7 +63,6 @@ void input_DecodeBlock( decoder_t *, block_t * );
void
input_EscapeDiscontinuity
(
input_thread_t
*
);
void
input_EscapeAudioDiscontinuity
(
input_thread_t
*
);
VLC_EXPORT
(
void
,
input_NullPacket
,
(
input_thread_t
*
,
es_descriptor_t
*
)
);
/*****************************************************************************
* Prototypes from input_clock.c
...
...
@@ -99,9 +98,6 @@ VLC_EXPORT( int, input_AccessInit, ( input_thread_t * ) );
VLC_EXPORT
(
void
,
input_AccessReinit
,
(
input_thread_t
*
)
);
VLC_EXPORT
(
void
,
input_AccessEnd
,
(
input_thread_t
*
)
);
/* no need to export this one */
data_packet_t
*
input_NewPacketForce
(
input_buffers_t
*
,
size_t
);
/*
* Optional standard file descriptor operations (input_ext-plugins.h)
*/
...
...
modules/demux/mpeg/system.c
View file @
26df56c2
...
...
@@ -2,7 +2,7 @@
* system.c: helper module for TS, PS and PES management
*****************************************************************************
* Copyright (C) 1998-2002 VideoLAN
* $Id: system.c,v 1.2
0 2003/11/24 00:39:01
fenrir Exp $
* $Id: system.c,v 1.2
1 2003/11/24 03:30:38
fenrir Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Michel Lespinasse <walken@via.ecp.fr>
...
...
@@ -464,12 +464,9 @@ static void GatherPES( input_thread_t * p_input, data_packet_t * p_data,
{
#define p_pes (p_es->p_pes)
/* If we lost data, insert a NULL data packet (philosophy : 0 is quite
* often an escape sequence in decoders, so that should make them wait
* for the next start code). */
if
(
b_packet_lost
&&
!
((
es_ts_data_t
*
)
p_es
->
p_demux_data
)
->
b_dvbsub
)
if
(
b_packet_lost
&&
p_pes
!=
NULL
)
{
input_NullPacket
(
p_input
,
p_es
)
;
p_pes
->
b_discontinuity
=
1
;
}
if
(
b_unit_start
&&
p_pes
!=
NULL
)
...
...
src/input/input_dec.c
View file @
26df56c2
...
...
@@ -2,7 +2,7 @@
* input_dec.c: Functions for the management of decoders
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* $Id: input_dec.c,v 1.7
7 2003/11/24 02:35:50
fenrir Exp $
* $Id: input_dec.c,v 1.7
8 2003/11/24 03:30:38
fenrir Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Gildas Bazin <gbazin@netcourrier.com>
...
...
@@ -39,6 +39,8 @@
#include "codecs.h"
static
void
input_NullPacket
(
input_thread_t
*
,
es_descriptor_t
*
);
static
decoder_t
*
CreateDecoder
(
input_thread_t
*
,
es_descriptor_t
*
,
int
);
static
int
DecoderThread
(
decoder_t
*
);
static
void
DeleteDecoder
(
decoder_t
*
);
...
...
@@ -68,6 +70,9 @@ struct decoder_owner_sys_t
/* fifo */
block_fifo_t
*
p_fifo
;
/* */
input_buffers_t
*
p_method_data
;
};
...
...
@@ -247,6 +252,8 @@ void input_DecodePES( decoder_t * p_dec, pes_packet_t * p_pes )
block_FifoPut
(
p_dec
->
p_owner
->
p_fifo
,
p_block
);
}
}
input_DeletePES
(
p_dec
->
p_owner
->
p_method_data
,
p_pes
);
}
/*****************************************************************************
* input_DecodeBlock
...
...
@@ -261,45 +268,17 @@ void input_DecodeBlock( decoder_t * p_dec, block_t *p_block )
/*****************************************************************************
* Create a NULL packet for padding in case of a data loss
*****************************************************************************/
void
input_NullPacket
(
input_thread_t
*
p_input
,
es_descriptor_t
*
p_es
)
static
void
input_NullPacket
(
input_thread_t
*
p_input
,
es_descriptor_t
*
p_es
)
{
data_packet_t
*
p_pad_data
;
pes_packet_t
*
p_pes
;
if
(
(
p_pad_data
=
input_NewPacketForce
(
p_input
->
p_method_data
,
PADDING_PACKET_SIZE
))
==
NULL
)
{
msg_Err
(
p_input
,
"no new packet"
);
p_input
->
b_error
=
1
;
return
;
}
block_t
*
p_block
=
block_New
(
p_input
,
PADDING_PACKET_SIZE
);
memset
(
p_pad_data
->
p_payload_start
,
0
,
PADDING_PACKET_SIZE
);
p_pad_data
->
b_discard_payload
=
1
;
p_pes
=
p_es
->
p_pes
;
if
(
p_pes
!=
NULL
)
{
p_pes
->
b_discontinuity
=
1
;
p_pes
->
p_last
->
p_next
=
p_pad_data
;
p_pes
->
p_last
=
p_pad_data
;
p_pes
->
i_nb_data
++
;
}
else
if
(
p_block
)
{
if
(
(
p_pes
=
input_NewPES
(
p_input
->
p_method_data
))
==
NULL
)
{
msg_Err
(
p_input
,
"no PES packet"
);
p_input
->
b_error
=
1
;
return
;
}
memset
(
p_block
->
p_buffer
,
0
,
PADDING_PACKET_SIZE
);
p_block
->
b_discontinuity
=
1
;
p_pes
->
i_rate
=
p_input
->
stream
.
control
.
i_rate
;
p_pes
->
p_first
=
p_pes
->
p_last
=
p_pad_data
;
p_pes
->
i_nb_data
=
1
;
p_pes
->
b_discontinuity
=
1
;
input_DecodePES
(
p_es
->
p_dec
,
p_pes
);
block_FifoPut
(
p_es
->
p_dec
->
p_owner
->
p_fifo
,
p_block
);
}
}
...
...
@@ -450,6 +429,7 @@ static decoder_t * CreateDecoder( input_thread_t * p_input,
msg_Err
(
p_dec
,
"out of memory"
);
return
NULL
;
}
p_dec
->
p_owner
->
p_method_data
=
p_input
->
p_method_data
;
/* Set buffers allocation callbacks for the decoders */
p_dec
->
pf_aout_buffer_new
=
aout_new_buffer
;
...
...
src/input/input_ext-plugins.c
View file @
26df56c2
...
...
@@ -2,7 +2,7 @@
* input_ext-plugins.c: useful functions for access and demux plug-ins
*****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN
* $Id: input_ext-plugins.c,v 1.3
7 2003/08/13 13:54:02 jpsaman
Exp $
* $Id: input_ext-plugins.c,v 1.3
8 2003/11/24 03:30:38 fenrir
Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
...
...
@@ -158,13 +158,12 @@ void input_BuffersEnd( input_thread_t * p_input, input_buffers_t * p_buffers )
* input_NewBuffer: return a pointer to a data buffer of the appropriate size
*****************************************************************************/
static
inline
data_buffer_t
*
NewBuffer
(
input_buffers_t
*
p_buffers
,
size_t
i_size
,
vlc_bool_t
b_forced
)
size_t
i_size
)
{
data_buffer_t
*
p_buf
;
/* Safety check */
if
(
!
b_forced
&&
p_buffers
->
i_allocated
>
INPUT_MAX_ALLOCATION
)
if
(
p_buffers
->
i_allocated
>
INPUT_MAX_ALLOCATION
)
{
return
NULL
;
}
...
...
@@ -214,7 +213,7 @@ data_buffer_t * input_NewBuffer( input_buffers_t * p_buffers, size_t i_size )
data_buffer_t
*
p_buf
;
vlc_mutex_lock
(
&
p_buffers
->
lock
);
p_buf
=
NewBuffer
(
p_buffers
,
i_size
,
VLC_FALSE
);
p_buf
=
NewBuffer
(
p_buffers
,
i_size
);
vlc_mutex_unlock
(
&
p_buffers
->
lock
);
return
p_buf
;
...
...
@@ -305,13 +304,12 @@ data_packet_t * input_ShareBuffer( input_buffers_t * p_buffers,
* input_NewPacket: allocate a packet along with a buffer
*****************************************************************************/
static
inline
data_packet_t
*
NewPacket
(
input_buffers_t
*
p_buffers
,
size_t
i_size
,
vlc_bool_t
b_forced
)
size_t
i_size
)
{
data_buffer_t
*
p_buf
;
data_packet_t
*
p_data
;
p_buf
=
NewBuffer
(
p_buffers
,
i_size
,
b_forced
);
p_buf
=
NewBuffer
(
p_buffers
,
i_size
);
if
(
p_buf
==
NULL
)
{
...
...
@@ -331,18 +329,7 @@ data_packet_t * input_NewPacket( input_buffers_t * p_buffers, size_t i_size )
data_packet_t
*
p_data
;
vlc_mutex_lock
(
&
p_buffers
->
lock
);
p_data
=
NewPacket
(
p_buffers
,
i_size
,
VLC_FALSE
);
vlc_mutex_unlock
(
&
p_buffers
->
lock
);
return
p_data
;
}
data_packet_t
*
input_NewPacketForce
(
input_buffers_t
*
p_buffers
,
size_t
i_size
)
{
data_packet_t
*
p_data
;
vlc_mutex_lock
(
&
p_buffers
->
lock
);
p_data
=
NewPacket
(
p_buffers
,
i_size
,
VLC_TRUE
);
p_data
=
NewPacket
(
p_buffers
,
i_size
);
vlc_mutex_unlock
(
&
p_buffers
->
lock
);
return
p_data
;
...
...
@@ -491,7 +478,7 @@ ssize_t input_FillBuffer( input_thread_t * p_input )
while
(
p_buf
==
NULL
)
{
p_buf
=
NewBuffer
(
p_input
->
p_method_data
,
i_remains
+
p_input
->
i_bufsize
,
VLC_FALSE
);
i_remains
+
p_input
->
i_bufsize
);
if
(
p_buf
==
NULL
)
{
vlc_mutex_unlock
(
&
p_input
->
p_method_data
->
lock
);
...
...
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