diff options
Diffstat (limited to 'win/CS/HandBrake.Interop/Interop/HbLib/Wrappers')
-rw-r--r-- | win/CS/HandBrake.Interop/Interop/HbLib/Wrappers/HbFunctionsDirect.cs | 501 | ||||
-rw-r--r-- | win/CS/HandBrake.Interop/Interop/HbLib/Wrappers/Interfaces/IHbFunctions.cs | 215 |
2 files changed, 716 insertions, 0 deletions
diff --git a/win/CS/HandBrake.Interop/Interop/HbLib/Wrappers/HbFunctionsDirect.cs b/win/CS/HandBrake.Interop/Interop/HbLib/Wrappers/HbFunctionsDirect.cs new file mode 100644 index 000000000..3bb0530a0 --- /dev/null +++ b/win/CS/HandBrake.Interop/Interop/HbLib/Wrappers/HbFunctionsDirect.cs @@ -0,0 +1,501 @@ +// -------------------------------------------------------------------------------------------------------------------- +// <copyright file="IHbFunctions.cs" company="HandBrake Project (http://handbrake.fr)"> +// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. +// </copyright> +// <summary> +// An interface to access the native libhb functions without using static methods. +// </summary> +// <auto-generated> Disable Stylecop Warnings for this file </auto-generated> +// -------------------------------------------------------------------------------------------------------------------- + +namespace HandBrake.Interop.Interop.HbLib.Wrappers +{ + using System; + using System.Runtime.InteropServices; + + using HandBrake.Interop.Interop.HbLib.Wrappers.Interfaces; + + public class HbFunctionsDirect : IHbFunctions + { + public void hb_register_logger(LoggingCallback callback) + { + HBFunctions.hb_register_logger(callback); + } + + public void hb_register_error_handler(LoggingCallback callback) + { + HBFunctions.hb_register_error_handler(callback); + } + + public int hb_global_init() + { + return HBFunctions.hb_global_init(); + } + + public int hb_global_init_no_hardware() + { + return HBFunctions.hb_global_init_no_hardware(); + } + + public IntPtr hb_init(int verbose, int update_check) + { + return HBFunctions.hb_init(verbose, update_check); + } + + public IntPtr hb_init_dl(int verbose, int update_check) + { + return HBFunctions.hb_init_dl(verbose, update_check); + } + + public IntPtr hb_get_version(IntPtr hbHandle) + { + return HBFunctions.hb_get_version(hbHandle); + } + + public int hb_get_build(IntPtr hbHandle) + { + return HBFunctions.hb_get_build(hbHandle); + } + + public IntPtr hb_dvd_name(IntPtr path) + { + return HBFunctions.hb_dvd_name(path); + } + + public void hb_dvd_set_dvdnav(int enable) + { + HBFunctions.hb_dvd_set_dvdnav(enable); + } + + public void hb_scan(IntPtr hbHandle, IntPtr path, int title_index, int preview_count, int store_previews, ulong min_duration) + { + HBFunctions.hb_scan(hbHandle, path, title_index, preview_count, store_previews, min_duration); + } + + public void hb_scan_stop(IntPtr hbHandle) + { + HBFunctions.hb_scan_stop(hbHandle); + } + + public IntPtr hb_get_titles(IntPtr hbHandle) + { + return HBFunctions.hb_get_titles(hbHandle); + } + + public void hb_set_anamorphic_size2(ref hb_geometry_s sourceGeometry, ref hb_geometry_settings_s uiGeometry, ref hb_geometry_s result) + { + HBFunctions.hb_set_anamorphic_size2(ref sourceGeometry, ref uiGeometry, ref result); + } + + public int hb_count(IntPtr hbHandle) + { + return HBFunctions.hb_count(hbHandle); + } + + public IntPtr hb_job(IntPtr hbHandle, int jobIndex) + { + return HBFunctions.hb_job(hbHandle, jobIndex); + } + + public void hb_rem(IntPtr hbHandle, IntPtr job) + { + HBFunctions.hb_rem(hbHandle, job); + } + + public void hb_start(IntPtr hbHandle) + { + HBFunctions.hb_start(hbHandle); + } + + public void hb_pause(IntPtr hbHandle) + { + HBFunctions.hb_pause(hbHandle); + } + + public void hb_resume(IntPtr hbHandle) + { + HBFunctions.hb_resume(hbHandle); + } + + public void hb_stop(IntPtr hbHandle) + { + HBFunctions.hb_stop(hbHandle); + } + + public void hb_close(IntPtr hbHandle) + { + HBFunctions.hb_close(hbHandle); + } + + public void hb_global_close() + { + HBFunctions.hb_global_close(); + } + + public IntPtr hb_list_init() + { + return HBFunctions.hb_list_init(); + } + + public int hb_list_count(IntPtr listPtr) + { + return HBFunctions.hb_list_count(listPtr); + } + + public void hb_list_add(IntPtr listPtr, IntPtr item) + { + HBFunctions.hb_list_add(listPtr, item); + } + + public void hb_list_insert(IntPtr listPtr, int pos, IntPtr item) + { + HBFunctions.hb_list_insert(listPtr, pos, item); + } + + public void hb_list_rem(IntPtr listPtr, IntPtr item) + { + HBFunctions.hb_list_rem(listPtr, item); + } + + public IntPtr hb_list_item(IntPtr listPtr, int itemIndex) + { + return HBFunctions.hb_list_item(listPtr, itemIndex); + } + + public void hb_list_close(IntPtr listPtrPtr) + { + HBFunctions.hb_list_close(listPtrPtr); + } + + public int hb_subtitle_can_force(int source) + { + return HBFunctions.hb_subtitle_can_force(source); + } + + public int hb_subtitle_can_burn(int source) + { + return HBFunctions.hb_subtitle_can_burn(source); + } + + public int hb_subtitle_can_pass(int source, int mux) + { + return HBFunctions.hb_subtitle_can_pass(source, mux); + } + + public int hb_video_framerate_get_from_name(IntPtr name) + { + return HBFunctions.hb_video_framerate_get_from_name(name); + } + + public IntPtr hb_video_framerate_get_next(IntPtr last) + { + return HBFunctions.hb_video_framerate_get_next(last); + } + + public IntPtr hb_audio_samplerate_get_next(IntPtr last) + { + return HBFunctions.hb_audio_samplerate_get_next(last); + } + + public int hb_audio_samplerate_find_closest(int samplerate, uint codec) + { + return HBFunctions.hb_audio_samplerate_find_closest(samplerate, codec); + } + + public int hb_audio_bitrate_get_best(uint codec, int bitrate, int samplerate, int mixdown) + { + return HBFunctions.hb_audio_bitrate_get_best(codec, bitrate, samplerate, mixdown); + } + + public int hb_audio_bitrate_get_default(uint codec, int samplerate, int mixdown) + { + return HBFunctions.hb_audio_bitrate_get_default(codec, samplerate, mixdown); + } + + public int hb_audio_bitrate_get_limits(uint codec, int samplerate, int mixdown, ref int low, ref int high) + { + return HBFunctions.hb_audio_bitrate_get_limits(codec, samplerate, mixdown, ref low, ref high); + } + + public IntPtr hb_audio_bitrate_get_next(IntPtr last) + { + return HBFunctions.hb_audio_bitrate_get_next(last); + } + + public void hb_video_quality_get_limits(uint codec, ref float low, ref float high, ref float granularity, ref int direction) + { + HBFunctions.hb_video_quality_get_limits(codec, ref low, ref high, ref granularity, ref direction); + } + + public IntPtr hb_video_quality_get_name(uint codec) + { + return HBFunctions.hb_video_quality_get_name(codec); + } + + public void hb_audio_quality_get_limits(uint codec, ref float low, ref float high, ref float granularity, ref int direction) + { + HBFunctions.hb_audio_quality_get_limits(codec, ref low, ref high, ref granularity, ref direction); + } + + public float hb_audio_quality_get_default(uint codec) + { + return HBFunctions.hb_audio_quality_get_default(codec); + } + + public void hb_audio_compression_get_limits(uint codec, ref float low, ref float high, ref float granularity, ref int direction) + { + HBFunctions.hb_audio_compression_get_limits(codec, ref low, ref high, ref granularity, ref direction); + } + + public float hb_audio_compression_get_default(uint codec) + { + return HBFunctions.hb_audio_compression_get_default(codec); + } + + public int hb_audio_can_apply_drc2(IntPtr handle, int title_index, int audio_index, int encoder) + { + return HBFunctions.hb_audio_can_apply_drc2(handle, title_index, audio_index, encoder); + } + + public int hb_mixdown_is_supported(int mixdown, uint codec, ulong layout) + { + return HBFunctions.hb_mixdown_is_supported(mixdown, codec, layout); + } + + public int hb_mixdown_has_codec_support(int mixdown, uint codec) + { + return HBFunctions.hb_mixdown_has_codec_support(mixdown, codec); + } + + public int hb_mixdown_has_remix_support(int mixdown, ulong layout) + { + return HBFunctions.hb_mixdown_has_remix_support(mixdown, layout); + } + + public int hb_mixdown_get_best(uint codec, ulong layout, int mixdown) + { + return HBFunctions.hb_mixdown_get_best(codec, layout, mixdown); + } + + public int hb_mixdown_get_default(uint codec, ulong layout) + { + return HBFunctions.hb_mixdown_get_default(codec, layout); + } + + public IntPtr hb_mixdown_get_next(IntPtr last) + { + return HBFunctions.hb_mixdown_get_next(last); + } + + public IntPtr hb_video_encoder_get_next(IntPtr last) + { + return HBFunctions.hb_video_encoder_get_next(last); + } + + public IntPtr hb_audio_encoder_get_next(IntPtr last) + { + return HBFunctions.hb_audio_encoder_get_next(last); + } + + public IntPtr hb_container_get_next(IntPtr last) + { + return HBFunctions.hb_container_get_next(last); + } + + public IntPtr hb_video_encoder_get_presets(int encoder) + { + return HBFunctions.hb_video_encoder_get_presets(encoder); + } + + public IntPtr hb_video_encoder_get_tunes(int encoder) + { + return HBFunctions.hb_video_encoder_get_tunes(encoder); + } + + public IntPtr hb_video_encoder_get_profiles(int encoder) + { + return HBFunctions.hb_video_encoder_get_profiles(encoder); + } + + public IntPtr hb_video_encoder_get_levels(int encoder) + { + return HBFunctions.hb_video_encoder_get_levels(encoder); + } + + public IntPtr lang_get_next(IntPtr last) + { + return HBFunctions.lang_get_next(last); + } + + public IntPtr lang_for_code2([In] [MarshalAs(UnmanagedType.LPStr)] string code2) + { + return HBFunctions.lang_for_code2(code2); + } + + public void hb_job_close(IntPtr job) + { + HBFunctions.hb_job_close(job); + } + + public IntPtr hb_filter_get_keys(int filter_id) + { + return HBFunctions.hb_filter_get_keys(filter_id); + } + + public IntPtr hb_x264_encopt_name(IntPtr name) + { + return HBFunctions.hb_x264_encopt_name(name); + } + + public int hb_check_h264_level( + [In] [MarshalAs(UnmanagedType.LPStr)] string level, + int width, + int height, + int fps_num, + int fps_den, + int interlaced, + int fake_interlaced) + { + return HBFunctions.hb_check_h264_level( + level, + width, + height, + fps_num, + fps_den, + interlaced, + fake_interlaced); + } + + public IntPtr hb_x264_param_unparse( + int bit_depth, + [In] [MarshalAs(UnmanagedType.LPStr)] string x264_preset, + [In] [MarshalAs(UnmanagedType.LPStr)] string x264_tune, + [In] [MarshalAs(UnmanagedType.LPStr)] string x264_encopts, + [In] [MarshalAs(UnmanagedType.LPStr)] string x264_profile, + [In] [MarshalAs(UnmanagedType.LPStr)] string h264_level, + int width, + int height) + { + return HBFunctions.hb_x264_param_unparse( + bit_depth, + x264_preset, + x264_tune, + x264_encopts, + x264_profile, + h264_level, + width, + height); + } + + public int hb_qsv_available() + { + return HBFunctions.hb_qsv_available(); + } + + public int hb_vce_h264_available() + { + return HBFunctions.hb_vce_h264_available(); + } + + public int hb_vce_h265_available() + { + return HBFunctions.hb_vce_h265_available(); + } + + public int hb_nvenc_h264_available() + { + return HBFunctions.hb_nvenc_h264_available(); + } + + public int hb_nvenc_h265_available() + { + return HBFunctions.hb_nvenc_h265_available(); + } + + public IntPtr hb_get_preview2(IntPtr hbHandle, int title_idx, int preview_idx, ref hb_geometry_settings_s geo, int deinterlace) + { + return HBFunctions.hb_get_preview2(hbHandle, title_idx, preview_idx, ref geo, deinterlace); + } + + public IntPtr hb_image_close(IntPtr image) + { + return HBFunctions.hb_image_close(image); + } + + /* JSON API */ + + public IntPtr hb_get_title_set_json(IntPtr hbHandle) + { + return HBFunctions.hb_get_title_set_json(hbHandle); + } + + public IntPtr hb_job_init_json(IntPtr hbHandle, int title_index) + { + return HBFunctions.hb_job_init_json(hbHandle, title_index); + } + + public IntPtr hb_json_to_job(IntPtr hbHandle, IntPtr json_job) + { + return HBFunctions.hb_json_to_job(hbHandle, json_job); + } + + public int hb_add_json(IntPtr hbHandle, IntPtr json_job) + { + return HBFunctions.hb_add_json(hbHandle, json_job); + } + + public IntPtr hb_set_anamorphic_size_json(IntPtr json_param) + { + return HBFunctions.hb_set_anamorphic_size_json(json_param); + } + + public IntPtr hb_get_state_json(IntPtr hbHandle) + { + return HBFunctions.hb_get_state_json(hbHandle); + } + + public IntPtr hb_get_preview_params_json(int title_idx, int preview_idx, int deinterlace, ref hb_geometry_settings_s settings) + { + return HBFunctions.hb_get_preview_params_json(title_idx, preview_idx, deinterlace, ref settings); + } + + public void hb_presets_builtin_init() + { + HBFunctions.hb_presets_builtin_init(); + } + + public IntPtr hb_presets_builtin_get_json() + { + return HBFunctions.hb_presets_builtin_get_json(); + } + + public IntPtr hb_presets_read_file_json(IntPtr filename) + { + return HBFunctions.hb_presets_read_file_json(filename); + } + + public IntPtr hb_presets_current_version(IntPtr major, IntPtr minor, IntPtr micro) + { + return HBFunctions.hb_presets_current_version(major, minor, micro); + } + + public IntPtr hb_generate_filter_settings_json( + int filter_id, + [In] [MarshalAs(UnmanagedType.LPStr)] string preset, + [In] [MarshalAs(UnmanagedType.LPStr)] string tune, + [In] [MarshalAs(UnmanagedType.LPStr)] string custom) + { + return this.hb_generate_filter_settings_json(filter_id, preset, tune, custom); + } + + public IntPtr hb_filter_get_presets_json(int filter_id) + { + return HBFunctions.hb_filter_get_presets_json(filter_id); + } + + public IntPtr hb_filter_get_tunes_json(int filter_id) + { + return HBFunctions.hb_filter_get_tunes_json(filter_id); + } + } +} diff --git a/win/CS/HandBrake.Interop/Interop/HbLib/Wrappers/Interfaces/IHbFunctions.cs b/win/CS/HandBrake.Interop/Interop/HbLib/Wrappers/Interfaces/IHbFunctions.cs new file mode 100644 index 000000000..b876c9f16 --- /dev/null +++ b/win/CS/HandBrake.Interop/Interop/HbLib/Wrappers/Interfaces/IHbFunctions.cs @@ -0,0 +1,215 @@ +// -------------------------------------------------------------------------------------------------------------------- +// <copyright file="IHbFunctions.cs" company="HandBrake Project (http://handbrake.fr)"> +// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. +// </copyright> +// <summary> +// An interface to access the native libhb functions without using static methods. +// </summary> +// <auto-generated> Disable Stylecop Warnings for this file </auto-generated> +// -------------------------------------------------------------------------------------------------------------------- + +namespace HandBrake.Interop.Interop.HbLib.Wrappers.Interfaces +{ + using System; + using System.Runtime.InteropServices; + + public interface IHbFunctions + { + void hb_register_logger(LoggingCallback callback); + + void hb_register_error_handler(LoggingCallback callback); + + int hb_global_init(); + + int hb_global_init_no_hardware(); + + IntPtr hb_init(int verbose, int update_check); + + IntPtr hb_init_dl(int verbose, int update_check); + + IntPtr hb_get_version(IntPtr hbHandle); + + int hb_get_build(IntPtr hbHandle); + + IntPtr hb_dvd_name(IntPtr path); + + void hb_dvd_set_dvdnav(int enable); + + void hb_scan(IntPtr hbHandle, IntPtr path, int title_index, int preview_count, int store_previews, ulong min_duration); + + void hb_scan_stop(IntPtr hbHandle); + + IntPtr hb_get_titles(IntPtr hbHandle); + + void hb_set_anamorphic_size2(ref hb_geometry_s sourceGeometry, ref hb_geometry_settings_s uiGeometry, ref hb_geometry_s result); + + int hb_count(IntPtr hbHandle); + + IntPtr hb_job(IntPtr hbHandle, int jobIndex); + + void hb_rem(IntPtr hbHandle, IntPtr job); + + void hb_start(IntPtr hbHandle); + + void hb_pause(IntPtr hbHandle); + + void hb_resume(IntPtr hbHandle); + + void hb_stop(IntPtr hbHandle); + + void hb_close(IntPtr hbHandle); + + void hb_global_close(); + + IntPtr hb_list_init(); + + int hb_list_count(IntPtr listPtr); + + void hb_list_add(IntPtr listPtr, IntPtr item); + + void hb_list_insert(IntPtr listPtr, int pos, IntPtr item); + + void hb_list_rem(IntPtr listPtr, IntPtr item); + + IntPtr hb_list_item(IntPtr listPtr, int itemIndex); + + void hb_list_close(IntPtr listPtrPtr); + + int hb_subtitle_can_force(int source); + + int hb_subtitle_can_burn(int source); + + int hb_subtitle_can_pass(int source, int mux); + + int hb_video_framerate_get_from_name(IntPtr name); + + IntPtr hb_video_framerate_get_next(IntPtr last); + + IntPtr hb_audio_samplerate_get_next(IntPtr last); + + int hb_audio_samplerate_find_closest(int samplerate, uint codec); + + int hb_audio_bitrate_get_best(uint codec, int bitrate, int samplerate, int mixdown); + + int hb_audio_bitrate_get_default(uint codec, int samplerate, int mixdown); + + int hb_audio_bitrate_get_limits(uint codec, int samplerate, int mixdown, ref int low, ref int high); + + IntPtr hb_audio_bitrate_get_next(IntPtr last); + + void hb_video_quality_get_limits(uint codec, ref float low, ref float high, ref float granularity, ref int direction); + + IntPtr hb_video_quality_get_name(uint codec); + + void hb_audio_quality_get_limits(uint codec, ref float low, ref float high, ref float granularity, ref int direction); + + float hb_audio_quality_get_default(uint codec); + + void hb_audio_compression_get_limits(uint codec, ref float low, ref float high, ref float granularity, ref int direction); + + float hb_audio_compression_get_default(uint codec); + + int hb_audio_can_apply_drc2(IntPtr handle, int title_index, int audio_index, int encoder); + + int hb_mixdown_is_supported(int mixdown, uint codec, ulong layout); + + int hb_mixdown_has_codec_support(int mixdown, uint codec); + + int hb_mixdown_has_remix_support(int mixdown, ulong layout); + + int hb_mixdown_get_best(uint codec, ulong layout, int mixdown); + + int hb_mixdown_get_default(uint codec, ulong layout); + + IntPtr hb_mixdown_get_next(IntPtr last); + + IntPtr hb_video_encoder_get_next(IntPtr last); + + IntPtr hb_audio_encoder_get_next(IntPtr last); + + IntPtr hb_container_get_next(IntPtr last); + + IntPtr hb_video_encoder_get_presets(int encoder); + + IntPtr hb_video_encoder_get_tunes(int encoder); + + IntPtr hb_video_encoder_get_profiles(int encoder); + + IntPtr hb_video_encoder_get_levels(int encoder); + + IntPtr lang_get_next(IntPtr last); + + IntPtr lang_for_code2([In] [MarshalAs(UnmanagedType.LPStr)] string code2); + + void hb_job_close(IntPtr job); + + IntPtr hb_filter_get_keys(int filter_id); + + IntPtr hb_x264_encopt_name(IntPtr name); + + int hb_check_h264_level( + [In] [MarshalAs(UnmanagedType.LPStr)] string level, + int width, + int height, + int fps_num, + int fps_den, + int interlaced, + int fake_interlaced); + + IntPtr hb_x264_param_unparse( + int bit_depth, + [In] [MarshalAs(UnmanagedType.LPStr)] string x264_preset, + [In] [MarshalAs(UnmanagedType.LPStr)] string x264_tune, + [In] [MarshalAs(UnmanagedType.LPStr)] string x264_encopts, + [In] [MarshalAs(UnmanagedType.LPStr)] string x264_profile, + [In] [MarshalAs(UnmanagedType.LPStr)] string h264_level, + int width, + int height); + + int hb_qsv_available(); + + int hb_vce_h264_available(); + + int hb_vce_h265_available(); + + int hb_nvenc_h264_available(); + + int hb_nvenc_h265_available(); + + IntPtr hb_get_preview2(IntPtr hbHandle, int title_idx, int preview_idx, ref hb_geometry_settings_s geo, int deinterlace); + + IntPtr hb_image_close(IntPtr image); + + IntPtr hb_get_title_set_json(IntPtr hbHandle); + + IntPtr hb_job_init_json(IntPtr hbHandle, int title_index); + + IntPtr hb_json_to_job(IntPtr hbHandle, IntPtr json_job); + + int hb_add_json(IntPtr hbHandle, IntPtr json_job); + + IntPtr hb_set_anamorphic_size_json(IntPtr json_param); + + IntPtr hb_get_state_json(IntPtr hbHandle); + + IntPtr hb_get_preview_params_json(int title_idx, int preview_idx, int deinterlace, ref hb_geometry_settings_s settings); + + void hb_presets_builtin_init(); + + IntPtr hb_presets_builtin_get_json(); + + IntPtr hb_presets_read_file_json(IntPtr filename); + + IntPtr hb_presets_current_version(IntPtr major, IntPtr minor, IntPtr micro); + + IntPtr hb_generate_filter_settings_json( + int filter_id, + [In] [MarshalAs(UnmanagedType.LPStr)] string preset, + [In] [MarshalAs(UnmanagedType.LPStr)] string tune, + [In] [MarshalAs(UnmanagedType.LPStr)] string custom); + + IntPtr hb_filter_get_presets_json(int filter_id); + + IntPtr hb_filter_get_tunes_json(int filter_id); + } +} |