stream.h

Go to the documentation of this file.
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
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines