summaryrefslogtreecommitdiffstats
path: root/libhb/handbrake/handbrake.h
diff options
context:
space:
mode:
Diffstat (limited to 'libhb/handbrake/handbrake.h')
-rw-r--r--libhb/handbrake/handbrake.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/libhb/handbrake/handbrake.h b/libhb/handbrake/handbrake.h
new file mode 100644
index 000000000..6143316d5
--- /dev/null
+++ b/libhb/handbrake/handbrake.h
@@ -0,0 +1,145 @@
+/* handbrake.h
+
+ Copyright (c) 2003-2019 HandBrake Team
+ This file is part of the HandBrake source code
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License v2.
+ For full terms see the file COPYING file or visit http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+#ifndef HB_HB_H
+#define HB_HB_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "handbrake/common.h"
+#include "handbrake/project.h"
+#include "handbrake/compat.h"
+#include "handbrake/hb_json.h"
+#include "handbrake/preset.h"
+#include "handbrake/plist.h"
+#include "handbrake/param.h"
+#include "handbrake/colormap.h"
+
+/* hb_init()
+ Initializes a libhb session (launches his own thread, detects CPUs,
+ etc) */
+#define HB_DEBUG_NONE 0
+#define HB_DEBUG_ALL 1
+void hb_register( hb_work_object_t * );
+void hb_register_logger( void (*log_cb)(const char* message) );
+hb_handle_t * hb_init( int verbose );
+void hb_log_level_set(hb_handle_t *h, int level);
+
+/* hb_get_version() */
+const char * hb_get_full_description(void);
+const char * hb_get_version( hb_handle_t * );
+int hb_get_build( hb_handle_t * );
+
+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 preview_count,
+ int store_previews, uint64_t min_duration );
+void hb_scan_stop( hb_handle_t * );
+void hb_force_rescan( hb_handle_t * );
+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_get_title_set()
+ Returns the title set which contains a list of valid titles detected
+ by the latest scan and title set data. */
+hb_title_set_t * hb_get_title_set( 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 color_equal, int color_diff, int threshold, int prog_equal, int prog_diff, int prog_threshold );
+
+// JJJ: title->job?
+int hb_save_preview( hb_handle_t * h, int title, int preview,
+ hb_buffer_t *buf );
+hb_buffer_t * hb_read_preview( hb_handle_t * h, hb_title_t *title,
+ int preview );
+hb_image_t * hb_get_preview2(hb_handle_t * h, int title_idx, int picture,
+ hb_geometry_settings_t *geo, int deinterlace);
+void hb_set_anamorphic_size2(hb_geometry_t *src_geo,
+ hb_geometry_settings_t *geo,
+ hb_geometry_t *result);
+void hb_add_filter_dict( hb_job_t * job, hb_filter_object_t * filter,
+ const hb_dict_t * settings_in );
+void hb_add_filter( hb_job_t * job, hb_filter_object_t * filter,
+ const char * settings );
+void hb_add_filter2( hb_value_array_t * list, hb_dict_t * filter );
+
+/* Handling jobs */
+int hb_count( hb_handle_t * );
+hb_job_t * hb_job( hb_handle_t *, int );
+int hb_add( hb_handle_t *, hb_job_t * );
+void hb_rem( hb_handle_t *, hb_job_t * );
+
+hb_title_t * hb_find_title_by_index( hb_handle_t *h, int title_index );
+hb_job_t * hb_job_init_by_index( hb_handle_t *h, int title_index );
+hb_job_t * hb_job_init( hb_title_t * title );
+void hb_job_close( hb_job_t ** job );
+
+void hb_start( hb_handle_t * );
+void hb_pause( hb_handle_t * );
+void hb_resume( hb_handle_t * );
+void hb_stop( hb_handle_t * );
+
+void hb_system_sleep_allow(hb_handle_t*);
+void hb_system_sleep_prevent(hb_handle_t*);
+
+/* Persistent data between jobs. */
+typedef struct hb_interjob_s
+{
+ int sequence_id; /* job->sequence_id */
+ int frame_count; /* number of frames counted by sync */
+ int out_frame_count; /* number of frames counted by render */
+ int64_t total_time; /* measured length in 90kHz ticks */
+ hb_rational_t vrate; /* measured output vrate */
+
+ 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_close()
+ Aborts all current jobs if any, frees memory. */
+void hb_close( hb_handle_t ** );
+
+/* hb_global_init()
+ Performs process initialization. */
+int hb_global_init(void);
+int hb_global_init_no_hardware(void);
+/* hb_global_close()
+ Performs final cleanup for the process. */
+void hb_global_close(void);
+
+/* 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 );
+
+int is_hardware_disabled(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif