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
fb39f2e7
Commit
fb39f2e7
authored
Dec 12, 2001
by
Christophe Massiot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Next Generation Buffer Manager, for ES plug-in.
parent
9e19f8fc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
47 additions
and
26 deletions
+47
-26
plugins/mpeg_system/input_es.c
plugins/mpeg_system/input_es.c
+43
-17
plugins/mpeg_system/input_es.h
plugins/mpeg_system/input_es.h
+1
-3
plugins/mpeg_system/input_ts.c
plugins/mpeg_system/input_ts.c
+2
-2
plugins/mpeg_system/input_ts.h
plugins/mpeg_system/input_ts.h
+1
-4
No files found.
plugins/mpeg_system/input_es.c
View file @
fb39f2e7
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* input_es.c: Elementary Stream demux and packet management
* input_es.c: Elementary Stream demux and packet management
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* Copyright (C) 2001 VideoLAN
* $Id: input_es.c,v 1.
3 2001/12/10 15:52:31
massiot Exp $
* $Id: input_es.c,v 1.
4 2001/12/12 17:41:15
massiot Exp $
*
*
* Author: Christophe Massiot <massiot@via.ecp.fr>
* Author: Christophe Massiot <massiot@via.ecp.fr>
*
*
...
@@ -88,6 +88,19 @@ static void ESInitBitstream( struct bit_stream_s *, struct decoder_fifo_s *,
...
@@ -88,6 +88,19 @@ static void ESInitBitstream( struct bit_stream_s *, struct decoder_fifo_s *,
boolean_t
),
boolean_t
),
void
*
);
void
*
);
/*****************************************************************************
* Declare a buffer manager
*****************************************************************************/
#define FLAGS BUFFERS_UNIQUE_SIZE
#define NB_LIFO 1
DECLARE_BUFFERS_EMBEDDED
(
FLAGS
,
NB_LIFO
);
DECLARE_BUFFERS_INIT
(
FLAGS
,
NB_LIFO
);
DECLARE_BUFFERS_END
(
FLAGS
,
NB_LIFO
);
DECLARE_BUFFERS_NEWPACKET
(
FLAGS
,
NB_LIFO
);
DECLARE_BUFFERS_DELETEPACKET
(
FLAGS
,
NB_LIFO
,
150
);
DECLARE_BUFFERS_NEWPES
(
FLAGS
,
NB_LIFO
);
DECLARE_BUFFERS_DELETEPES
(
FLAGS
,
NB_LIFO
,
150
,
150
);
DECLARE_BUFFERS_TOIO
(
FLAGS
,
ES_PACKET_SIZE
);
/*****************************************************************************
/*****************************************************************************
* Functions exported as capabilities. They are declared as static so that
* Functions exported as capabilities. They are declared as static so that
...
@@ -106,10 +119,10 @@ void _M( input_getfunctions )( function_list_t * p_function_list )
...
@@ -106,10 +119,10 @@ void _M( input_getfunctions )( function_list_t * p_function_list )
input
.
pf_set_program
=
ESSetProgram
;
input
.
pf_set_program
=
ESSetProgram
;
input
.
pf_read
=
ESRead
;
input
.
pf_read
=
ESRead
;
input
.
pf_demux
=
ESDemux
;
input
.
pf_demux
=
ESDemux
;
input
.
pf_new_packet
=
input_Ne
tlistNe
wPacket
;
input
.
pf_new_packet
=
input_NewPacket
;
input
.
pf_new_pes
=
input_Ne
tlistNe
wPES
;
input
.
pf_new_pes
=
input_NewPES
;
input
.
pf_delete_packet
=
input_
Netlist
DeletePacket
;
input
.
pf_delete_packet
=
input_DeletePacket
;
input
.
pf_delete_pes
=
input_
Netlist
DeletePES
;
input
.
pf_delete_pes
=
input_DeletePES
;
input
.
pf_rewind
=
NULL
;
input
.
pf_rewind
=
NULL
;
input
.
pf_seek
=
ESSeek
;
input
.
pf_seek
=
ESSeek
;
#undef input
#undef input
...
@@ -143,11 +156,9 @@ static void ESInit( input_thread_t * p_input )
...
@@ -143,11 +156,9 @@ static void ESInit( input_thread_t * p_input )
p_input
->
p_method_data
=
NULL
;
p_input
->
p_method_data
=
NULL
;
/* Initialize netlist */
if
(
(
p_input
->
p_method_data
=
input_BuffersInit
())
==
NULL
)
if
(
input_NetlistInit
(
p_input
,
NB_DATA
,
NB_DATA
,
NB_PES
,
ES_PACKET_SIZE
,
INPUT_READ_ONCE
)
)
{
{
intf_ErrMsg
(
"ES input : Could not initialize netlist"
)
;
p_input
->
b_error
=
1
;
return
;
return
;
}
}
...
@@ -170,6 +181,7 @@ static void ESInit( input_thread_t * p_input )
...
@@ -170,6 +181,7 @@ static void ESInit( input_thread_t * p_input )
*****************************************************************************/
*****************************************************************************/
static
void
ESEnd
(
input_thread_t
*
p_input
)
static
void
ESEnd
(
input_thread_t
*
p_input
)
{
{
input_BuffersEnd
(
p_input
->
p_method_data
);
}
}
/*****************************************************************************
/*****************************************************************************
...
@@ -181,13 +193,15 @@ static void ESEnd( input_thread_t * p_input )
...
@@ -181,13 +193,15 @@ static void ESEnd( input_thread_t * p_input )
static
int
ESRead
(
input_thread_t
*
p_input
,
static
int
ESRead
(
input_thread_t
*
p_input
,
data_packet_t
*
pp_packets
[
INPUT_READ_ONCE
]
)
data_packet_t
*
pp_packets
[
INPUT_READ_ONCE
]
)
{
{
int
i_read
;
int
i_read
,
i_loop
;
struct
iovec
*
p_iovec
;
struct
iovec
p_iovec
[
INPUT_READ_ONCE
];
data_packet_t
*
p_data
;
/* Get iovecs */
/* Get iovecs */
p_iovec
=
input_NetlistGetiovec
(
p_input
->
p_method_data
);
p_data
=
input_BuffersToIO
(
p_input
->
p_method_data
,
p_iovec
,
INPUT_READ_ONCE
);
if
(
p_
iovec
==
NULL
)
if
(
p_
data
==
NULL
)
{
{
return
(
-
1
);
/* empty netlist */
return
(
-
1
);
/* empty netlist */
}
}
...
@@ -201,15 +215,26 @@ static int ESRead( input_thread_t * p_input,
...
@@ -201,15 +215,26 @@ static int ESRead( input_thread_t * p_input,
return
(
-
1
);
return
(
-
1
);
}
}
for
(
i_loop
=
0
;
i_loop
*
ES_PACKET_SIZE
<
i_read
;
i_loop
++
)
{
pp_packets
[
i_loop
]
=
p_data
;
p_data
=
p_data
->
p_next
;
pp_packets
[
i_loop
]
->
p_next
=
NULL
;
}
for
(
;
i_loop
<
INPUT_READ_ONCE
;
i_loop
++
)
{
data_packet_t
*
p_next
=
p_data
->
p_next
;
input_DeletePacket
(
p_input
->
p_method_data
,
p_data
);
p_data
=
p_next
;
pp_packets
[
i_loop
]
=
NULL
;
}
/* EOF */
/* EOF */
if
(
i_read
==
0
&&
p_input
->
stream
.
b_seekable
)
if
(
i_read
==
0
&&
p_input
->
stream
.
b_seekable
)
{
{
return
(
1
);
return
(
1
);
}
}
input_NetlistMviovec
(
p_input
->
p_method_data
,
(
int
)(
i_read
/
ES_PACKET_SIZE
),
pp_packets
);
p_input
->
stream
.
p_selected_area
->
i_tell
+=
i_read
;
p_input
->
stream
.
p_selected_area
->
i_tell
+=
i_read
;
return
(
0
);
return
(
0
);
...
@@ -251,7 +276,8 @@ static void ESDemux( input_thread_t * p_input, data_packet_t * p_data )
...
@@ -251,7 +276,8 @@ static void ESDemux( input_thread_t * p_input, data_packet_t * p_data )
}
}
p_pes
->
i_rate
=
p_input
->
stream
.
control
.
i_rate
;
p_pes
->
i_rate
=
p_input
->
stream
.
control
.
i_rate
;
p_pes
->
p_first
=
p_data
;
p_pes
->
p_first
=
p_pes
->
p_last
=
p_data
;
p_pes
->
i_nb_data
=
1
;
if
(
(
p_input
->
stream
.
pp_programs
[
0
]
->
i_synchro_state
==
SYNCHRO_REINIT
)
if
(
(
p_input
->
stream
.
pp_programs
[
0
]
->
i_synchro_state
==
SYNCHRO_REINIT
)
|
(
input_ClockManageControl
(
p_input
,
p_input
->
stream
.
pp_programs
[
0
],
|
(
input_ClockManageControl
(
p_input
,
p_input
->
stream
.
pp_programs
[
0
],
...
...
plugins/mpeg_system/input_es.h
View file @
fb39f2e7
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* input_es.h: thread structure of the ES plugin
* input_es.h: thread structure of the ES plugin
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* Copyright (C) 2001 VideoLAN
* $Id: input_es.h,v 1.
1 2001/12/09 17:01:36 sam
Exp $
* $Id: input_es.h,v 1.
2 2001/12/12 17:41:15 massiot
Exp $
*
*
* Authors:
* Authors:
*
*
...
@@ -21,7 +21,5 @@
...
@@ -21,7 +21,5 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
*****************************************************************************/
#define NB_DATA 8192
#define NB_PES 4096
#define ES_PACKET_SIZE 2048
#define ES_PACKET_SIZE 2048
#define MAX_PACKETS_IN_FIFO 14
#define MAX_PACKETS_IN_FIFO 14
plugins/mpeg_system/input_ts.c
View file @
fb39f2e7
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* input_ts.c: TS demux and netlist management
* input_ts.c: TS demux and netlist management
*****************************************************************************
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* Copyright (C) 1998-2001 VideoLAN
* $Id: input_ts.c,v 1.
3 2001/12/12 13:48:09
massiot Exp $
* $Id: input_ts.c,v 1.
4 2001/12/12 17:41:15
massiot Exp $
*
*
* Authors: Henri Fallon <henri@videolan.org>
* Authors: Henri Fallon <henri@videolan.org>
*
*
...
@@ -293,7 +293,7 @@ static int TSRead( input_thread_t * p_input,
...
@@ -293,7 +293,7 @@ static int TSRead( input_thread_t * p_input,
p_data
=
input_BuffersToIO
(
p_input
->
p_method_data
,
p_iovec
,
p_data
=
input_BuffersToIO
(
p_input
->
p_method_data
,
p_iovec
,
INPUT_READ_ONCE
);
INPUT_READ_ONCE
);
if
(
p_
iovec
==
NULL
)
if
(
p_
data
==
NULL
)
{
{
return
(
-
1
);
return
(
-
1
);
}
}
...
...
plugins/mpeg_system/input_ts.h
View file @
fb39f2e7
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* input_ts.h: structures of the input not exported to other modules
* input_ts.h: structures of the input not exported to other modules
*****************************************************************************
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_ts.h,v 1.
2 2001/12/12 15:25:29 sam
Exp $
* $Id: input_ts.h,v 1.
3 2001/12/12 17:41:15 massiot
Exp $
*
*
* Authors: Henri Fallon <henri@via.ecp.fr>
* Authors: Henri Fallon <henri@via.ecp.fr>
* Boris Dors <babal@via.ecp.fr>
* Boris Dors <babal@via.ecp.fr>
...
@@ -22,9 +22,6 @@
...
@@ -22,9 +22,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
*****************************************************************************/
#define NB_DATA 16384
#define NB_PES 8192
#define BUFFER_SIZE (7 * TS_PACKET_SIZE)
#define BUFFER_SIZE (7 * TS_PACKET_SIZE)
/*****************************************************************************
/*****************************************************************************
...
...
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