X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=libhb%2Fhb.h;h=d3e2b5d8a5c529739238aa6f054f4f2e2a69d099;hb=32219d93ec8fcf0db6f7ca5d6045419882563951;hp=7a1ab7ea8990f93cf12ffea88c1655e64a316545;hpb=e079666dc17d24570146684a59843f5d1f1a282b;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/libhb/hb.h b/libhb/hb.h index 7a1ab7ea..d3e2b5d8 100644 --- a/libhb/hb.h +++ b/libhb/hb.h @@ -1,9 +1,3 @@ -/* $Id: hb.h,v 1.12 2005/03/29 09:40:28 titer Exp $ - - This file is part of the HandBrake source code. - Homepage: . - It may be used under the terms of the GNU General Public License. */ - #ifndef HB_HB_H #define HB_HB_H @@ -11,6 +5,7 @@ extern "C" { #endif +#include "project.h" #include "common.h" /* hb_init() @@ -19,36 +14,9 @@ extern "C" { #define HB_DEBUG_NONE 0 #define HB_DEBUG_ALL 1 void hb_register( hb_work_object_t * ); -hb_handle_t * hb_init_real( int verbose, int update_check ); - -#define hb_init(v,u) \ -hb_init_real( v, u ); \ -hb_register( &hb_sync ); \ -hb_register( &hb_decmpeg2 ); \ -hb_register( &hb_decsub ); \ -hb_register( &hb_render ); \ -hb_register( &hb_encavcodec ); \ -hb_register( &hb_encxvid ); \ -hb_register( &hb_encx264 ); \ -hb_register( &hb_deca52 ); \ -hb_register( &hb_decavcodec ); \ -hb_register( &hb_declpcm ); \ -hb_register( &hb_encfaac ); \ -hb_register( &hb_enclame ); \ -hb_register( &hb_encvorbis ); \ - -#define hb_init_express(v,u) \ -hb_init_real( v, u ); \ -hb_register( &hb_sync ); \ -hb_register( &hb_decmpeg2 ); \ -hb_register( &hb_decsub ); \ -hb_register( &hb_render ); \ -hb_register( &hb_encavcodec ); \ -hb_register( &hb_encx264 ); \ -hb_register( &hb_deca52 ); \ -hb_register( &hb_decavcodec ); \ -hb_register( &hb_declpcm ); \ -hb_register( &hb_encfaac ); \ +void hb_register_logger( void (*log_cb)(const char* message) ); +hb_handle_t * hb_init( int verbose, int update_check ); +hb_handle_t * hb_init_dl ( int verbose, int update_check ); // hb_init for use with dylib /* hb_get_version() */ char * hb_get_version( hb_handle_t * ); @@ -66,22 +34,44 @@ int hb_check_update( hb_handle_t * h, char ** version ); ports.h) */ void hb_set_cpu_count( hb_handle_t *, int ); +char * hb_dvd_name( char * path ); +void hb_dvd_set_dvdnav( int enable ); + /* hb_scan() Scan the specified path. Can be a DVD device, a VIDEO_TS folder or a VOB file. If title_index is 0, scan all titles. */ void hb_scan( hb_handle_t *, const char * path, - int title_index ); + int title_index, int preview_count, + int store_previews ); +void hb_scan_stop( hb_handle_t * ); +hb_filter_object_t * hb_get_filter_object(int filter_id, const char * settings); +uint64_t hb_first_duration( hb_handle_t * ); /* hb_get_titles() Returns the list of valid titles detected by the latest scan. */ hb_list_t * hb_get_titles( hb_handle_t * ); +/* hb_detect_comb() + Analyze a frame for interlacing artifacts, returns true if they're found. + Taken from Thomas Oestreich's 32detect filter in the Transcode project. */ +int hb_detect_comb( hb_buffer_t * buf, int width, int height, int color_equal, int color_diff, int threshold, int prog_equal, int prog_diff, int prog_threshold ); + +void hb_get_preview_by_index( hb_handle_t *, int, int, uint8_t * ); void hb_get_preview( hb_handle_t *, hb_title_t *, int, uint8_t * ); +void hb_set_size( hb_job_t *, double ratio, int pixels ); +void hb_set_anamorphic_size_by_index( hb_handle_t *, int, + int *output_width, int *output_height, + int *output_par_width, int *output_par_height ); +void hb_set_anamorphic_size( hb_job_t *, + int *output_width, int *output_height, + int *output_par_width, int *output_par_height ); /* Handling jobs */ int hb_count( hb_handle_t * ); hb_job_t * hb_job( hb_handle_t *, int ); +void hb_set_chapter_name( hb_handle_t *, int, int, const char * ); +void hb_set_job( hb_handle_t *, int, hb_job_t * ); void hb_add( hb_handle_t *, hb_job_t * ); void hb_rem( hb_handle_t *, hb_job_t * ); @@ -90,15 +80,42 @@ void hb_pause( hb_handle_t * ); void hb_resume( hb_handle_t * ); void hb_stop( hb_handle_t * ); +/* Persistent data between jobs. */ +typedef struct hb_interjob_s +{ + int last_job; /* job->sequence_id & 0xFFFFFF */ + int frame_count; /* number of frames counted by sync */ + uint64_t total_time; /* real length in 90khz (i.e. / 90000 */ + int render_dropped; /* frames droped by telecine */ + int vrate; /* initial assigned vrate */ + int vrate_base; /* initial assigned vrate_base */ + + hb_subtitle_t *select_subtitle; /* foreign language scan subtitle */ +} hb_interjob_t; + +hb_interjob_t * hb_interjob_get( hb_handle_t * ); + /* hb_get_state() Should be regularly called by the UI (like 5 or 10 times a second). Look at test/test.c to see how to use it. */ void hb_get_state( hb_handle_t *, hb_state_t * ); +void hb_get_state2( hb_handle_t *, hb_state_t * ); +/* hb_get_scancount() is called by the MacGui in UpdateUI to + check for a new scan during HB_STATE_WORKING phase */ +int hb_get_scancount( hb_handle_t * ); /* hb_close() Aborts all current jobs if any, frees memory. */ void hb_close( hb_handle_t ** ); +/* hb_global_close() + Performs final cleanup for the process. */ +void hb_global_close(); + +/* hb_get_instance_id() + Return the unique instance id of an libhb instance created by hb_init. */ +int hb_get_instance_id( hb_handle_t * h ); + #ifdef __cplusplus } #endif