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
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