diff options
author | jbrjake <[email protected]> | 2007-07-27 14:55:58 +0000 |
---|---|---|
committer | jbrjake <[email protected]> | 2007-07-27 14:55:58 +0000 |
commit | 5a4a250000ce8735639503aac2ee29def935865d (patch) | |
tree | d7efc0e7e44e06e80ba67827e137c970ac02743e /libhb/common.h | |
parent | 50c3c15c88172bb00dd787e39ce66eb11480717d (diff) |
This huge patch from huevos_rancheros ports a number of video filters from mencoder to HandBrake: yadif+mcdeint, hqdn3d, pp7, and pullup+softskip+harddup. What this means is that HB now has stateless inverse telecine, temporal denoising, and motion-adaptive deinterlacing!
HandBrake is growing up =)
Thank you, huevos_rancheros!
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@749 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/common.h')
-rw-r--r-- | libhb/common.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libhb/common.h b/libhb/common.h index 81988de3d..de56a5c63 100644 --- a/libhb/common.h +++ b/libhb/common.h @@ -43,6 +43,8 @@ typedef struct hb_state_s hb_state_t; typedef union hb_esconfig_u hb_esconfig_t; typedef struct hb_work_private_s hb_work_private_t; typedef struct hb_work_object_s hb_work_object_t; +typedef struct hb_filter_private_s hb_filter_private_t; +typedef struct hb_filter_object_s hb_filter_object_t; typedef struct hb_buffer_s hb_buffer_t; typedef struct hb_fifo_s hb_fifo_t; typedef struct hb_lock_s hb_lock_t; @@ -126,6 +128,7 @@ struct hb_job_s int crop[4]; int deinterlace; + hb_list_t * filters; int width; int height; int keep_ratio; @@ -516,4 +519,33 @@ extern hb_work_object_t hb_encfaac; extern hb_work_object_t hb_enclame; extern hb_work_object_t hb_encvorbis; +#define FILTER_OK 0 +#define FILTER_DELAY 1 +#define FILTER_FAILED 2 +#define FILTER_DROP 3 + +struct hb_filter_object_s +{ + int id; + char * name; + char * settings; + +#ifdef __LIBHB__ + hb_filter_private_t* (* init) ( int, int, int, char * ); + + int (* work) ( const hb_buffer_t *, hb_buffer_t **, + int, int, int, hb_filter_private_t * ); + + void (* close) ( hb_filter_private_t * ); + + hb_filter_private_t * private_data; + //hb_buffer_t * buffer; +#endif +}; + +extern hb_filter_object_t hb_filter_detelecine; +extern hb_filter_object_t hb_filter_deinterlace; +extern hb_filter_object_t hb_filter_deblock; +extern hb_filter_object_t hb_filter_denoise; + #endif |