2000-12-20 17:04:31 +01:00
|
|
|
/*****************************************************************************
|
|
|
|
* input_ext-intf.h: structures of the input exported to the interface
|
|
|
|
* This header provides structures to read the stream descriptors and
|
|
|
|
* control the pace of reading.
|
|
|
|
*****************************************************************************
|
|
|
|
* Copyright (C) 1999, 2000 VideoLAN
|
2002-08-18 15:16:51 +02:00
|
|
|
* $Id: input_ext-intf.h,v 1.77 2002/08/18 13:16:51 sigmunau Exp $
|
2000-12-20 17:04:31 +01:00
|
|
|
*
|
2001-02-08 14:52:35 +01:00
|
|
|
* Authors: Christophe Massiot <massiot@via.ecp.fr>
|
2000-12-20 17:04:31 +01:00
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
|
|
|
|
*****************************************************************************/
|
2000-12-05 20:36:58 +01:00
|
|
|
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
#ifndef _VLC_INPUT_EXT_INTF_H
|
|
|
|
#define _VLC_INPUT_EXT_INTF_H 1
|
|
|
|
|
2000-12-05 20:36:58 +01:00
|
|
|
/*
|
|
|
|
* Communication input -> interface
|
|
|
|
*/
|
2000-12-20 18:49:41 +01:00
|
|
|
/* FIXME ! */
|
2001-01-30 06:48:23 +01:00
|
|
|
#define REQUESTED_MPEG 1
|
2002-08-04 19:23:44 +02:00
|
|
|
#define REQUESTED_A52 2
|
2001-01-30 06:48:23 +01:00
|
|
|
#define REQUESTED_LPCM 3
|
2000-12-20 18:49:41 +01:00
|
|
|
#define REQUESTED_NOAUDIO 255
|
2000-12-05 20:36:58 +01:00
|
|
|
|
2001-02-22 18:00:20 +01:00
|
|
|
#define OFFSETTOTIME_MAX_SIZE 10
|
|
|
|
|
2000-12-05 20:36:58 +01:00
|
|
|
/*****************************************************************************
|
|
|
|
* es_descriptor_t: elementary stream descriptor
|
|
|
|
*****************************************************************************
|
|
|
|
* Describes an elementary stream, and includes fields required to handle and
|
|
|
|
* demultiplex this elementary stream.
|
|
|
|
*****************************************************************************/
|
2002-07-20 20:01:43 +02:00
|
|
|
struct es_descriptor_t
|
2000-12-05 20:36:58 +01:00
|
|
|
{
|
|
|
|
u16 i_id; /* stream ID for PS, PID for TS */
|
|
|
|
u8 i_stream_id; /* stream ID defined in the PES */
|
2002-07-23 02:39:17 +02:00
|
|
|
vlc_fourcc_t i_fourcc; /* stream type */
|
|
|
|
u8 i_cat; /* stream category (audio, video, spu) */
|
2002-04-23 16:16:21 +02:00
|
|
|
int i_demux_fd; /* used to store demux device
|
2002-03-21 03:27:04 +01:00
|
|
|
file handle */
|
2001-02-20 03:53:13 +01:00
|
|
|
char psz_desc[20]; /* description of ES: audio language
|
|
|
|
* for instance ; NULL if not
|
|
|
|
* available */
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
/* Demultiplexer information */
|
2002-08-07 02:29:37 +02:00
|
|
|
es_sys_t * p_demux_data;
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
pgrm_descriptor_t * p_pgrm; /* very convenient in the demultiplexer */
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
/* PES parser information */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
pes_packet_t * p_pes; /* Current PES */
|
2000-12-05 20:36:58 +01:00
|
|
|
int i_pes_real_size; /* as indicated by the header */
|
|
|
|
|
|
|
|
/* Decoder information */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
decoder_fifo_t * p_decoder_fifo;
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
count_t c_packets; /* total packets read */
|
|
|
|
count_t c_invalid_packets; /* invalid packets read */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
};
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
/* Special PID values - note that the PID is only on 13 bits, and that values
|
|
|
|
* greater than 0x1fff have no meaning in a stream */
|
|
|
|
#define PROGRAM_ASSOCIATION_TABLE_PID 0x0000
|
|
|
|
#define CONDITIONNAL_ACCESS_TABLE_PID 0x0001 /* not used */
|
|
|
|
#define EMPTY_ID 0xffff /* empty record in a table */
|
|
|
|
|
|
|
|
|
2001-04-10 19:47:05 +02:00
|
|
|
/* ES Categories to be used by interface plugins */
|
2002-07-23 02:39:17 +02:00
|
|
|
#define UNKNOWN_ES 0x00
|
|
|
|
#define VIDEO_ES 0x01
|
|
|
|
#define AUDIO_ES 0x02
|
|
|
|
#define SPU_ES 0x03
|
|
|
|
#define NAV_ES 0x04
|
2001-12-27 04:47:09 +01:00
|
|
|
|
2000-12-05 20:36:58 +01:00
|
|
|
/*****************************************************************************
|
|
|
|
* pgrm_descriptor_t
|
|
|
|
*****************************************************************************
|
|
|
|
* Describes a program and list associated elementary streams. It is build by
|
|
|
|
* the PSI decoder upon the informations carried in program map sections
|
|
|
|
*****************************************************************************/
|
2002-07-20 20:01:43 +02:00
|
|
|
struct pgrm_descriptor_t
|
2000-12-05 20:36:58 +01:00
|
|
|
{
|
|
|
|
/* Program characteristics */
|
|
|
|
u16 i_number; /* program number */
|
|
|
|
u8 i_version; /* version number */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
vlc_bool_t b_is_ok; /* Is the description up to date ? */
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
/* Service Descriptor (program name) - DVB extension */
|
|
|
|
u8 i_srv_type;
|
|
|
|
char * psz_srv_name;
|
|
|
|
|
|
|
|
/* Synchronization information */
|
|
|
|
mtime_t delta_cr;
|
2001-01-24 20:05:55 +01:00
|
|
|
mtime_t cr_ref, sysdate_ref;
|
2001-02-07 16:32:26 +01:00
|
|
|
mtime_t last_cr; /* reference to detect unexpected stream
|
|
|
|
* discontinuities */
|
2001-11-08 15:45:44 +01:00
|
|
|
mtime_t last_syscr;
|
2000-12-05 20:36:58 +01:00
|
|
|
count_t c_average_count;
|
|
|
|
/* counter used to compute dynamic average values */
|
|
|
|
int i_synchro_state;
|
|
|
|
|
|
|
|
/* Demultiplexer data */
|
2002-08-07 02:29:37 +02:00
|
|
|
pgrm_sys_t * p_demux_data;
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
int i_es_number; /* size of the following array */
|
|
|
|
es_descriptor_t ** pp_es; /* array of pointers to ES */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
};
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
/* Synchro states */
|
|
|
|
#define SYNCHRO_OK 0
|
2001-01-24 20:05:55 +01:00
|
|
|
#define SYNCHRO_START 1
|
|
|
|
#define SYNCHRO_REINIT 2
|
2000-12-05 20:36:58 +01:00
|
|
|
|
2001-02-20 03:53:13 +01:00
|
|
|
/*****************************************************************************
|
|
|
|
* input_area_t
|
|
|
|
*****************************************************************************
|
|
|
|
* Attributes for current area (title for DVD)
|
|
|
|
*****************************************************************************/
|
2002-07-20 20:01:43 +02:00
|
|
|
struct input_area_t
|
2001-02-20 03:53:13 +01:00
|
|
|
{
|
|
|
|
/* selected area attributes */
|
|
|
|
int i_id; /* identificator for area */
|
|
|
|
off_t i_start; /* start offset of area */
|
|
|
|
off_t i_size; /* total size of the area
|
|
|
|
* (in arbitrary units) */
|
|
|
|
|
|
|
|
/* navigation parameters */
|
|
|
|
off_t i_tell; /* actual location in the area
|
|
|
|
* (in arbitrary units) */
|
|
|
|
off_t i_seek; /* next requested location
|
|
|
|
* (changed by the interface thread */
|
|
|
|
|
|
|
|
/* area subdivision */
|
|
|
|
int i_part_nb; /* number of parts (chapter for DVD)*/
|
|
|
|
int i_part; /* currently selected part */
|
|
|
|
|
2001-04-20 07:40:03 +02:00
|
|
|
|
2001-02-20 03:53:13 +01:00
|
|
|
/* offset to plugin related data */
|
|
|
|
off_t i_plugin_data;
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
};
|
2001-02-20 03:53:13 +01:00
|
|
|
|
2002-08-18 15:16:51 +02:00
|
|
|
/**
|
|
|
|
* \brief A list of info items.
|
|
|
|
*
|
2002-07-21 21:26:13 +02:00
|
|
|
* Composes a linked list of name/value pairs intended to inform the
|
|
|
|
* user about the current stream
|
2002-08-18 15:16:51 +02:00
|
|
|
* \see input_AddInfo
|
|
|
|
*/
|
2002-07-21 21:26:13 +02:00
|
|
|
struct input_info_t {
|
2002-08-18 15:16:51 +02:00
|
|
|
/**
|
|
|
|
* Name of this item
|
|
|
|
*/
|
|
|
|
char * psz_name;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Value of this item
|
|
|
|
*/
|
|
|
|
char * psz_value;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Pointer to next item in list, or NULL it at end of list
|
|
|
|
*/
|
|
|
|
input_info_t * p_next;
|
2002-07-21 21:26:13 +02:00
|
|
|
};
|
|
|
|
|
2002-08-18 15:16:51 +02:00
|
|
|
/**
|
|
|
|
* \brief A list of info categories.
|
|
|
|
*
|
|
|
|
* Composes a NULL terminated linked list of categories in which to
|
|
|
|
* place info about the stream.
|
|
|
|
*
|
|
|
|
* \see input_InfoCategory
|
|
|
|
*/
|
2002-07-21 21:26:13 +02:00
|
|
|
struct input_info_category_t {
|
2002-08-18 15:16:51 +02:00
|
|
|
/**
|
|
|
|
* The name of this category
|
|
|
|
*/
|
|
|
|
char * psz_name;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* first element of a linked list containing info items
|
|
|
|
*/
|
|
|
|
input_info_t * p_info;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Pointer to next element in this list, or NULL if at end of list
|
|
|
|
*/
|
|
|
|
input_info_category_t * p_next;
|
2002-07-21 21:26:13 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
* stream_descriptor_t
|
2000-12-05 20:36:58 +01:00
|
|
|
*****************************************************************************
|
|
|
|
* Describes a stream and list its associated programs. Build upon
|
|
|
|
* the information carried in program association sections (for instance)
|
|
|
|
*****************************************************************************/
|
2002-07-20 20:01:43 +02:00
|
|
|
struct stream_descriptor_t
|
2000-12-05 20:36:58 +01:00
|
|
|
{
|
|
|
|
u16 i_stream_id; /* stream id */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
vlc_bool_t b_changed; /* if stream has been changed,
|
2001-04-12 05:26:53 +02:00
|
|
|
we have to inform the interface */
|
2000-12-05 20:36:58 +01:00
|
|
|
vlc_mutex_t stream_lock; /* to be taken every time you read
|
|
|
|
* or modify stream, pgrm or es */
|
|
|
|
|
|
|
|
/* Input method data */
|
2001-04-13 07:36:12 +02:00
|
|
|
int i_method; /* input method for stream: file,
|
|
|
|
disc or network */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
vlc_bool_t b_pace_control; /* can we read when we want ? */
|
|
|
|
vlc_bool_t b_seekable; /* can we do lseek() ? */
|
2001-02-20 03:53:13 +01:00
|
|
|
|
2000-12-05 20:36:58 +01:00
|
|
|
/* if (b_seekable) : */
|
2001-02-20 03:53:13 +01:00
|
|
|
int i_area_nb;
|
2001-05-19 02:39:30 +02:00
|
|
|
input_area_t ** pp_areas; /* list of areas in stream == offset
|
|
|
|
* interval with own properties */
|
2001-02-20 09:47:25 +01:00
|
|
|
input_area_t * p_selected_area;
|
2001-05-19 02:39:30 +02:00
|
|
|
input_area_t * p_new_area; /* Newly selected area from
|
|
|
|
* the interface */
|
|
|
|
|
2001-02-19 20:08:59 +01:00
|
|
|
u32 i_mux_rate; /* the rate we read the stream (in
|
|
|
|
* units of 50 bytes/s) ; 0 if undef */
|
2001-01-24 20:05:55 +01:00
|
|
|
|
|
|
|
/* New status and rate requested by the interface */
|
|
|
|
int i_new_status, i_new_rate;
|
2001-07-18 16:21:00 +02:00
|
|
|
int b_new_mute; /* int because it can be -1 */
|
2001-02-08 14:08:03 +01:00
|
|
|
vlc_cond_t stream_wait; /* interface -> input in case of a
|
|
|
|
* status change request */
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
/* Demultiplexer data */
|
2002-08-07 02:29:37 +02:00
|
|
|
stream_sys_t * p_demux_data;
|
2000-12-05 20:36:58 +01:00
|
|
|
|
2000-12-21 20:24:27 +01:00
|
|
|
/* Programs descriptions */
|
2000-12-05 20:36:58 +01:00
|
|
|
int i_pgrm_number; /* size of the following array */
|
|
|
|
pgrm_descriptor_t ** pp_programs; /* array of pointers to pgrm */
|
2001-12-05 04:31:04 +01:00
|
|
|
pgrm_descriptor_t * p_selected_program; /* currently
|
|
|
|
selected program */
|
|
|
|
pgrm_descriptor_t * p_new_program; /* Newly selected program */
|
2000-12-21 20:24:27 +01:00
|
|
|
/* ES descriptions */
|
|
|
|
int i_es_number;
|
|
|
|
es_descriptor_t ** pp_es; /* carried elementary streams */
|
|
|
|
int i_selected_es_number;
|
|
|
|
es_descriptor_t ** pp_selected_es; /* ES with a decoder */
|
2001-05-19 02:39:30 +02:00
|
|
|
es_descriptor_t * p_newly_selected_es; /* ES selected from
|
|
|
|
* the interface */
|
|
|
|
es_descriptor_t * p_removed_es; /* ES removed from the interface */
|
2002-04-25 04:10:33 +02:00
|
|
|
|
2000-12-05 20:36:58 +01:00
|
|
|
/* Stream control */
|
|
|
|
stream_ctrl_t control;
|
2001-10-01 18:18:49 +02:00
|
|
|
|
2002-08-13 00:12:51 +02:00
|
|
|
/* Optional stream output */
|
|
|
|
sout_instance_t * p_sout;
|
|
|
|
|
2002-07-21 21:26:13 +02:00
|
|
|
/* Input info */
|
|
|
|
input_info_category_t * p_info;
|
|
|
|
|
2001-10-01 18:18:49 +02:00
|
|
|
/* Statistics */
|
|
|
|
count_t c_packets_read; /* packets read */
|
|
|
|
count_t c_packets_trashed; /* trashed packets */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
* stream_position_t
|
|
|
|
*****************************************************************************
|
|
|
|
* Describes the current position in the stream.
|
|
|
|
*****************************************************************************/
|
2002-07-20 20:01:43 +02:00
|
|
|
struct stream_position_t
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
{
|
|
|
|
off_t i_tell; /* actual location in the area (in arbitrary units) */
|
|
|
|
off_t i_size; /* total size of the area (in arbitrary units) */
|
|
|
|
|
|
|
|
u32 i_mux_rate; /* the rate we read the stream (in
|
|
|
|
* units of 50 bytes/s) ; 0 if undef */
|
|
|
|
};
|
2000-12-05 20:36:58 +01:00
|
|
|
|
2001-07-18 16:21:00 +02:00
|
|
|
#define MUTE_NO_CHANGE -1
|
|
|
|
|
2000-12-05 20:36:58 +01:00
|
|
|
/*****************************************************************************
|
|
|
|
* input_thread_t
|
|
|
|
*****************************************************************************
|
|
|
|
* This structure includes all the local static variables of an input thread
|
|
|
|
*****************************************************************************/
|
2002-07-20 20:01:43 +02:00
|
|
|
struct input_thread_t
|
2000-12-05 20:36:58 +01:00
|
|
|
{
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
VLC_COMMON_MEMBERS
|
|
|
|
|
2002-06-02 13:59:46 +02:00
|
|
|
/* Thread properties */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
vlc_bool_t b_eof;
|
2000-12-05 20:36:58 +01:00
|
|
|
|
2002-03-01 01:33:18 +01:00
|
|
|
/* Access module */
|
2002-07-31 22:56:53 +02:00
|
|
|
module_t * p_access;
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
ssize_t (* pf_read ) ( input_thread_t *, byte_t *, size_t );
|
|
|
|
int (* pf_set_program )( input_thread_t *, pgrm_descriptor_t * );
|
|
|
|
int (* pf_set_area )( input_thread_t *, input_area_t * );
|
|
|
|
void (* pf_seek ) ( input_thread_t *, off_t );
|
2002-08-07 02:29:37 +02:00
|
|
|
access_sys_t * p_access_data;
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
size_t i_mtu;
|
2002-03-01 01:33:18 +01:00
|
|
|
|
|
|
|
/* Demux module */
|
2002-07-31 22:56:53 +02:00
|
|
|
module_t * p_demux;
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
int (* pf_demux ) ( input_thread_t * );
|
|
|
|
int (* pf_rewind ) ( input_thread_t * );
|
2001-02-08 05:43:28 +01:00
|
|
|
/* NULL if we don't support going *
|
|
|
|
* backwards (it's gonna be fun) */
|
2002-08-07 02:29:37 +02:00
|
|
|
demux_sys_t * p_demux_data; /* data of the demux */
|
2000-12-05 20:36:58 +01:00
|
|
|
|
2002-03-01 01:33:18 +01:00
|
|
|
/* Buffer manager */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
input_buffers_t *p_method_data; /* data of the packet manager */
|
|
|
|
data_buffer_t * p_data_buffer;
|
|
|
|
byte_t * p_current_data;
|
|
|
|
byte_t * p_last_data;
|
|
|
|
size_t i_bufsize;
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
/* General stream description */
|
2002-03-01 01:33:18 +01:00
|
|
|
stream_descriptor_t stream;
|
|
|
|
|
|
|
|
/* Playlist item */
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
char * psz_source;
|
|
|
|
char * psz_access;
|
|
|
|
char * psz_demux;
|
|
|
|
char * psz_name;
|
2000-12-05 20:36:58 +01:00
|
|
|
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
count_t c_loops;
|
|
|
|
};
|
2000-12-05 20:36:58 +01:00
|
|
|
|
|
|
|
/* Input methods */
|
2001-04-13 07:36:12 +02:00
|
|
|
/* The first figure is a general method that can be used in interface plugins ;
|
|
|
|
* The second figure is a detailed sub-method */
|
|
|
|
#define INPUT_METHOD_NONE 0x0 /* input thread is inactive */
|
|
|
|
#define INPUT_METHOD_FILE 0x10 /* stream is read from file p_source */
|
|
|
|
#define INPUT_METHOD_DISC 0x20 /* stream is read directly from disc */
|
|
|
|
#define INPUT_METHOD_DVD 0x21 /* stream is read from DVD */
|
|
|
|
#define INPUT_METHOD_VCD 0x22 /* stream is read from VCD */
|
|
|
|
#define INPUT_METHOD_NETWORK 0x30 /* stream is read from network */
|
|
|
|
#define INPUT_METHOD_UCAST 0x31 /* UDP unicast */
|
|
|
|
#define INPUT_METHOD_MCAST 0x32 /* UDP multicast */
|
|
|
|
#define INPUT_METHOD_BCAST 0x33 /* UDP broadcast */
|
|
|
|
#define INPUT_METHOD_VLAN_BCAST 0x34 /* UDP broadcast with VLANs */
|
2002-03-21 03:27:04 +01:00
|
|
|
#define INPUT_METHOD_SATELLITE 0x40 /* stream is read from a */
|
|
|
|
/* satellite card */
|
2000-12-05 20:36:58 +01:00
|
|
|
|
2001-02-16 07:37:09 +01:00
|
|
|
/* Status changing methods */
|
|
|
|
#define INPUT_STATUS_END 0
|
|
|
|
#define INPUT_STATUS_PLAY 1
|
|
|
|
#define INPUT_STATUS_PAUSE 2
|
|
|
|
#define INPUT_STATUS_FASTER 3
|
|
|
|
#define INPUT_STATUS_SLOWER 4
|
2001-02-12 10:39:15 +01:00
|
|
|
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
/* Seek modes */
|
|
|
|
#define INPUT_SEEK_SET 0x00
|
|
|
|
#define INPUT_SEEK_CUR 0x01
|
|
|
|
#define INPUT_SEEK_END 0x02
|
|
|
|
#define INPUT_SEEK_BYTES 0x00
|
|
|
|
#define INPUT_SEEK_SECONDS 0x10
|
|
|
|
#define INPUT_SEEK_PERCENT 0x20
|
|
|
|
|
2000-12-05 20:36:58 +01:00
|
|
|
/*****************************************************************************
|
|
|
|
* Prototypes
|
|
|
|
*****************************************************************************/
|
2002-07-31 22:56:53 +02:00
|
|
|
#define input_CreateThread(a,b,c) __input_CreateThread(VLC_OBJECT(a),b,c)
|
2002-06-01 20:04:49 +02:00
|
|
|
input_thread_t * __input_CreateThread ( vlc_object_t *,
|
|
|
|
playlist_item_t *, int * );
|
2002-06-02 13:59:46 +02:00
|
|
|
void input_StopThread ( input_thread_t * );
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
void input_DestroyThread ( input_thread_t * );
|
|
|
|
|
2002-07-31 22:56:53 +02:00
|
|
|
#define input_SetStatus(a,b) __input_SetStatus(VLC_OBJECT(a),b)
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
VLC_EXPORT( void, __input_SetStatus, ( vlc_object_t *, int ) );
|
|
|
|
|
2002-07-31 22:56:53 +02:00
|
|
|
#define input_Seek(a,b,c) __input_Seek(VLC_OBJECT(a),b,c)
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
VLC_EXPORT( void, __input_Seek, ( vlc_object_t *, off_t, int ) );
|
|
|
|
|
2002-07-31 22:56:53 +02:00
|
|
|
#define input_Tell(a,b) __input_Tell(VLC_OBJECT(a),b)
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
VLC_EXPORT( void, __input_Tell, ( vlc_object_t *, stream_position_t * ) );
|
|
|
|
|
|
|
|
VLC_EXPORT( void, input_DumpStream, ( input_thread_t * ) );
|
|
|
|
VLC_EXPORT( char *, input_OffsetToTime, ( input_thread_t *, char *, off_t ) );
|
|
|
|
VLC_EXPORT( int, input_ToggleES, ( input_thread_t *, es_descriptor_t *, vlc_bool_t ) );
|
|
|
|
VLC_EXPORT( int, input_ChangeArea, ( input_thread_t *, input_area_t * ) );
|
|
|
|
VLC_EXPORT( int, input_ChangeProgram, ( input_thread_t *, u16 ) );
|
|
|
|
|
|
|
|
int input_ToggleGrayscale( input_thread_t * );
|
|
|
|
int input_ToggleMute ( input_thread_t * );
|
2001-12-10 05:53:11 +01:00
|
|
|
|
* ALL: the first libvlc commit.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
2002-06-01 14:32:02 +02:00
|
|
|
#endif /* "input_ext-intf.h" */
|