package com.nativelibs4java.ffmpeg.postproc;
import org.bridj.BridJ;
import org.bridj.Pointer;
import org.bridj.ann.Library;
import org.bridj.ann.Runtime;
import org.bridj.cpp.CPPRuntime;
import org.bridj.util.DefaultParameterizedType;
/**
 * Wrapper for library <b>postproc</b><br>
 * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
 * a tool written by <a href="http://ochafik.free.fr/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
 * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> or <a href="http://bridj.googlecode.com/">BridJ</a> .
 */
@Library("postproc") 
@Runtime(CPPRuntime.class) 
public class PostprocLibrary {
	static {
		BridJ.register();
	}
	/**
	 * Conversion Error : a.num<br>
	 * SKIPPED:<br>
	 * <i>native declaration : libavutil/rational.h</i><br>
	 * const int64_t tmp = a.num * (int64_t)b.den - b.num * (int64_t)a.den;
	 */
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int V_A_DEBLOCK = (int)1024;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_CPU_CAPS_ALTIVEC = (int)268435456;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int LINEAR_BLEND_DEINT_FILTER = (int)131072;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int H_A_DEBLOCK = (int)16384;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int LIBPOSTPROC_VERSION_MINOR = (int)2;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int H_DEBLOCK = (int)2;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_CPU_CAPS_3DNOW = (int)1073741824;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_CPU_CAPS_MMX2 = (int)536870912;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_FORMAT = (int)8;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_PICT_TYPE_QP2 = (int)16;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int FFMPEG_DEINT_FILTER = (int)4194304;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final String LIBPOSTPROC_IDENT = (String)"postproc";
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int LINEAR_IPOL_DEINT_FILTER = (int)65536;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int FORCE_QUANT = (int)2097152;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int LIBPOSTPROC_VERSION_MAJOR = (int)51;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int CUBIC_IPOL_DEINT_FILTER = (int)262144;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int TEMP_NOISE_FILTER = (int)1048576;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int V_DEBLOCK = (int)1;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int LOWPASS5_DEINT_FILTER = (int)8388608;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_QUALITY_MAX = (int)6;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int LEVEL_FIX = (int)8;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_CPU_CAPS_MMX = (int)-2147483648;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int CUBIC_BLEND_DEINT_FILTER = (int)32768;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int MEDIAN_DEINT_FILTER = (int)524288;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int V_X1_FILTER = (int)512;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int LIBPOSTPROC_VERSION_MICRO = (int)0;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int FULL_Y_RANGE = (int)32768;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int DERING = (int)4;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int H_X1_FILTER = (int)8192;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int LUM_V_DEBLOCK = (int)PostprocLibrary.V_DEBLOCK;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_FORMAT_411 = (int)(2 | PostprocLibrary.PP_FORMAT);
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_FORMAT_420 = (int)(17 | PostprocLibrary.PP_FORMAT);
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int LUM_DERING = (int)PostprocLibrary.DERING;
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_FORMAT_422 = (int)(1 | PostprocLibrary.PP_FORMAT);
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int CHROM_DERING = (int)(PostprocLibrary.DERING << 4);
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int LUM_LEVEL_FIX = (int)PostprocLibrary.LEVEL_FIX;
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int CHROM_LEVEL_FIX = (int)(PostprocLibrary.LEVEL_FIX << 4);
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int CHROM_V_DEBLOCK = (int)(PostprocLibrary.V_DEBLOCK << 4);
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int CHROM_H_DEBLOCK = (int)(PostprocLibrary.H_DEBLOCK << 4);
	/// <i>native declaration : libpostproc/postprocess.h</i>
	public static final int PP_FORMAT_444 = (int)(0 | PostprocLibrary.PP_FORMAT);
	/// <i>native declaration : libpostproc/postprocess_internal.h</i>
	public static final int LUM_H_DEBLOCK = (int)PostprocLibrary.H_DEBLOCK;
	public static native void postproc_version();
	public static native Pointer<Byte > postproc_configuration();
	public static native Pointer<Byte > postproc_license();
	public static native void pp_postprocess(Pointer<Pointer<Byte > > src, Pointer<Integer > srcStride, Pointer<Pointer<Byte > > dst, Pointer<Integer > dstStride, int horizontalSize, int verticalSize, Pointer<Byte > QP_store, int QP_stride, Pointer<? > mode, Pointer<? > ppContext, int pict_type);
	public static native Pointer<? > pp_get_mode_by_name_and_quality(Pointer<Byte > name, int quality);
	public static native void pp_free_mode(Pointer<? > mode);
	public static native Pointer<? > pp_get_context(int width, int height, int flags);
	public static native void pp_free_context(Pointer<? > ppContext);
	/**
	 * < a simple help text<br>
	 * C type : extern const char*
	 */
	public Pointer<Byte > pp_help() {
		try {
			return (Pointer<Byte >)BridJ.getNativeLibrary("postproc").getSymbolPointer("pp_help").as(org.bridj.util.DefaultParameterizedType.paramType(org.bridj.Pointer.class, java.lang.Byte.class)).get();
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	/**
	 * < a simple help text<br>
	 * C type : extern const char*
	 */
	public PostprocLibrary pp_help(Pointer<Byte > pp_help) {
		try {
			{
				BridJ.getNativeLibrary("postproc").getSymbolPointer("pp_help").as(org.bridj.util.DefaultParameterizedType.paramType(org.bridj.Pointer.class, java.lang.Byte.class)).set(pp_help);
				return this;
			}
		}catch (Throwable $ex$) {
			throw new RuntimeException($ex$);
		}
	}
	/// C type : extern const char*
	public final Pointer<Byte > pp_help_$eq(Pointer<Byte > pp_help) {
		pp_help(pp_help);
		return pp_help;
	}
}
