package com.nativelibs4java.ffmpeg.avfilter;
import com.nativelibs4java.ffmpeg.avcodec.AVFrame;
import com.nativelibs4java.ffmpeg.avcodec.AvcodecLibrary.AVMediaType;
import com.nativelibs4java.ffmpeg.avcodec.AvcodecLibrary.AVSampleFormat;
import com.nativelibs4java.ffmpeg.avutil.AVClass;
import com.nativelibs4java.ffmpeg.avutil.AVRational;
import com.nativelibs4java.ffmpeg.swscale.SwscaleLibrary.PixelFormat;
import org.bridj.BridJ;
import org.bridj.Pointer;
import org.bridj.ann.Library;
import org.bridj.ann.Ptr;
import org.bridj.ann.Runtime;
import org.bridj.cpp.CPPRuntime;
/**
 * Wrapper for library <b>avfilter</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("avfilter") 
@Runtime(CPPRuntime.class) 
public class AvfilterLibrary {
	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 : libavfilter/avfilter.h</i>
	public static final int AV_PERM_WRITE = (int)2;
	/// <i>native declaration : libavfilter/avfilter.h</i>
	public static final int LIBAVFILTER_VERSION_MICRO = (int)0;
	/// <i>native declaration : libavfilter/avfilter.h</i>
	public static final int AV_PERM_PRESERVE = (int)4;
	/// <i>native declaration : libavfilter/avfilter.h</i>
	public static final int LIBAVFILTER_VERSION_MAJOR = (int)1;
	/// <i>native declaration : libavfilter/avfilter.h</i>
	public static final int AV_PERM_NEG_LINESIZES = (int)32;
	/// <i>native declaration : libavfilter/avfilter.h</i>
	public static final int LIBAVFILTER_VERSION_MINOR = (int)74;
	/// <i>native declaration : libavfilter/avfilter.h</i>
	public static final int AV_PERM_REUSE = (int)8;
	/// <i>native declaration : libavfilter/avfilter.h</i>
	public static final int AV_PERM_REUSE2 = (int)16;
	/// <i>native declaration : libavfilter/avfilter.h</i>
	public static final int AV_PERM_READ = (int)1;
	public static native int av_vsrc_buffer_add_frame(Pointer<AVFilterContext > buffer_filter, Pointer<AVFrame > frame, long pts, AVRational pixel_aspect);
	public static native void ff_dprintf_ref(Pointer<? > ctx, Pointer<AVFilterBufferRef > ref, int end);
	public static native Pointer<Byte > ff_get_ref_perms_string(Pointer<Byte > buf, @Ptr long buf_size, int perms);
	public static native void ff_dprintf_link(Pointer<? > ctx, Pointer<AVFilterLink > link, int end);
	public static native int ff_avfilter_graph_check_validity(Pointer<AVFilterGraph > graphctx, Pointer<AVClass > log_ctx);
	public static native int ff_avfilter_graph_config_links(Pointer<AVFilterGraph > graphctx, Pointer<AVClass > log_ctx);
	public static native int ff_avfilter_graph_config_formats(Pointer<AVFilterGraph > graphctx, Pointer<AVClass > log_ctx);
	public static native void ff_avfilter_default_free_buffer(Pointer<AVFilterBuffer > buf);
	public static native void ff_gradfun_filter_line_c(Pointer<Byte > dst, Pointer<Byte > src, Pointer<Short > dc, int width, int thresh, Pointer<Short > dithers);
	public static native void ff_gradfun_blur_line_c(Pointer<Short > dc, Pointer<Short > buf, Pointer<Short > buf1, Pointer<Byte > src, int src_linesize, int width);
	public static native void ff_gradfun_filter_line_mmx2(Pointer<Byte > dst, Pointer<Byte > src, Pointer<Short > dc, int width, int thresh, Pointer<Short > dithers);
	public static native void ff_gradfun_filter_line_ssse3(Pointer<Byte > dst, Pointer<Byte > src, Pointer<Short > dc, int width, int thresh, Pointer<Short > dithers);
	public static native void ff_gradfun_blur_line_sse2(Pointer<Short > dc, Pointer<Short > buf, Pointer<Short > buf1, Pointer<Byte > src, int src_linesize, int width);
	public static native void avfilter_version();
	public static native Pointer<Byte > avfilter_configuration();
	public static native Pointer<Byte > avfilter_license();
	public static native Pointer<AVFilterBufferRef > avfilter_ref_buffer(Pointer<AVFilterBufferRef > ref, int pmask);
	public static native void avfilter_unref_buffer(Pointer<AVFilterBufferRef > ref);
	public static native Pointer<AVFilterFormats > avfilter_make_format_list(Pointer<Integer > fmts);
	public static native int avfilter_add_format(Pointer<Pointer<AVFilterFormats > > avff, int fmt);
	public static native Pointer<AVFilterFormats > avfilter_all_formats(AVMediaType type);
	public static native Pointer<AVFilterFormats > avfilter_merge_formats(Pointer<AVFilterFormats > a, Pointer<AVFilterFormats > b);
	public static native void avfilter_formats_ref(Pointer<AVFilterFormats > formats, Pointer<Pointer<AVFilterFormats > > ref);
	public static native void avfilter_formats_unref(Pointer<Pointer<AVFilterFormats > > ref);
	public static native void avfilter_formats_changeref(Pointer<Pointer<AVFilterFormats > > oldref, Pointer<Pointer<AVFilterFormats > > newref);
	public static native void avfilter_default_start_frame(Pointer<AVFilterLink > link, Pointer<AVFilterBufferRef > picref);
	public static native void avfilter_default_draw_slice(Pointer<AVFilterLink > link, int y, int h, int slice_dir);
	public static native void avfilter_default_end_frame(Pointer<AVFilterLink > link);
	public static native void avfilter_default_filter_samples(Pointer<AVFilterLink > link, Pointer<AVFilterBufferRef > samplesref);
	public static native int avfilter_default_config_output_link(Pointer<AVFilterLink > link);
	public static native int avfilter_default_config_input_link(Pointer<AVFilterLink > link);
	public static native Pointer<AVFilterBufferRef > avfilter_default_get_video_buffer(Pointer<AVFilterLink > link, int perms, int w, int h);
	public static native Pointer<AVFilterBufferRef > avfilter_default_get_audio_buffer(Pointer<AVFilterLink > link, int perms, AVSampleFormat sample_fmt, int size, long channel_layout, int planar);
	public static native void avfilter_set_common_formats(Pointer<AVFilterContext > ctx, Pointer<AVFilterFormats > formats);
	public static native int avfilter_default_query_formats(Pointer<AVFilterContext > ctx);
	public static native void avfilter_null_start_frame(Pointer<AVFilterLink > link, Pointer<AVFilterBufferRef > picref);
	public static native void avfilter_null_draw_slice(Pointer<AVFilterLink > link, int y, int h, int slice_dir);
	public static native void avfilter_null_end_frame(Pointer<AVFilterLink > link);
	public static native void avfilter_null_filter_samples(Pointer<AVFilterLink > link, Pointer<AVFilterBufferRef > samplesref);
	public static native Pointer<AVFilterBufferRef > avfilter_null_get_video_buffer(Pointer<AVFilterLink > link, int perms, int w, int h);
	public static native Pointer<AVFilterBufferRef > avfilter_null_get_audio_buffer(Pointer<AVFilterLink > link, int perms, AVSampleFormat sample_fmt, int size, long channel_layout, int planar);
	public static native int avfilter_link(Pointer<AVFilterContext > src, int srcpad, Pointer<AVFilterContext > dst, int dstpad);
	public static native int avfilter_config_links(Pointer<AVFilterContext > filter);
	public static native Pointer<AVFilterBufferRef > avfilter_get_video_buffer(Pointer<AVFilterLink > link, int perms, int w, int h);
	public static native Pointer<AVFilterBufferRef > avfilter_get_video_buffer_ref_from_arrays(Pointer<Pointer<Byte > > data, Pointer<Integer > linesize, int perms, int w, int h, PixelFormat format);
	public static native Pointer<AVFilterBufferRef > avfilter_get_audio_buffer(Pointer<AVFilterLink > link, int perms, AVSampleFormat sample_fmt, int size, long channel_layout, int planar);
	public static native int avfilter_request_frame(Pointer<AVFilterLink > link);
	public static native int avfilter_poll_frame(Pointer<AVFilterLink > link);
	public static native void avfilter_start_frame(Pointer<AVFilterLink > link, Pointer<AVFilterBufferRef > picref);
	public static native void avfilter_end_frame(Pointer<AVFilterLink > link);
	public static native void avfilter_draw_slice(Pointer<AVFilterLink > link, int y, int h, int slice_dir);
	public static native void avfilter_filter_samples(Pointer<AVFilterLink > link, Pointer<AVFilterBufferRef > samplesref);
	public static native void avfilter_register_all();
	public static native void avfilter_uninit();
	public static native int avfilter_register(Pointer<AVFilter > filter);
	public static native Pointer<AVFilter > avfilter_get_by_name(Pointer<Byte > name);
	public static native Pointer<Pointer<AVFilter > > av_filter_next(Pointer<Pointer<AVFilter > > filter);
	public static native int avfilter_open(Pointer<Pointer<AVFilterContext > > filter_ctx, Pointer<AVFilter > filter, Pointer<Byte > inst_name);
	public static native int avfilter_init_filter(Pointer<AVFilterContext > filter, Pointer<Byte > args, Pointer<? > opaque);
	public static native void avfilter_free(Pointer<AVFilterContext > filter);
	public static native int avfilter_insert_filter(Pointer<AVFilterLink > link, Pointer<AVFilterContext > filt, int filt_srcpad_idx, int filt_dstpad_idx);
	public static native void avfilter_insert_pad(int idx, Pointer<Integer > count, @Ptr long padidx_off, Pointer<Pointer<AVFilterPad > > pads, Pointer<Pointer<Pointer<AVFilterLink > > > links, Pointer<AVFilterPad > newpad);
	public static native Pointer<AVFilterGraph > avfilter_graph_alloc();
	public static native Pointer<AVFilterContext > avfilter_graph_get_filter(Pointer<AVFilterGraph > graph, Pointer<Byte > name);
	public static native int avfilter_graph_add_filter(Pointer<AVFilterGraph > graphctx, Pointer<AVFilterContext > filter);
	public static native int avfilter_graph_create_filter(Pointer<Pointer<AVFilterContext > > filt_ctx, Pointer<AVFilter > filt, Pointer<Byte > name, Pointer<Byte > args, Pointer<? > opaque, Pointer<AVFilterGraph > graph_ctx);
	public static native int avfilter_graph_config(Pointer<AVFilterGraph > graphctx, Pointer<AVClass > log_ctx);
	public static native void avfilter_graph_free(Pointer<AVFilterGraph > graph);
	public static native int avfilter_graph_parse(Pointer<AVFilterGraph > graph, Pointer<Byte > filters, Pointer<AVFilterInOut > inputs, Pointer<AVFilterInOut > outputs, Pointer<AVClass > log_ctx);
	public static native void ff_yadif_filter_line_mmx(Pointer<Byte > dst, Pointer<Byte > prev, Pointer<Byte > cur, Pointer<Byte > next, int w, int refs, int parity, int mode);
	public static native void ff_yadif_filter_line_sse2(Pointer<Byte > dst, Pointer<Byte > prev, Pointer<Byte > cur, Pointer<Byte > next, int w, int refs, int parity, int mode);
	public static native void ff_yadif_filter_line_ssse3(Pointer<Byte > dst, Pointer<Byte > prev, Pointer<Byte > cur, Pointer<Byte > next, int w, int refs, int parity, int mode);
	/// Undefined type
	public static interface init_state_enum {
		
	};
}
