diff options
author | Mark Nauwelaerts <manauw@skynet.be> | 2006-05-12 09:28:15 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2006-05-12 09:28:15 +0000 |
commit | 39f82f2f193807b9c894cf5145b4b09e7804186e (patch) | |
tree | 8b42b7efd2640b65029356aa9af0814523b6ec2a /ext/xvid/gstxvidenc.h | |
parent | d7195fba1e23e23f52e320ba51f518b14cc3c5c0 (diff) | |
download | gst-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.h | 91 |
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__ */ |