2006-09-10 16:02:42 +02:00
/*
* video processing hooks
* copyright ( c ) 2000 , 2001 Fabrice Bellard
*
2006-10-07 17:30:46 +02:00
* This file is part of FFmpeg .
*
* FFmpeg is free software ; you can redistribute it and / or
2006-09-10 16:02:42 +02:00
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation ; either
2006-10-07 17:30:46 +02:00
* version 2.1 of the License , or ( at your option ) any later version .
2006-09-10 16:02:42 +02:00
*
2006-10-07 17:30:46 +02:00
* FFmpeg is distributed in the hope that it will be useful ,
2006-09-10 16:02:42 +02:00
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
2006-10-07 17:30:46 +02:00
* License along with FFmpeg ; if not , write to the Free Software
2006-09-10 16:02:42 +02:00
* Foundation , Inc . , 51 Franklin Street , Fifth Floor , Boston , MA 02110 - 1301 USA
*/
2002-11-20 04:00:27 +01:00
# ifndef _FRAMEHOOK_H
# define _FRAMEHOOK_H
2007-04-12 13:28:34 +02:00
# warning VHOOK is deprecated. Please help porting libmpcodecs or a better filter system to FFmpeg instead of wasting your time writing new filters for this crappy one.
2007-03-26 20:01:26 +02:00
2002-11-20 04:00:27 +01:00
/*
2005-12-17 19:14:38 +01:00
* Prototypes for interface to . so that implement a video processing hook
2002-11-20 04:00:27 +01:00
*/
# include "avcodec.h"
/* Function must be called 'Configure' */
2002-11-30 18:16:32 +01:00
typedef int ( FrameHookConfigure ) ( void * * ctxp , int argc , char * argv [ ] ) ;
typedef FrameHookConfigure * FrameHookConfigureFn ;
extern FrameHookConfigure Configure ;
2002-11-20 04:00:27 +01:00
/* Function must be called 'Process' */
2003-02-11 17:35:48 +01:00
typedef void ( FrameHookProcess ) ( void * ctx , struct AVPicture * pict , enum PixelFormat pix_fmt , int width , int height , int64_t pts ) ;
2002-11-30 18:16:32 +01:00
typedef FrameHookProcess * FrameHookProcessFn ;
extern FrameHookProcess Process ;
/* Function must be called 'Release' */
typedef void ( FrameHookRelease ) ( void * ctx ) ;
typedef FrameHookRelease * FrameHookReleaseFn ;
extern FrameHookRelease Release ;
2002-11-20 04:00:27 +01:00
extern int frame_hook_add ( int argc , char * argv [ ] ) ;
2007-03-29 07:24:35 +02:00
extern void frame_hook_process ( struct AVPicture * pict , enum PixelFormat pix_fmt , int width , int height , int64_t pts ) ;
2004-03-25 00:32:48 +01:00
extern void frame_hook_release ( void ) ;
2002-11-20 04:00:27 +01:00
# endif