summaryrefslogtreecommitdiffstats
path: root/ext/xvid/gstxvidenc.h
diff options
context:
space:
mode:
authorMark Nauwelaerts <manauw@skynet.be>2006-05-12 09:28:15 +0000
committerWim Taymans <wim.taymans@gmail.com>2006-05-12 09:28:15 +0000
commit39f82f2f193807b9c894cf5145b4b09e7804186e (patch)
tree8b42b7efd2640b65029356aa9af0814523b6ec2a /ext/xvid/gstxvidenc.h
parentd7195fba1e23e23f52e320ba51f518b14cc3c5c0 (diff)
downloadgst-plugins-bad-39f82f2f193807b9c894cf5145b4b09e7804186e.tar.gz
gst-plugins-bad-39f82f2f193807b9c894cf5145b4b09e7804186e.tar.bz2
gst-plugins-bad-39f82f2f193807b9c894cf5145b4b09e7804186e.zip
ext/xvid/: xvid plugin to support more capabilities of XviD codec.
Original commit message from CVS: Patch by: Mark Nauwelaerts <manauw at skynet dot be> * ext/xvid/gstxvid.c: (gst_xvid_init), (gst_xvid_structure_to_csp), (gst_xvid_csp_to_caps), (gst_xvid_image_get_size), (gst_xvid_image_fill): * ext/xvid/gstxvid.h: * ext/xvid/gstxviddec.c: (gst_xviddec_class_init), (gst_xviddec_init), (gst_xviddec_reset), (gst_xviddec_unset), (gst_xviddec_handle_sink_event), (gst_xviddec_setup), (gst_xviddec_add_par), (gst_xviddec_negotiate), (gst_xviddec_decode), (gst_xviddec_chain), (gst_xviddec_flush_buffers), (gst_xviddec_src_getcaps), (gst_xviddec_src_link), (gst_xviddec_setcaps), (gst_xviddec_change_state): * ext/xvid/gstxviddec.h: * ext/xvid/gstxvidenc.c: (gst_xvidenc_profile_get_type), (gst_xvidenc_quant_type_get_type), (gst_xvidenc_pass_get_type), (gst_xvidenc_get_type), (gst_xvidenc_base_init), (gst_xvidenc_class_init), (gst_xvidenc_init), (gst_xvidenc_finalize), (gst_xvidenc_handle_sink_event), (gst_xvidenc_setup), (gst_xvidenc_setcaps), (gst_xvidenc_encode), (gst_xvidenc_chain), (gst_xvidenc_flush_buffers), (gst_xvidenc_set_property), (gst_xvidenc_get_property), (gst_xvidenc_change_state): * ext/xvid/gstxvidenc.h: xvid plugin to support more capabilities of XviD codec. Fixes #339462. Some more cleanups here and there.
Diffstat (limited to 'ext/xvid/gstxvidenc.h')
-rw-r--r--ext/xvid/gstxvidenc.h91
1 files changed, 73 insertions, 18 deletions
diff --git a/ext/xvid/gstxvidenc.h b/ext/xvid/gstxvidenc.h
index f016c629..9bdac5cb 100644
--- a/ext/xvid/gstxvidenc.h
+++ b/ext/xvid/gstxvidenc.h
@@ -23,10 +23,7 @@
#include <gst/gst.h>
#include "gstxvid.h"
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
+G_BEGIN_DECLS
#define GST_TYPE_XVIDENC \
(gst_xvidenc_get_type())
@@ -48,24 +45,84 @@ struct _GstXvidEnc {
/* pads */
GstPad *sinkpad, *srcpad;
+ /* xvid handle */
+ void *handle;
+
+ /* cache in place */
+ xvid_enc_frame_t *xframe_cache;
+
+ /* caps information */
+ gint csp;
+ gint width, height;
+ gint fbase;
+ gint fincr;
+ gint par_width;
+ gint par_height;
+
+ /* delayed buffers if bframe usage */
+ GQueue *delay;
+
/* encoding profile */
gint profile;
+ /* quantizer type; h263, MPEG */
+ gint quant_type;
+
+ /* encoding type; cbr, vbr, quant */
+ gint pass;
+
/* quality of encoded image */
gint bitrate;
- gint buffer_size;
+ gint quant;
- /* max number of B frames between I/P */
- gint max_b_frames;
-
- /* max key interval */
+ /* gop */
gint max_key_interval;
-
- /* xvid handle */
- void *handle;
- gint csp;
- gint width, height, stride;
- gint fps_n, fps_d;
+ gboolean closed_gop;
+
+ /* motion estimation */
+ gint motion;
+ gboolean me_chroma;
+ gint me_vhq;
+ gboolean me_quarterpel;
+
+ /* lumimasking */
+ gboolean lumimasking;
+
+ /* b-frames */
+ gint max_bframes;
+ gint bquant_ratio;
+ gint bquant_offset;
+ gint bframe_threshold;
+
+ /* misc */
+ gboolean gmc;
+ gboolean trellis;
+ gboolean interlaced;
+ gboolean cartoon;
+ gboolean greyscale;
+ gboolean hqacpred;
+
+ /* quantizer ranges */
+ gint max_iquant, min_iquant;
+ gint max_pquant, min_pquant;
+ gint max_bquant, min_bquant;
+
+ /* cbr (single pass) encoding */
+ gint reaction_delay_factor;
+ gint averaging_period;
+ gint buffer;
+
+ /* vbr (2pass) encoding */
+ gchar *filename;
+ gint keyframe_boost;
+ gint curve_compression_high;
+ gint curve_compression_low;
+ gint overflow_control_strength;
+ gint max_overflow_improvement;
+ gint max_overflow_degradation;
+ gint kfreduction;
+ gint kfthreshold;
+ gint container_frame_overhead;
};
struct _GstXvidEncClass {
@@ -77,8 +134,6 @@ struct _GstXvidEncClass {
GType gst_xvidenc_get_type(void);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_END_DECLS
#endif /* __GST_XVIDENC_H__ */