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
53b4094f
Commit
53b4094f
authored
Jun 22, 2004
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* all: rework of the input.
parent
7255e433
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
13 additions
and
643 deletions
+13
-643
include/input_ext-dec.h
include/input_ext-dec.h
+0
-88
include/input_ext-intf.h
include/input_ext-intf.h
+0
-360
include/input_ext-plugins.h
include/input_ext-plugins.h
+0
-117
include/stream_control.h
include/stream_control.h
+0
-65
include/vlc/decoder.h
include/vlc/decoder.h
+1
-3
include/vlc/input.h
include/vlc/input.h
+10
-6
include/vlc/intf.h
include/vlc/intf.h
+1
-2
include/vlc_codec.h
include/vlc_codec.h
+0
-2
include/vlc_objects.h
include/vlc_objects.h
+1
-0
No files found.
include/input_ext-dec.h
deleted
100644 → 0
View file @
7255e433
/*****************************************************************************
* input_ext-dec.h: structures exported to the VideoLAN decoders
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* $Id: input_ext-dec.h,v 1.83 2003/11/24 00:39:00 fenrir Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Michel Kaempf <maxx@via.ecp.fr>
*
* 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.
*****************************************************************************/
#ifndef _VLC_INPUT_EXT_DEC_H
#define _VLC_INPUT_EXT_DEC_H 1
/* Structures exported to the decoders */
/*****************************************************************************
* data_packet_t
*****************************************************************************
* Describe a data packet.
*****************************************************************************/
struct
data_packet_t
{
/* Used to chain the packets that carry data for a same PES or PSI */
data_packet_t
*
p_next
;
/* start of the PS or TS packet */
byte_t
*
p_demux_start
;
/* start of the PES payload in this packet */
byte_t
*
p_payload_start
;
byte_t
*
p_payload_end
;
/* guess ? :-) */
/* is the packet messed up ? */
vlc_bool_t
b_discard_payload
;
/* pointer to the real data */
data_buffer_t
*
p_buffer
;
};
/*****************************************************************************
* pes_packet_t
*****************************************************************************
* Describes an PES packet, with its properties, and pointers to the TS packets
* containing it.
*****************************************************************************/
struct
pes_packet_t
{
/* Chained list to the next PES packet (depending on the context) */
pes_packet_t
*
p_next
;
/* PES properties */
vlc_bool_t
b_data_alignment
;
/* used to find the beginning of
* a video or audio unit */
vlc_bool_t
b_discontinuity
;
/* This packet doesn't follow the
* previous one */
mtime_t
i_pts
;
/* PTS for this packet (zero if unset) */
mtime_t
i_dts
;
/* DTS for this packet (zero if unset) */
int
i_rate
;
/* current reading pace (see stream_control.h) */
unsigned
int
i_pes_size
;
/* size of the current PES packet */
/* Chained list to packets */
data_packet_t
*
p_first
;
/* The first packet contained by this
* PES (used by decoders). */
data_packet_t
*
p_last
;
/* The last packet contained by this
* PES (used by the buffer allocator) */
unsigned
int
i_nb_data
;
/* Number of data packets in the chained list */
};
/*****************************************************************************
* Prototypes from input_ext-dec.c
*****************************************************************************/
VLC_EXPORT
(
void
,
input_DeletePES
,
(
input_buffers_t
*
,
pes_packet_t
*
)
);
#endif
/* "input_ext-dec.h" */
include/input_ext-intf.h
deleted
100644 → 0
View file @
7255e433
/*****************************************************************************
* 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, 2003 VideoLAN
* $Id$
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
* 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.
*****************************************************************************/
#ifndef _VLC_INPUT_EXT_INTF_H
#define _VLC_INPUT_EXT_INTF_H 1
#include "vlc_block.h"
#include "ninput.h"
/*
* Communication input -> interface
*/
/* FIXME ! */
#define REQUESTED_MPEG 1
#define REQUESTED_A52 2
#define REQUESTED_LPCM 3
#define REQUESTED_DTS 4
#define REQUESTED_NOAUDIO 255
/*****************************************************************************
* es_descriptor_t: elementary stream descriptor
*****************************************************************************
* Describes an elementary stream, and includes fields required to handle and
* demultiplex this elementary stream.
*****************************************************************************/
struct
es_descriptor_t
{
uint16_t
i_id
;
/* stream ID for PS, PID for TS */
uint8_t
i_stream_id
;
/* stream ID defined in the PES */
vlc_fourcc_t
i_fourcc
;
/* stream type */
uint8_t
i_cat
;
/* stream category (audio, video, spu) */
int
i_demux_fd
;
/* used to store demux device
file handle */
char
*
psz_desc
;
/* description of ES: audio language
* for instance ; NULL if not
* available */
/* Demultiplexer information */
es_sys_t
*
p_demux_data
;
pgrm_descriptor_t
*
p_pgrm
;
/* very convenient in the demultiplexer */
/* PES parser information */
pes_packet_t
*
p_pes
;
/* Current PES */
unsigned
int
i_pes_real_size
;
/* as indicated by the header */
/* Decoder information */
es_format_t
fmt
;
void
*
p_waveformatex
;
void
*
p_bitmapinfoheader
;
void
*
p_spuinfo
;
/* Decoder */
decoder_t
*
p_dec
;
count_t
c_packets
;
/* total packets read */
count_t
c_invalid_packets
;
/* invalid packets read */
/* XXX hack: to force a decoder instead of mode based on sout */
vlc_bool_t
b_force_decoder
;
};
/*****************************************************************************
* 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
*****************************************************************************/
struct
pgrm_descriptor_t
{
/* Program characteristics */
uint16_t
i_number
;
/* program number */
uint8_t
i_version
;
/* version number */
vlc_bool_t
b_is_ok
;
/* Is the description up to date ? */
/* Service Descriptor (program name) - DVB extension */
uint8_t
i_srv_type
;
char
*
psz_srv_name
;
/* Synchronization information */
mtime_t
delta_cr
;
mtime_t
cr_ref
,
sysdate_ref
;
mtime_t
last_cr
;
/* reference to detect unexpected stream
* discontinuities */
mtime_t
last_pts
;
count_t
c_average_count
;
/* counter used to compute dynamic average values */
int
i_synchro_state
;
/* Demultiplexer data */
pgrm_sys_t
*
p_demux_data
;
unsigned
int
i_es_number
;
/* size of the following array */
es_descriptor_t
**
pp_es
;
/* array of pointers to ES */
};
/* Synchro states */
#define SYNCHRO_OK 0
#define SYNCHRO_START 1
#define SYNCHRO_REINIT 2
/*****************************************************************************
* input_area_t
*****************************************************************************
* Attributes for current area (title for DVD)
*****************************************************************************/
struct
input_area_t
{
/* selected area attributes */
unsigned
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 */
unsigned
int
i_part_nb
;
/* number of parts (chapter for DVD)*/
unsigned
int
i_part
;
/* currently selected part */
/* offset to plugin related data */
off_t
i_plugin_data
;
};
/*****************************************************************************
* stream_descriptor_t
*****************************************************************************
* Describes a stream and list its associated programs. Build upon
* the information carried in program association sections (for instance)
*****************************************************************************/
struct
stream_descriptor_t
{
uint16_t
i_stream_id
;
/* stream id */
vlc_bool_t
b_changed
;
/* if stream has been changed,
we have to inform the interface */
vlc_mutex_t
stream_lock
;
/* to be taken every time you read
* or modify stream, pgrm or es */
/* Input method data */
unsigned
int
i_method
;
/* input method for stream: file,
disc or network */
vlc_bool_t
b_pace_control
;
/* can we read when we want ? */
vlc_bool_t
b_seekable
;
/* can we do lseek() ? */
/* if (b_seekable) : */
unsigned
int
i_area_nb
;
input_area_t
**
pp_areas
;
/* list of areas in stream == offset
* interval with own properties */
input_area_t
*
p_selected_area
;
input_area_t
*
p_new_area
;
/* Newly selected area from
* the interface */
uint32_t
i_mux_rate
;
/* the rate we read the stream (in
* units of 50 bytes/s) ; 0 if undef */
/* New status and rate requested by the interface */
unsigned
int
i_new_status
,
i_new_rate
;
int
b_new_mute
;
/* int because it can be -1 */
vlc_cond_t
stream_wait
;
/* interface -> input in case of a
* status change request */
/* Demultiplexer data */
void
*
p_demux_data
;
/* Programs descriptions */
unsigned
int
i_pgrm_number
;
/* size of the following array */
pgrm_descriptor_t
**
pp_programs
;
/* array of pointers to pgrm */
pgrm_descriptor_t
*
p_selected_program
;
/* currently
selected program */
pgrm_descriptor_t
*
p_new_program
;
/* Newly selected program */
/* ES descriptions */
unsigned
int
i_es_number
;
es_descriptor_t
**
pp_es
;
/* carried elementary streams */
unsigned
int
i_selected_es_number
;
es_descriptor_t
**
pp_selected_es
;
/* ES with a decoder */
es_descriptor_t
*
p_newly_selected_es
;
/* ES selected from
* the interface */
es_descriptor_t
*
p_removed_es
;
/* ES removed from the interface */
/* Stream control */
stream_ctrl_t
control
;
/* Optional stream output */
sout_instance_t
*
p_sout
;
/* Statistics */
count_t
c_packets_read
;
/* packets read */
count_t
c_packets_trashed
;
/* trashed packets */
};
#define MUTE_NO_CHANGE -1
/*****************************************************************************
* info_t
*****************************************************************************/
/**
* Info item
*/
struct
info_t
{
char
*
psz_name
;
/**< Name of this info */
char
*
psz_value
;
/**< Value of the info */
};
/**
* Info category
* \see info_t
*/
struct
info_category_t
{
char
*
psz_name
;
/**< Name of this category */
int
i_infos
;
/**< Number of infos in the category */
struct
info_t
**
pp_infos
;
/**< Pointer to an array of infos */
};
/*****************************************************************************
* input_item_t
*****************************************************************************
* Describes an input and is used to spawn input_thread_t objects.
*****************************************************************************/
struct
input_item_t
{
char
*
psz_name
;
/**< text describing this item */
char
*
psz_uri
;
/**< mrl of this item */
int
i_options
;
/**< Number of input options */
char
**
ppsz_options
;
/**< Array of input options */
mtime_t
i_duration
;
/**< A hint about the duration of this
* item, in milliseconds*/
int
i_categories
;
/**< Number of info categories */
info_category_t
**
pp_categories
;
/**< Pointer to the first info category */
vlc_mutex_t
lock
;
/**< Item cannot be changed without this lock */
};
/*****************************************************************************
* input_thread_t
*****************************************************************************
* This structure includes all the local static variables of an input thread
*****************************************************************************/
struct
input_thread_t
{
VLC_COMMON_MEMBERS
/* Thread properties */
vlc_bool_t
b_eof
;
vlc_bool_t
b_out_pace_control
;
/* Access module */
module_t
*
p_access
;
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
);
int
(
*
pf_access_control
)(
input_thread_t
*
,
int
,
va_list
);
access_sys_t
*
p_access_data
;
size_t
i_mtu
;
int
i_pts_delay
;
/* internal caching */
int
i_cr_average
;
/* Stream */
stream_t
*
s
;
/* Demux module */
module_t
*
p_demux
;
int
(
*
pf_demux
)
(
input_thread_t
*
);
int
(
*
pf_rewind
)
(
input_thread_t
*
);
/* NULL if we don't support going *
* backwards (it's gonna be fun) */
int
(
*
pf_demux_control
)
(
input_thread_t
*
,
int
,
va_list
);
demux_sys_t
*
p_demux_data
;
/* data of the demux */
/* es out */
es_out_t
*
p_es_out
;
/* Buffer manager */
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
;
/* General stream description */
stream_descriptor_t
stream
;
/* Input item description */
input_item_t
*
p_item
;
/* Playlist item */
char
*
psz_source
;
char
*
psz_dupsource
;
char
*
psz_access
;
char
*
psz_demux
;
char
*
psz_name
;
count_t
c_loops
;
/* User bookmarks */
int
i_bookmarks
;
seekpoint_t
**
pp_bookmarks
;
/* private, do not touch it */
input_thread_sys_t
*
p_sys
;
};
/* Input methods */
/* 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_CDDA 0x23
/* stream is read from CDDA */
#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 */
#define INPUT_METHOD_SATELLITE 0x40
/* stream is read from a */
/* satellite card */
#define INPUT_METHOD_SLP 0x50
/* SLP stream */
/*****************************************************************************
* Prototypes
*****************************************************************************/
#define input_CreateThread(a,b) __input_CreateThread(VLC_OBJECT(a),b)
VLC_EXPORT
(
input_thread_t
*
,
__input_CreateThread
,
(
vlc_object_t
*
,
input_item_t
*
)
);
VLC_EXPORT
(
void
,
input_StopThread
,
(
input_thread_t
*
)
);
VLC_EXPORT
(
void
,
input_DestroyThread
,
(
input_thread_t
*
)
);
#endif
/* "input_ext-intf.h" */
include/input_ext-plugins.h
deleted
100644 → 0
View file @
7255e433
/*****************************************************************************
* input_ext-plugins.h: structures of the input not exported to other modules,
* but exported to plug-ins
*****************************************************************************
* Copyright (C) 1999-2002 VideoLAN
* $Id$
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
* 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.
*****************************************************************************/
/*
* Communication plugin -> input
*/
/* FIXME: you've gotta move this move this, you've gotta move this move this */
#define PADDING_PACKET_SIZE 188
/* Size of the NULL packet inserted in case
* of data loss (this should be < 188). */
#define PADDING_PACKET_NUMBER 10
/* Number of padding packets top insert to
* escape a decoder. */
#define INPUT_DEFAULT_BUFSIZE 65536
/* Default buffer size to use when none
* is natural. */
#define NO_SEEK -1
/*****************************************************************************
* Prototypes from input_programs.c
*****************************************************************************/
VLC_EXPORT
(
int
,
input_InitStream
,(
input_thread_t
*
,
size_t
)
);
VLC_EXPORT
(
void
,
input_EndStream
,
(
input_thread_t
*
)
);
VLC_EXPORT
(
pgrm_descriptor_t
*
,
input_FindProgram
,(
input_thread_t
*
,
uint16_t
)
);
VLC_EXPORT
(
pgrm_descriptor_t
*
,
input_AddProgram
,
(
input_thread_t
*
,
uint16_t
,
size_t
)
);
VLC_EXPORT
(
void
,
input_DelProgram
,(
input_thread_t
*
,
pgrm_descriptor_t
*
)
);
VLC_EXPORT
(
int
,
input_SetProgram
,(
input_thread_t
*
,
pgrm_descriptor_t
*
)
);
VLC_EXPORT
(
input_area_t
*
,
input_AddArea
,(
input_thread_t
*
,
uint16_t
,
uint16_t
)
);
VLC_EXPORT
(
void
,
input_DelArea
,
(
input_thread_t
*
,
input_area_t
*
)
);
VLC_EXPORT
(
es_descriptor_t
*
,
input_FindES
,(
input_thread_t
*
,
uint16_t
)
);
VLC_EXPORT
(
es_descriptor_t
*
,
input_AddES
,
(
input_thread_t
*
,
pgrm_descriptor_t
*
,
uint16_t
,
int
,
char
const
*
,
size_t
)
);
VLC_EXPORT
(
void
,
input_DelES
,
(
input_thread_t
*
,
es_descriptor_t
*
)
);
VLC_EXPORT
(
int
,
input_SelectES
,
(
input_thread_t
*
,
es_descriptor_t
*
)
);
VLC_EXPORT
(
int
,
input_UnselectES
,(
input_thread_t
*
,
es_descriptor_t
*
)
);
/*****************************************************************************
* Prototypes from input_dec.c
*****************************************************************************/
VLC_EXPORT
(
decoder_t
*
,
input_RunDecoder
,
(
input_thread_t
*
,
es_descriptor_t
*
)
);
VLC_EXPORT
(
void
,
input_EndDecoder
,
(
input_thread_t
*
,
es_descriptor_t
*
)
);
VLC_EXPORT
(
void
,
input_DecodePES
,
(
decoder_t
*
,
pes_packet_t
*
)
);
VLC_EXPORT
(
void
,
input_DecodeBlock
,(
decoder_t
*
,
block_t
*
)
);
void
input_EscapeDiscontinuity
(
input_thread_t
*
);
void
input_EscapeAudioDiscontinuity
(
input_thread_t
*
);
/*****************************************************************************
* Prototypes from es_out.c
*****************************************************************************/
/* input internal use only */
es_out_t
*
input_EsOutNew
(
input_thread_t
*
);
void
input_EsOutDelete
(
es_out_t
*
);
stream_t
*
input_StreamNew
(
input_thread_t
*
);
void
input_StreamDelete
(
stream_t
*
);
/*****************************************************************************
* Prototypes from input_clock.c
*****************************************************************************/
void
input_ClockInit
(
pgrm_descriptor_t
*
);
VLC_EXPORT
(
int
,
input_ClockManageControl
,
(
input_thread_t
*
,
pgrm_descriptor_t
*
,
mtime_t
)
);
VLC_EXPORT
(
void
,
input_ClockManageRef
,
(
input_thread_t
*
,
pgrm_descriptor_t
*
,
mtime_t
)
);
VLC_EXPORT
(
mtime_t
,
input_ClockGetTS
,
(
input_thread_t
*
,
pgrm_descriptor_t
*
,
mtime_t
)
);
/*****************************************************************************
* Prototypes from input_ext-plugins.h (buffers management)
*****************************************************************************/
#define input_BuffersInit(a) __input_BuffersInit(VLC_OBJECT(a))
void
*
__input_BuffersInit
(
vlc_object_t
*
);
VLC_EXPORT
(
void
,
input_BuffersEnd
,
(
input_thread_t
*
,
input_buffers_t
*
)
);
VLC_EXPORT
(
data_buffer_t
*
,
input_NewBuffer
,
(
input_buffers_t
*
,
size_t
)
);
VLC_EXPORT
(
void
,
input_ReleaseBuffer
,
(
input_buffers_t
*
,
data_buffer_t
*
)
);
VLC_EXPORT
(
data_packet_t
*
,
input_ShareBuffer
,
(
input_buffers_t
*
,
data_buffer_t
*
)
);
VLC_EXPORT
(
data_packet_t
*
,
input_NewPacket
,
(
input_buffers_t
*
,
size_t
)
);
VLC_EXPORT
(
void
,
input_DeletePacket
,
(
input_buffers_t
*
,
data_packet_t
*
)
);
VLC_EXPORT
(
pes_packet_t
*
,
input_NewPES
,
(
input_buffers_t
*
)
);
VLC_EXPORT
(
ssize_t
,
input_FillBuffer
,
(
input_thread_t
*
)
);
VLC_EXPORT
(
ssize_t
,
input_Peek
,
(
input_thread_t
*
,
byte_t
**
,
size_t
)
);
VLC_EXPORT
(
ssize_t
,
input_SplitBuffer
,
(
input_thread_t
*
,
data_packet_t
**
,
size_t
)
);
VLC_EXPORT
(
int
,
input_AccessInit
,
(
input_thread_t
*
)
);
VLC_EXPORT
(
void
,
input_AccessReinit
,
(
input_thread_t
*
)
);
VLC_EXPORT
(
void
,
input_AccessEnd
,
(
input_thread_t
*
)
);
/*
* Optional standard file descriptor operations (input_ext-plugins.h)
*/
/*****************************************************************************
* input_socket_t: private access plug-in data
*****************************************************************************/
struct
input_socket_t
{
/* Unbuffered file descriptor */
int
i_handle
;
};
include/stream_control.h
deleted
100644 → 0
View file @
7255e433
/*****************************************************************************
* stream_control.h: structures of the input exported everywhere
* This header provides a structure so that everybody knows the state
* of the reading.
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: stream_control.h,v 1.12 2004/01/25 18:17:08 zorglub Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
* 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.
*****************************************************************************/
#ifndef _STREAM_CONTROL_H
#define _STREAM_CONTROL_H 1
/* Structures exported to interface, input and decoders */
/*****************************************************************************
* stream_ctrl_t
*****************************************************************************
* Describe the state of a program stream.
*****************************************************************************/
struct
stream_ctrl_t
{
vlc_mutex_t
control_lock
;
int
i_status
;
/* if i_status == FORWARD_S or BACKWARD_S */
int
i_rate
;
vlc_bool_t
b_mute
;
vlc_bool_t
b_grayscale
;
/* use color or grayscale */
};
/* Possible status : */
enum
stream_status_e
{
UNDEF_S
=
0
,
PLAYING_S
=
1
,
PAUSE_S
=
2
,
FORWARD_S
=
3
,
BACKWARD_S
=
4
,
INIT_S
=
10
,
END_S
=
11
};
#define DEFAULT_RATE 1000
#define MINIMAL_RATE 31
/* Up to 32/1 */
#define MAXIMAL_RATE 8000
/* Up to 1/8 */
#endif
/* "stream_control.h" */
include/vlc/decoder.h
View file @
53b4094f
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* decoder.h: header for vlc decoders
* decoder.h: header for vlc decoders
*****************************************************************************
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* Copyright (C) 2002 VideoLAN
* $Id
: decoder.h,v 1.4 2004/01/25 18:17:08 zorglub Exp
$
* $Id$
*
*
* This program is free software; you can redistribute it and/or modify
* 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
* it under the terms of the GNU General Public License as published by
...
@@ -35,8 +35,6 @@ extern "C" {
...
@@ -35,8 +35,6 @@ extern "C" {
* Required internal headers
* Required internal headers
*****************************************************************************/
*****************************************************************************/
#include "vlc_block.h"
#include "vlc_block.h"
#include "stream_control.h"
#include "input_ext-dec.h"
#include "vlc_video.h"
#include "vlc_video.h"
#include "audio_output.h"
#include "audio_output.h"
#include "vlc_codec.h"
#include "vlc_codec.h"
...
...
include/vlc/input.h
View file @
53b4094f
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
* input.h: input modules header for vlc
* input.h: input modules header for vlc
*****************************************************************************
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* Copyright (C) 2002 VideoLAN
* $Id
: input.h,v 1.4 2004/01/25 18:17:08 zorglub Exp
$
* $Id$
*
*
* This program is free software; you can redistribute it and/or modify
* 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
* it under the terms of the GNU General Public License as published by
...
@@ -35,11 +35,15 @@ extern "C" {
...
@@ -35,11 +35,15 @@ extern "C" {
* Required internal headers
* Required internal headers
*****************************************************************************/
*****************************************************************************/
#include "vlc_block.h"
#include "vlc_block.h"
#include "stream_control.h"
#include "input_ext-intf.h"
/* input_thread_s */
#include "vlc_es.h"
#include "input_ext-dec.h"
/* data_packet_s */
#include "vlc_es_out.h"
#include "input_ext-plugins.h"
#include "ninput.h"
#include "vlc_input.h"
#include "vlc_access.h"
#include "vlc_stream.h"
#include "vlc_demux.h"
# ifdef __cplusplus
# ifdef __cplusplus
}
}
...
...
include/vlc/intf.h
View file @
53b4094f
...
@@ -35,9 +35,8 @@ extern "C" {
...
@@ -35,9 +35,8 @@ extern "C" {
* Required internal headers
* Required internal headers
*****************************************************************************/
*****************************************************************************/
#include "vlc_interface.h"
#include "vlc_interface.h"
#include "vlc_input.h"
#include "intf_eject.h"
#include "intf_eject.h"
#include "stream_control.h"
#include "input_ext-intf.h"
#include "vlc_playlist.h"
#include "vlc_playlist.h"
# ifdef __cplusplus
# ifdef __cplusplus
...
...
include/vlc_codec.h
View file @
53b4094f
...
@@ -23,8 +23,6 @@
...
@@ -23,8 +23,6 @@
#ifndef _VLC_CODEC_H
#ifndef _VLC_CODEC_H
#define _VLC_CODEC_H 1
#define _VLC_CODEC_H 1
#include "ninput.h"
/**
/**
* \file
* \file
* This file defines the structure and types used by decoders and encoders
* This file defines the structure and types used by decoders and encoders
...
...
include/vlc_objects.h
View file @
53b4094f
...
@@ -51,6 +51,7 @@
...
@@ -51,6 +51,7 @@
#define VLC_OBJECT_ANNOUNCE (-17)
#define VLC_OBJECT_ANNOUNCE (-17)
#define VLC_OBJECT_DEMUX (-18)
#define VLC_OBJECT_DEMUX (-18)
#define VLC_OBJECT_ACCESS (-19)
#define VLC_OBJECT_ACCESS (-19)
#define VLC_OBJECT_STREAM (-20)
#define VLC_OBJECT_GENERIC (-666)
#define VLC_OBJECT_GENERIC (-666)
...
...
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