// --------------------------------------------------------------------------------------------------------------------
// <copyright file="hb_filter.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>
// <auto-generated> Disable Stylecop Warnings for this file  </auto-generated>
// --------------------------------------------------------------------------------------------------------------------

namespace HandBrake.Interop.HbLib
{
	using System;
	using System.Runtime.InteropServices;

	[StructLayout(LayoutKind.Sequential)]
	public struct hb_filter_object_s
	{
		public int id;
		public int enforce_order;
		public IntPtr name;
		public IntPtr settings;

		// Internal stuff we need to marshal
		public IntPtr init;
		public IntPtr work;
		public IntPtr close;
		public IntPtr info;
		public IntPtr fifo_in;
		public IntPtr fifo_out;
		public IntPtr subtitle;
		public IntPtr private_data;
		public IntPtr thread;
		public IntPtr done;
		public int status;
		public int chapter_val;
		public long chapter_time;
	}

	public enum hb_filter_ids
	{
		// First, filters that may change the framerate (drop or dup frames)
		HB_FILTER_DETELECINE = 1,
		HB_FILTER_DECOMB,
		HB_FILTER_DEINTERLACE,
		HB_FILTER_VFR,
		// Filters that must operate on the original source image are next
		HB_FILTER_DEBLOCK,
		HB_FILTER_DENOISE,
		HB_FILTER_RENDER_SUB,
		HB_FILTER_CROP_SCALE,
		// Finally filters that don't care what order they are in,
		// except that they must be after the above filters
		HB_FILTER_ROTATE,
	}
}
