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
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 @@
* decoder.h: header for vlc decoders
*****************************************************************************
* 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
* it under the terms of the GNU General Public License as published by
...
...
@@ -35,8 +35,6 @@ extern "C" {
* Required internal headers
*****************************************************************************/
#include "vlc_block.h"
#include "stream_control.h"
#include "input_ext-dec.h"
#include "vlc_video.h"
#include "audio_output.h"
#include "vlc_codec.h"
...
...
include/vlc/input.h
View file @
53b4094f
...
...
@@ -2,7 +2,7 @@
* input.h: input modules header for vlc
*****************************************************************************
* 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
* it under the terms of the GNU General Public License as published by
...
...
@@ -35,11 +35,15 @@ extern "C" {
* Required internal headers
*****************************************************************************/
#include "vlc_block.h"
#include "stream_control.h"
#include "input_ext-intf.h"
/* input_thread_s */
#include "input_ext-dec.h"
/* data_packet_s */
#include "input_ext-plugins.h"
#include "ninput.h"
#include "vlc_es.h"
#include "vlc_es_out.h"
#include "vlc_input.h"
#include "vlc_access.h"
#include "vlc_stream.h"
#include "vlc_demux.h"
# ifdef __cplusplus
}
...
...
include/vlc/intf.h
View file @
53b4094f
...
...
@@ -35,9 +35,8 @@ extern "C" {
* Required internal headers
*****************************************************************************/
#include "vlc_interface.h"
#include "vlc_input.h"
#include "intf_eject.h"
#include "stream_control.h"
#include "input_ext-intf.h"
#include "vlc_playlist.h"
# ifdef __cplusplus
...
...
include/vlc_codec.h
View file @
53b4094f
...
...
@@ -23,8 +23,6 @@
#ifndef _VLC_CODEC_H
#define _VLC_CODEC_H 1
#include "ninput.h"
/**
* \file
* This file defines the structure and types used by decoders and encoders
...
...
include/vlc_objects.h
View file @
53b4094f
...
...
@@ -51,6 +51,7 @@
#define VLC_OBJECT_ANNOUNCE (-17)
#define VLC_OBJECT_DEMUX (-18)
#define VLC_OBJECT_ACCESS (-19)
#define VLC_OBJECT_STREAM (-20)
#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