00001 /***************************************************************************** 00002 * stream.h: Input stream functions 00003 ***************************************************************************** 00004 * Copyright (C) 1998-2008 the VideoLAN team 00005 * Copyright (C) 2008 Laurent Aimar 00006 * $Id$ 00007 * 00008 * Authors: Laurent Aimar <fenrir@via.ecp.fr> 00009 * 00010 * This program is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version. 00014 * 00015 * This program is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public License 00021 * along with this program; if not, write to the Free Software 00022 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 00023 *****************************************************************************/ 00024 00025 #if defined(__PLUGIN__) || defined(__BUILTIN__) || !defined(__LIBVLC__) 00026 # error This header file can only be included from LibVLC. 00027 #endif 00028 00029 #ifndef _INPUT_STREAM_H 00030 #define _INPUT_STREAM_H 1 00031 00032 #include <vlc_common.h> 00033 #include <vlc_stream.h> 00034 00035 struct stream_text_t 00036 { 00037 /* UTF-16 and UTF-32 file reading */ 00038 vlc_iconv_t conv; 00039 int i_char_width; 00040 bool b_little_endian; 00041 }; 00042 00043 /* */ 00044 stream_t *stream_CommonNew( vlc_object_t * ); 00045 void stream_CommonDelete( stream_t * ); 00046 00047 /** 00048 * This function creates a stream_t from a provided access_t. 00049 * 00050 * An optional NULL terminated list of file may be provided. The content 00051 * of these extra files will be concatenated after to the main access. 00052 * 00053 * XXX ppsz_list is treated as const (I failed to avoid a warning when 00054 * using const keywords for pointer of pointers) 00055 */ 00056 stream_t *stream_AccessNew( access_t *p_access, char **ppsz_list ); 00057 00058 /** 00059 * This function creates a new stream_t filter. 00060 * 00061 * You must release it using stream_Delete unless it is used as a 00062 * source to another filter. 00063 */ 00064 stream_t *stream_FilterNew( stream_t *p_source, 00065 const char *psz_stream_filter ); 00066 00067 /** 00068 * This function creates a chain of filters: 00069 * - first, automatic probed stream filters are inserted. 00070 * - then, optional user filters (configured by psz_chain) are inserted. 00071 * - finaly, an optional record filter is inserted if b_record is true. 00072 * 00073 * You must release the returned value using stream_Delete unless it is used as a 00074 * source to another filter. 00075 */ 00076 stream_t *stream_FilterChainNew( stream_t *p_source, 00077 const char *psz_chain, 00078 bool b_record ); 00079 #endif 00080
1.5.6