00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef VLC_IMAGE_H
00025 #define VLC_IMAGE_H 1
00026
00027
00028
00029
00030
00031
00032 #include <vlc_vout.h>
00033
00034 # ifdef __cplusplus
00035 extern "C" {
00036 # endif
00037
00038 struct image_handler_t
00039 {
00040 picture_t * (*pf_read) ( image_handler_t *, block_t *,
00041 video_format_t *, video_format_t * );
00042 picture_t * (*pf_read_url) ( image_handler_t *, const char *,
00043 video_format_t *, video_format_t * );
00044 block_t * (*pf_write) ( image_handler_t *, picture_t *,
00045 video_format_t *, video_format_t * );
00046 int (*pf_write_url) ( image_handler_t *, picture_t *,
00047 video_format_t *, video_format_t *,
00048 const char * );
00049
00050 picture_t * (*pf_convert) ( image_handler_t *, picture_t *,
00051 video_format_t *, video_format_t * );
00052 picture_t * (*pf_filter) ( image_handler_t *, picture_t *,
00053 video_format_t *, const char * );
00054
00055
00056 vlc_object_t *p_parent;
00057 decoder_t *p_dec;
00058 encoder_t *p_enc;
00059 filter_t *p_filter;
00060 };
00061
00062 VLC_API image_handler_t * image_HandlerCreate( vlc_object_t * ) VLC_USED;
00063 #define image_HandlerCreate( a ) image_HandlerCreate( VLC_OBJECT(a) )
00064 VLC_API void image_HandlerDelete( image_handler_t * );
00065
00066 #define image_Read( a, b, c, d ) a->pf_read( a, b, c, d )
00067 #define image_ReadUrl( a, b, c, d ) a->pf_read_url( a, b, c, d )
00068 #define image_Write( a, b, c, d ) a->pf_write( a, b, c, d )
00069 #define image_WriteUrl( a, b, c, d, e ) a->pf_write_url( a, b, c, d, e )
00070 #define image_Convert( a, b, c, d ) a->pf_convert( a, b, c, d )
00071 #define image_Filter( a, b, c, d ) a->pf_filter( a, b, c, d )
00072
00073 VLC_API vlc_fourcc_t image_Type2Fourcc( const char *psz_name );
00074 VLC_API vlc_fourcc_t image_Ext2Fourcc( const char *psz_name );
00075 VLC_API vlc_fourcc_t image_Mime2Fourcc( const char *psz_mime );
00076
00077 # ifdef __cplusplus
00078 }
00079 # endif
00080
00081 #endif