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 #include "vlc_video.h"
00028
00029 # ifdef __cplusplus
00030 extern "C" {
00031 # endif
00032
00033 struct image_handler_t
00034 {
00035 picture_t * (*pf_read) ( image_handler_t *, block_t *,
00036 video_format_t *, video_format_t * );
00037 picture_t * (*pf_read_url) ( image_handler_t *, const char *,
00038 video_format_t *, video_format_t * );
00039 block_t * (*pf_write) ( image_handler_t *, picture_t *,
00040 video_format_t *, video_format_t * );
00041 int (*pf_write_url) ( image_handler_t *, picture_t *,
00042 video_format_t *, video_format_t *, const char * );
00043
00044 picture_t * (*pf_convert) ( image_handler_t *, picture_t *,
00045 video_format_t *, video_format_t * );
00046 picture_t * (*pf_filter) ( image_handler_t *, picture_t *,
00047 video_format_t *, const char * );
00048
00049
00050 vlc_object_t *p_parent;
00051 decoder_t *p_dec;
00052 encoder_t *p_enc;
00053 filter_t *p_filter;
00054 };
00055
00056 VLC_EXPORT( image_handler_t *, __image_HandlerCreate, ( vlc_object_t * ) );
00057 #define image_HandlerCreate( a ) __image_HandlerCreate( VLC_OBJECT(a) )
00058 VLC_EXPORT( void, image_HandlerDelete, ( image_handler_t * ) );
00059
00060 #define image_Read( a, b, c, d ) a->pf_read( a, b, c, d )
00061 #define image_ReadUrl( a, b, c, d ) a->pf_read_url( a, b, c, d )
00062 #define image_Write( a, b, c, d ) a->pf_write( a, b, c, d )
00063 #define image_WriteUrl( a, b, c, d, e ) a->pf_write_url( a, b, c, d, e )
00064 #define image_Convert( a, b, c, d ) a->pf_convert( a, b, c, d )
00065 #define image_Filter( a, b, c, d ) a->pf_filter( a, b, c, d )
00066
00067 # ifdef __cplusplus
00068 }
00069 # endif
00070
00071 #endif