package com.nativelibs4java.ffmpeg.avcodec;
import org.bridj.Pointer;
import org.bridj.StructObject;
import org.bridj.ann.Array;
import org.bridj.ann.Field;
import org.bridj.ann.Library;
/**
 * <i>native declaration : libavcodec/avcodec.h</i><br>
 * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
 * a tool written by <a href="http://ochafik.com/">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("avcodec") 
public class AVFrame extends StructObject {
	public AVFrame() {
		super();
	}
	public AVFrame(Pointer pointer) {
		super(pointer);
	}
	/// C type : uint8_t*[4]
	@Array({4}) 
	@Field(0) 
	public Pointer<Pointer<Byte > > data() {
		return this.io.getPointerField(this, 0);
	}
	/// C type : int[4]
	@Array({4}) 
	@Field(1) 
	public Pointer<Integer > linesize() {
		return this.io.getPointerField(this, 1);
	}
	/// C type : uint8_t*[4]
	@Array({4}) 
	@Field(2) 
	public Pointer<Pointer<Byte > > base() {
		return this.io.getPointerField(this, 2);
	}
	@Field(3) 
	public int key_frame() {
		return this.io.getIntField(this, 3);
	}
	@Field(3) 
	public AVFrame key_frame(int key_frame) {
		this.io.setIntField(this, 3, key_frame);
		return this;
	}
	public final int key_frame_$eq(int key_frame) {
		key_frame(key_frame);
		return key_frame;
	}
	@Field(4) 
	public int pict_type() {
		return this.io.getIntField(this, 4);
	}
	@Field(4) 
	public AVFrame pict_type(int pict_type) {
		this.io.setIntField(this, 4, pict_type);
		return this;
	}
	public final int pict_type_$eq(int pict_type) {
		pict_type(pict_type);
		return pict_type;
	}
	@Field(5) 
	public long pts() {
		return this.io.getLongField(this, 5);
	}
	@Field(5) 
	public AVFrame pts(long pts) {
		this.io.setLongField(this, 5, pts);
		return this;
	}
	public final long pts_$eq(long pts) {
		pts(pts);
		return pts;
	}
	@Field(6) 
	public int coded_picture_number() {
		return this.io.getIntField(this, 6);
	}
	@Field(6) 
	public AVFrame coded_picture_number(int coded_picture_number) {
		this.io.setIntField(this, 6, coded_picture_number);
		return this;
	}
	public final int coded_picture_number_$eq(int coded_picture_number) {
		coded_picture_number(coded_picture_number);
		return coded_picture_number;
	}
	@Field(7) 
	public int display_picture_number() {
		return this.io.getIntField(this, 7);
	}
	@Field(7) 
	public AVFrame display_picture_number(int display_picture_number) {
		this.io.setIntField(this, 7, display_picture_number);
		return this;
	}
	public final int display_picture_number_$eq(int display_picture_number) {
		display_picture_number(display_picture_number);
		return display_picture_number;
	}
	@Field(8) 
	public int quality() {
		return this.io.getIntField(this, 8);
	}
	@Field(8) 
	public AVFrame quality(int quality) {
		this.io.setIntField(this, 8, quality);
		return this;
	}
	public final int quality_$eq(int quality) {
		quality(quality);
		return quality;
	}
	@Field(9) 
	public int age() {
		return this.io.getIntField(this, 9);
	}
	@Field(9) 
	public AVFrame age(int age) {
		this.io.setIntField(this, 9, age);
		return this;
	}
	public final int age_$eq(int age) {
		age(age);
		return age;
	}
	@Field(10) 
	public int reference() {
		return this.io.getIntField(this, 10);
	}
	@Field(10) 
	public AVFrame reference(int reference) {
		this.io.setIntField(this, 10, reference);
		return this;
	}
	public final int reference_$eq(int reference) {
		reference(reference);
		return reference;
	}
	/// C type : int8_t*
	@Field(11) 
	public Pointer<Byte > qscale_table() {
		return this.io.getPointerField(this, 11);
	}
	/// C type : int8_t*
	@Field(11) 
	public AVFrame qscale_table(Pointer<Byte > qscale_table) {
		this.io.setPointerField(this, 11, qscale_table);
		return this;
	}
	/// C type : int8_t*
	public final Pointer<Byte > qscale_table_$eq(Pointer<Byte > qscale_table) {
		qscale_table(qscale_table);
		return qscale_table;
	}
	@Field(12) 
	public int qstride() {
		return this.io.getIntField(this, 12);
	}
	@Field(12) 
	public AVFrame qstride(int qstride) {
		this.io.setIntField(this, 12, qstride);
		return this;
	}
	public final int qstride_$eq(int qstride) {
		qstride(qstride);
		return qstride;
	}
	/// C type : uint8_t*
	@Field(13) 
	public Pointer<Byte > mbskip_table() {
		return this.io.getPointerField(this, 13);
	}
	/// C type : uint8_t*
	@Field(13) 
	public AVFrame mbskip_table(Pointer<Byte > mbskip_table) {
		this.io.setPointerField(this, 13, mbskip_table);
		return this;
	}
	/// C type : uint8_t*
	public final Pointer<Byte > mbskip_table_$eq(Pointer<Byte > mbskip_table) {
		mbskip_table(mbskip_table);
		return mbskip_table;
	}
	/// C type : int16_t[2]*[2]
	@Array({2}) 
	@Field(14) 
	public Pointer<Pointer<Pointer<Short > > > motion_val() {
		return this.io.getPointerField(this, 14);
	}
	/// C type : uint32_t*
	@Field(15) 
	public Pointer<Integer > mb_type() {
		return this.io.getPointerField(this, 15);
	}
	/// C type : uint32_t*
	@Field(15) 
	public AVFrame mb_type(Pointer<Integer > mb_type) {
		this.io.setPointerField(this, 15, mb_type);
		return this;
	}
	/// C type : uint32_t*
	public final Pointer<Integer > mb_type_$eq(Pointer<Integer > mb_type) {
		mb_type(mb_type);
		return mb_type;
	}
	@Field(16) 
	public byte motion_subsample_log2() {
		return this.io.getByteField(this, 16);
	}
	@Field(16) 
	public AVFrame motion_subsample_log2(byte motion_subsample_log2) {
		this.io.setByteField(this, 16, motion_subsample_log2);
		return this;
	}
	public final byte motion_subsample_log2_$eq(byte motion_subsample_log2) {
		motion_subsample_log2(motion_subsample_log2);
		return motion_subsample_log2;
	}
	/// C type : void*
	@Field(17) 
	public Pointer<? > opaque() {
		return this.io.getPointerField(this, 17);
	}
	/// C type : void*
	@Field(17) 
	public AVFrame opaque(Pointer<? > opaque) {
		this.io.setPointerField(this, 17, opaque);
		return this;
	}
	/// C type : void*
	public final Pointer<? > opaque_$eq(Pointer<? > opaque) {
		opaque(opaque);
		return opaque;
	}
	/// C type : uint64_t[4]
	@Array({4}) 
	@Field(18) 
	public Pointer<Long > error() {
		return this.io.getPointerField(this, 18);
	}
	@Field(19) 
	public int type() {
		return this.io.getIntField(this, 19);
	}
	@Field(19) 
	public AVFrame type(int type) {
		this.io.setIntField(this, 19, type);
		return this;
	}
	public final int type_$eq(int type) {
		type(type);
		return type;
	}
	@Field(20) 
	public int repeat_pict() {
		return this.io.getIntField(this, 20);
	}
	@Field(20) 
	public AVFrame repeat_pict(int repeat_pict) {
		this.io.setIntField(this, 20, repeat_pict);
		return this;
	}
	public final int repeat_pict_$eq(int repeat_pict) {
		repeat_pict(repeat_pict);
		return repeat_pict;
	}
	@Field(21) 
	public int qscale_type() {
		return this.io.getIntField(this, 21);
	}
	@Field(21) 
	public AVFrame qscale_type(int qscale_type) {
		this.io.setIntField(this, 21, qscale_type);
		return this;
	}
	public final int qscale_type_$eq(int qscale_type) {
		qscale_type(qscale_type);
		return qscale_type;
	}
	@Field(22) 
	public int interlaced_frame() {
		return this.io.getIntField(this, 22);
	}
	@Field(22) 
	public AVFrame interlaced_frame(int interlaced_frame) {
		this.io.setIntField(this, 22, interlaced_frame);
		return this;
	}
	public final int interlaced_frame_$eq(int interlaced_frame) {
		interlaced_frame(interlaced_frame);
		return interlaced_frame;
	}
	@Field(23) 
	public int top_field_first() {
		return this.io.getIntField(this, 23);
	}
	@Field(23) 
	public AVFrame top_field_first(int top_field_first) {
		this.io.setIntField(this, 23, top_field_first);
		return this;
	}
	public final int top_field_first_$eq(int top_field_first) {
		top_field_first(top_field_first);
		return top_field_first;
	}
	/// C type : AVPanScan*
	@Field(24) 
	public Pointer<AVPanScan > pan_scan() {
		return this.io.getPointerField(this, 24);
	}
	/// C type : AVPanScan*
	@Field(24) 
	public AVFrame pan_scan(Pointer<AVPanScan > pan_scan) {
		this.io.setPointerField(this, 24, pan_scan);
		return this;
	}
	/// C type : AVPanScan*
	public final Pointer<AVPanScan > pan_scan_$eq(Pointer<AVPanScan > pan_scan) {
		pan_scan(pan_scan);
		return pan_scan;
	}
	@Field(25) 
	public int palette_has_changed() {
		return this.io.getIntField(this, 25);
	}
	@Field(25) 
	public AVFrame palette_has_changed(int palette_has_changed) {
		this.io.setIntField(this, 25, palette_has_changed);
		return this;
	}
	public final int palette_has_changed_$eq(int palette_has_changed) {
		palette_has_changed(palette_has_changed);
		return palette_has_changed;
	}
	@Field(26) 
	public int buffer_hints() {
		return this.io.getIntField(this, 26);
	}
	@Field(26) 
	public AVFrame buffer_hints(int buffer_hints) {
		this.io.setIntField(this, 26, buffer_hints);
		return this;
	}
	public final int buffer_hints_$eq(int buffer_hints) {
		buffer_hints(buffer_hints);
		return buffer_hints;
	}
	/// C type : short*
	@Field(27) 
	public Pointer<Short > dct_coeff() {
		return this.io.getPointerField(this, 27);
	}
	/// C type : short*
	@Field(27) 
	public AVFrame dct_coeff(Pointer<Short > dct_coeff) {
		this.io.setPointerField(this, 27, dct_coeff);
		return this;
	}
	/// C type : short*
	public final Pointer<Short > dct_coeff_$eq(Pointer<Short > dct_coeff) {
		dct_coeff(dct_coeff);
		return dct_coeff;
	}
	/// C type : int8_t*[2]
	@Array({2}) 
	@Field(28) 
	public Pointer<Pointer<Byte > > ref_index() {
		return this.io.getPointerField(this, 28);
	}
	@Field(29) 
	public long reordered_opaque() {
		return this.io.getLongField(this, 29);
	}
	@Field(29) 
	public AVFrame reordered_opaque(long reordered_opaque) {
		this.io.setLongField(this, 29, reordered_opaque);
		return this;
	}
	public final long reordered_opaque_$eq(long reordered_opaque) {
		reordered_opaque(reordered_opaque);
		return reordered_opaque;
	}
	/// C type : void*
	@Field(30) 
	public Pointer<? > hwaccel_picture_private() {
		return this.io.getPointerField(this, 30);
	}
	/// C type : void*
	@Field(30) 
	public AVFrame hwaccel_picture_private(Pointer<? > hwaccel_picture_private) {
		this.io.setPointerField(this, 30, hwaccel_picture_private);
		return this;
	}
	/// C type : void*
	public final Pointer<? > hwaccel_picture_private_$eq(Pointer<? > hwaccel_picture_private) {
		hwaccel_picture_private(hwaccel_picture_private);
		return hwaccel_picture_private;
	}
	@Field(31) 
	public long pkt_pts() {
		return this.io.getLongField(this, 31);
	}
	@Field(31) 
	public AVFrame pkt_pts(long pkt_pts) {
		this.io.setLongField(this, 31, pkt_pts);
		return this;
	}
	public final long pkt_pts_$eq(long pkt_pts) {
		pkt_pts(pkt_pts);
		return pkt_pts;
	}
	@Field(32) 
	public long pkt_dts() {
		return this.io.getLongField(this, 32);
	}
	@Field(32) 
	public AVFrame pkt_dts(long pkt_dts) {
		this.io.setLongField(this, 32, pkt_dts);
		return this;
	}
	public final long pkt_dts_$eq(long pkt_dts) {
		pkt_dts(pkt_dts);
		return pkt_dts;
	}
}
