// --------------------------------------------------------------------------------------------------------------------
//
// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
//
//
// Defines the hb_job_s type.
//
// Disable Stylecop Warnings for this file
// --------------------------------------------------------------------------------------------------------------------
namespace HandBrake.Interop.HbLib
{
using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct hb_job_s
{
/// int
public int sequence_id;
/// hb_title_t*
public IntPtr title;
public int feature;
/// int
public int chapter_start;
/// int
public int chapter_end;
/// int
public int chapter_markers;
/// int[4]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I4)]
public int[] crop;
/// int
public int deinterlace;
/// hb_list_t*
public IntPtr list_filter;
/// int
public int width;
/// int
public int height;
/// int
public int keep_ratio;
/// int
public int grayscale;
public hb_anamorphic_substruct anamorphic;
public int modulus;
/// int
public int maxWidth;
/// int
public int maxHeight;
/// int
public int vcodec;
/// float
public float vquality;
/// int
public int vbitrate;
/// int
public int vrate;
/// int
public int vrate_base;
/// int
public int cfr;
/// int
public int pass;
public int fastfirstpass;
public IntPtr x264_preset;
public IntPtr x264_tune;
public IntPtr advanced_opts;
public IntPtr h264_profile;
public IntPtr h264_level;
/// int
public int areBframes;
public int color_matrix_code;
public int color_prim;
public int color_transfer;
/// int
public int color_matrix;
public IntPtr list_chapter;
/// hb_list_t*
public IntPtr list_audio;
public int acodec_copy_mask;
public int acodec_fallback;
/// hb_list_t*
public IntPtr list_subtitle;
public IntPtr list_attachment;
public IntPtr metadata;
/// int
public int mux;
/// char*
[MarshalAs(UnmanagedType.LPStr)]
public string file;
/// int
public int largeFileSize;
/// int
public int mp4_optimize;
/// int
public int ipod_atom;
/// int
public int indepth_scan;
/// hb_subtitle_config_t->hb_subtitle_config_s
public hb_subtitle_config_s select_subtitle_config;
/// int
public int angle;
public int frame_to_start;
public long pts_to_start;
/// int
public int frame_to_stop;
/// int64_t->int
public long pts_to_stop;
/// int
public int start_at_preview;
/// int
public int seek_points;
/// uint32_t->unsigned int
public uint frames_to_skip;
public IntPtr av_qsv_context;
public int qsv_decode;
public int qsv_async_depth;
public qsv_enc_info_s qsv_enc_info;
// Padding for the part of the struct we don't care about marshaling.
[MarshalAs(UnmanagedType.ByValArray, SizeConst = MarshalingConstants.JobPaddingBytes, ArraySubType = UnmanagedType.U1)]
public byte[] padding;
}
}