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