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
2fbc01b9
Commit
2fbc01b9
authored
Jun 27, 2001
by
Christophe Massiot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Elementary Stream input plugin (use it with --input es). Only works with
video streams at the moment.
parent
f406134a
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
276 additions
and
168 deletions
+276
-168
include/input.h
include/input.h
+3
-1
include/input_ext-intf.h
include/input_ext-intf.h
+7
-1
include/modules.h
include/modules.h
+8
-1
plugins/dvd/input_dvd.c
plugins/dvd/input_dvd.c
+2
-1
plugins/mpeg/input_es.c
plugins/mpeg/input_es.c
+167
-91
plugins/mpeg/input_es.h
plugins/mpeg/input_es.h
+5
-10
plugins/mpeg/input_ps.c
plugins/mpeg/input_ps.c
+2
-1
plugins/mpeg/input_ts.c
plugins/mpeg/input_ts.c
+4
-2
src/input/input.c
src/input/input.c
+2
-1
src/input/input_clock.c
src/input/input_clock.c
+74
-57
src/input/input_programs.c
src/input/input_programs.c
+2
-2
No files found.
include/input.h
View file @
2fbc01b9
...
...
@@ -2,7 +2,7 @@
* input.h: structures of the input not exported to other modules
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input.h,v 1.3
7 2001/05/30 17:03:11 sam
Exp $
* $Id: input.h,v 1.3
8 2001/06/27 09:53:56 massiot
Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
...
...
@@ -80,6 +80,8 @@ void input_EscapeAudioDiscontinuity( struct input_thread_s *,
* Prototypes from input_clock.c
*****************************************************************************/
void
input_ClockInit
(
struct
pgrm_descriptor_s
*
);
int
input_ClockManageControl
(
struct
input_thread_s
*
,
struct
pgrm_descriptor_s
*
,
mtime_t
);
void
input_ClockManageRef
(
struct
input_thread_s
*
,
struct
pgrm_descriptor_s
*
,
mtime_t
);
mtime_t
input_ClockGetTS
(
struct
input_thread_s
*
,
...
...
include/input_ext-intf.h
View file @
2fbc01b9
...
...
@@ -4,7 +4,7 @@
* control the pace of reading.
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_ext-intf.h,v 1.
39 2001/06/09 17:01:21 stef
Exp $
* $Id: input_ext-intf.h,v 1.
40 2001/06/27 09:53:56 massiot
Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
...
...
@@ -255,6 +255,7 @@ typedef struct i_p_config_s
* This structure includes all the local static variables of an input thread
*****************************************************************************/
struct
vout_thread_s
;
struct
bit_stream_s
;
typedef
struct
input_thread_s
{
...
...
@@ -273,6 +274,11 @@ typedef struct input_thread_s
void
(
*
pf_open
)(
struct
input_thread_s
*
);
void
(
*
pf_close
)(
struct
input_thread_s
*
);
void
(
*
pf_end
)(
struct
input_thread_s
*
);
void
(
*
pf_init_bit_stream
)(
struct
bit_stream_s
*
,
struct
decoder_fifo_s
*
,
void
(
*
pf_bitstream_callback
)(
struct
bit_stream_s
*
,
boolean_t
),
void
*
);
/* Read & Demultiplex */
int
(
*
pf_read
)(
struct
input_thread_s
*
,
...
...
include/modules.h
View file @
2fbc01b9
...
...
@@ -2,7 +2,7 @@
* modules.h : Module management functions.
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: modules.h,v 1.2
5 2001/05/30 17:03:11 sam
Exp $
* $Id: modules.h,v 1.2
6 2001/06/27 09:53:56 massiot
Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
...
...
@@ -78,6 +78,8 @@ struct input_area_s;
struct
imdct_s
;
struct
complex_s
;
struct
dm_par_s
;
struct
bit_stream_s
;
struct
decoder_fifo_s
;
/* FIXME: not yet used */
typedef
struct
probedata_s
...
...
@@ -110,6 +112,11 @@ typedef struct function_list_s
void
(
*
pf_open
)
(
struct
input_thread_s
*
);
void
(
*
pf_close
)(
struct
input_thread_s
*
);
void
(
*
pf_end
)
(
struct
input_thread_s
*
);
void
(
*
pf_init_bit_stream
)
(
struct
bit_stream_s
*
,
struct
decoder_fifo_s
*
,
void
(
*
pf_bitstream_callback
)(
struct
bit_stream_s
*
,
boolean_t
),
void
*
);
int
(
*
pf_read
)
(
struct
input_thread_s
*
,
struct
data_packet_s
*
...
...
plugins/dvd/input_dvd.c
View file @
2fbc01b9
...
...
@@ -10,7 +10,7 @@
* -dvd_udf to find files
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* $Id: input_dvd.c,v 1.7
6 2001/06/15 05:12:30 sam
Exp $
* $Id: input_dvd.c,v 1.7
7 2001/06/27 09:53:56 massiot
Exp $
*
* Author: Stphane Borel <stef@via.ecp.fr>
*
...
...
@@ -133,6 +133,7 @@ void _M( input_getfunctions )( function_list_t * p_function_list )
input
.
pf_open
=
DVDOpen
;
input
.
pf_close
=
DVDClose
;
input
.
pf_end
=
DVDEnd
;
input
.
pf_init_bit_stream
=
InitBitstream
;
input
.
pf_read
=
DVDRead
;
input
.
pf_set_area
=
DVDSetArea
;
input
.
pf_demux
=
input_DemuxPS
;
...
...
plugins/mpeg/input_es.c
View file @
2fbc01b9
This diff is collapsed.
Click to expand it.
plugins/mpeg/input_es.h
View file @
2fbc01b9
...
...
@@ -2,7 +2,7 @@
* input_es.h: thread structure of the ES plugin
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: input_es.h,v 1.
1 2001/04/20 15:02:48 sam
Exp $
* $Id: input_es.h,v 1.
2 2001/06/27 09:53:56 massiot
Exp $
*
* Authors:
*
...
...
@@ -21,12 +21,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* thread_es_data_t: extension of input_thread_t
*****************************************************************************/
typedef
struct
thread_es_data_s
{
/* We're necessarily reading a file. */
FILE
*
stream
;
}
thread_es_data_t
;
#define NB_DATA 8192
#define NB_PES 4096
#define ES_PACKET_SIZE 2048
#define MAX_PACKETS_IN_FIFO 14
plugins/mpeg/input_ps.c
View file @
2fbc01b9
...
...
@@ -2,7 +2,7 @@
* input_ps.c: PS demux and packet management
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input_ps.c,v 1.2
8 2001/06/03 12:47:21 sam
Exp $
* $Id: input_ps.c,v 1.2
9 2001/06/27 09:53:56 massiot
Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Cyril Deguet <asmax@via.ecp.fr>
...
...
@@ -99,6 +99,7 @@ void _M( input_getfunctions )( function_list_t * p_function_list )
input
.
pf_open
=
NULL
;
/* Set in PSInit */
input
.
pf_close
=
NULL
;
input
.
pf_end
=
PSEnd
;
input
.
pf_init_bit_stream
=
InitBitstream
;
input
.
pf_set_area
=
NULL
;
input
.
pf_read
=
PSRead
;
input
.
pf_demux
=
input_DemuxPS
;
...
...
plugins/mpeg/input_ts.c
View file @
2fbc01b9
...
...
@@ -2,7 +2,7 @@
* input_ts.c: TS demux and netlist management
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input_ts.c,v 1.2
7 2001/06/21 07:22:03 sam
Exp $
* $Id: input_ts.c,v 1.2
8 2001/06/27 09:53:57 massiot
Exp $
*
* Authors: Henri Fallon <henri@videolan.org>
*
...
...
@@ -106,6 +106,7 @@ void _M( input_getfunctions )( function_list_t * p_function_list )
input
.
pf_open
=
TSFakeOpen
;
input
.
pf_close
=
NULL
;
/* Will be set by pf_open */
input
.
pf_end
=
TSEnd
;
input
.
pf_init_bit_stream
=
InitBitstream
;
input
.
pf_set_area
=
NULL
;
input
.
pf_read
=
TSRead
;
input
.
pf_demux
=
input_DemuxTS
;
...
...
@@ -273,7 +274,8 @@ static int TSRead( input_thread_t * p_input,
data_packet_t
*
pp_packets
[
INPUT_READ_ONCE
]
)
{
thread_ts_data_t
*
p_method
;
unsigned
int
i_read
,
i_loop
;
unsigned
int
i_loop
;
int
i_read
;
int
i_data
=
0
;
struct
iovec
*
p_iovec
;
struct
timeval
timeout
;
...
...
src/input/input.c
View file @
2fbc01b9
...
...
@@ -4,7 +4,7 @@
* decoders.
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input.c,v 1.12
4 2001/06/21 07:22:03 sam
Exp $
* $Id: input.c,v 1.12
5 2001/06/27 09:53:57 massiot
Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
...
...
@@ -407,6 +407,7 @@ static int InitThread( input_thread_t * p_input )
p_input
->
pf_close
=
f
.
pf_close
;
}
p_input
->
pf_end
=
f
.
pf_end
;
p_input
->
pf_init_bit_stream
=
f
.
pf_init_bit_stream
;
p_input
->
pf_read
=
f
.
pf_read
;
p_input
->
pf_set_area
=
f
.
pf_set_area
;
p_input
->
pf_demux
=
f
.
pf_demux
;
...
...
src/input/input_clock.c
View file @
2fbc01b9
...
...
@@ -2,7 +2,7 @@
* input_clock.c: Clock/System date convertions, stream management
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_clock.c,v 1.1
7 2001/06/09 17:01:22 stef
Exp $
* $Id: input_clock.c,v 1.1
8 2001/06/27 09:53:57 massiot
Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
...
...
@@ -140,6 +140,78 @@ void input_ClockInit( pgrm_descriptor_t * p_pgrm )
p_pgrm
->
c_average_count
=
0
;
}
/*****************************************************************************
* input_ClockManageControl: handles the messages from the interface
*****************************************************************************
* Returns UNDEF_S if nothing happened, PAUSE_S if the stream was paused
*****************************************************************************/
int
input_ClockManageControl
(
input_thread_t
*
p_input
,
pgrm_descriptor_t
*
p_pgrm
,
mtime_t
i_clock
)
{
int
i_return_value
=
UNDEF_S
;
vlc_mutex_lock
(
&
p_input
->
stream
.
stream_lock
);
if
(
p_input
->
stream
.
i_new_status
==
PAUSE_S
)
{
int
i_old_status
;
vlc_mutex_lock
(
&
p_input
->
stream
.
control
.
control_lock
);
i_old_status
=
p_input
->
stream
.
control
.
i_status
;
p_input
->
stream
.
control
.
i_status
=
PAUSE_S
;
vlc_cond_wait
(
&
p_input
->
stream
.
stream_wait
,
&
p_input
->
stream
.
stream_lock
);
ClockNewRef
(
p_input
,
p_pgrm
,
i_clock
,
mdate
()
);
if
(
p_input
->
stream
.
i_new_status
==
PAUSE_S
)
{
/* PAUSE_S undoes the pause state: Return to old state. */
p_input
->
stream
.
control
.
i_status
=
i_old_status
;
p_input
->
stream
.
i_new_status
=
UNDEF_S
;
p_input
->
stream
.
i_new_rate
=
UNDEF_S
;
}
/* We handle i_new_status != PAUSE_S below... */
vlc_mutex_unlock
(
&
p_input
->
stream
.
control
.
control_lock
);
i_return_value
=
PAUSE_S
;
}
if
(
p_input
->
stream
.
i_new_status
!=
UNDEF_S
)
{
vlc_mutex_lock
(
&
p_input
->
stream
.
control
.
control_lock
);
p_input
->
stream
.
control
.
i_status
=
p_input
->
stream
.
i_new_status
;
ClockNewRef
(
p_input
,
p_pgrm
,
i_clock
,
ClockToSysdate
(
p_input
,
p_pgrm
,
i_clock
)
);
if
(
p_input
->
stream
.
control
.
i_status
==
PLAYING_S
)
{
p_input
->
stream
.
control
.
i_rate
=
DEFAULT_RATE
;
p_input
->
stream
.
control
.
b_mute
=
0
;
}
else
{
p_input
->
stream
.
control
.
i_rate
=
p_input
->
stream
.
i_new_rate
;
p_input
->
stream
.
control
.
b_mute
=
1
;
/* Feed the audio decoders with a NULL packet to avoid
* discontinuities. */
input_EscapeAudioDiscontinuity
(
p_input
,
p_pgrm
);
}
p_input
->
stream
.
i_new_status
=
UNDEF_S
;
p_input
->
stream
.
i_new_rate
=
UNDEF_S
;
vlc_mutex_unlock
(
&
p_input
->
stream
.
control
.
control_lock
);
}
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
return
(
i_return_value
);
}
/*****************************************************************************
* input_ClockManageRef: manages a clock reference
*****************************************************************************/
...
...
@@ -193,62 +265,7 @@ void input_ClockManageRef( input_thread_t * p_input,
mwait
(
p_pgrm
->
last_syscr
);
/* Now take into account interface changes. */
vlc_mutex_lock
(
&
p_input
->
stream
.
stream_lock
);
if
(
p_input
->
stream
.
i_new_status
==
PAUSE_S
)
{
int
i_old_status
;
vlc_mutex_lock
(
&
p_input
->
stream
.
control
.
control_lock
);
i_old_status
=
p_input
->
stream
.
control
.
i_status
;
p_input
->
stream
.
control
.
i_status
=
PAUSE_S
;
vlc_cond_wait
(
&
p_input
->
stream
.
stream_wait
,
&
p_input
->
stream
.
stream_lock
);
ClockNewRef
(
p_input
,
p_pgrm
,
i_clock
,
mdate
()
);
if
(
p_input
->
stream
.
i_new_status
==
PAUSE_S
)
{
/* PAUSE_S undoes the pause state: Return to old state. */
p_input
->
stream
.
control
.
i_status
=
i_old_status
;
p_input
->
stream
.
i_new_status
=
UNDEF_S
;
p_input
->
stream
.
i_new_rate
=
UNDEF_S
;
}
/* We handle i_new_status != PAUSE_S below... */
vlc_mutex_unlock
(
&
p_input
->
stream
.
control
.
control_lock
);
}
if
(
p_input
->
stream
.
i_new_status
!=
UNDEF_S
)
{
vlc_mutex_lock
(
&
p_input
->
stream
.
control
.
control_lock
);
p_input
->
stream
.
control
.
i_status
=
p_input
->
stream
.
i_new_status
;
ClockNewRef
(
p_input
,
p_pgrm
,
i_clock
,
ClockToSysdate
(
p_input
,
p_pgrm
,
i_clock
)
);
if
(
p_input
->
stream
.
control
.
i_status
==
PLAYING_S
)
{
p_input
->
stream
.
control
.
i_rate
=
DEFAULT_RATE
;
p_input
->
stream
.
control
.
b_mute
=
0
;
}
else
{
p_input
->
stream
.
control
.
i_rate
=
p_input
->
stream
.
i_new_rate
;
p_input
->
stream
.
control
.
b_mute
=
1
;
/* Feed the audio decoders with a NULL packet to avoid
* discontinuities. */
input_EscapeAudioDiscontinuity
(
p_input
,
p_pgrm
);
}
p_input
->
stream
.
i_new_status
=
UNDEF_S
;
p_input
->
stream
.
i_new_rate
=
UNDEF_S
;
vlc_mutex_unlock
(
&
p_input
->
stream
.
control
.
control_lock
);
}
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
input_ClockManageControl
(
p_input
,
p_pgrm
,
i_clock
);
}
else
{
...
...
src/input/input_programs.c
View file @
2fbc01b9
...
...
@@ -2,7 +2,7 @@
* input_programs.c: es_descriptor_t, pgrm_descriptor_t management
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_programs.c,v 1.5
8 2001/06/12 18:16:49 stef
Exp $
* $Id: input_programs.c,v 1.5
9 2001/06/27 09:53:57 massiot
Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
...
...
@@ -520,7 +520,7 @@ static int InitDecConfig( input_thread_t * p_input, es_descriptor_t * p_es,
p_config
->
p_decoder_fifo
->
pf_delete_pes
=
p_input
->
pf_delete_pes
;
p_es
->
p_decoder_fifo
=
p_config
->
p_decoder_fifo
;
p_config
->
pf_init_bit_stream
=
InitBit
stream
;
p_config
->
pf_init_bit_stream
=
p_input
->
pf_init_bit_
stream
;
p_input
->
stream
.
i_selected_es_number
++
;
...
...
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