From: Ronald B. <rb...@us...> - 2003-05-30 22:32:55
|
CVS Root: /cvsroot/gstreamer Module: gst-plugins Changes by: rbultje Date: Fri May 30 2003 15:32:54 PDT Log message: Hm, let's not quit on these since the divx libs seem totally hosed Modified files: ext/divx : gstdivxdec.c gstdivxenc.c Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ext/divx/gstdivxdec.c.diff?r1=1.2&r2=1.3 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ext/divx/gstdivxenc.c.diff?r1=1.3&r2=1.4 ====Begin Diffs==== Index: gstdivxdec.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/ext/divx/gstdivxdec.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gstdivxdec.c 30 May 2003 21:44:53 -0000 1.2 +++ gstdivxdec.c 30 May 2003 22:32:41 -0000 1.3 @@ -418,7 +418,6 @@ g_warning("Version mismatch! This plugin was compiled for " "DivX version %d, while your library has version %d!", DECORE_VERSION, lib_version); - return FALSE; } /* create an elementfactory for the v4lmjpegsrcparse element */ Index: gstdivxenc.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/ext/divx/gstdivxenc.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gstdivxenc.c 30 May 2003 21:44:53 -0000 1.3 +++ gstdivxenc.c 30 May 2003 22:32:41 -0000 1.4 @@ -534,7 +534,6 @@ g_warning("Version mismatch! This plugin was compiled for " "DivX version %d, while your library has version %d!", ENCORE_VERSION, lib_version); - return FALSE; } if (!gst_library_load("gstvideo")) |
From: Ronald B. <rb...@us...> - 2003-06-01 13:20:51
|
CVS Root: /cvsroot/gstreamer Module: gst-plugins Changes by: rbultje Date: Sun Jun 01 2003 06:20:49 PDT Log message: This fixes a segfault on exit Modified files: ext/divx : gstdivxenc.c Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ext/divx/gstdivxenc.c.diff?r1=1.4&r2=1.5 ====Begin Diffs==== Index: gstdivxenc.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/ext/divx/gstdivxenc.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- gstdivxenc.c 30 May 2003 22:32:41 -0000 1.4 +++ gstdivxenc.c 1 Jun 2003 13:20:37 -0000 1.5 @@ -240,7 +240,7 @@ static gboolean gst_divxenc_setup (GstDivxEnc *divxenc) { - void *handle; + void *handle = NULL; SETTINGS output; DivXBitmapInfoHeader input; gdouble fps; @@ -306,7 +306,7 @@ gst_divxenc_unset (GstDivxEnc *divxenc) { if (divxenc->handle) { - encore(divxenc, ENC_OPT_RELEASE, NULL, NULL); + encore(divxenc->handle, ENC_OPT_RELEASE, NULL, NULL); divxenc->handle = NULL; } } |
From: Ronald B. <rb...@us...> - 2003-09-30 20:10:21
|
CVS Root: /cvsroot/gstreamer Module: gst-plugins Changes by: rbultje Date: Tue Sep 30 2003 13:10:18 PDT Log message: Improve quality of encoding and decoding quite a bit Modified files: ext/divx : gstdivxdec.c gstdivxenc.c Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ext/divx/gstdivxdec.c.diff?r1=1.8&r2=1.9 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ext/divx/gstdivxenc.c.diff?r1=1.9&r2=1.10 ====Begin Diffs==== Index: gstdivxdec.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/ext/divx/gstdivxdec.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- gstdivxdec.c 16 Sep 2003 09:59:52 -0000 1.8 +++ gstdivxdec.c 30 Sep 2003 20:10:05 -0000 1.9 @@ -220,6 +220,8 @@ /* initialize the handle */ memset(&xinit, 0, sizeof(DEC_INIT)); + xinit.smooth_playback = 0; + xinit.codec_version = 500; if ((ret = decore(&handle, DEC_OPT_INIT, &xinit, NULL)) != 0) { gst_element_error(GST_ELEMENT(divxdec), "Error initializing divx decoding library: %s (%d)", Index: gstdivxenc.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/ext/divx/gstdivxenc.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gstdivxenc.c 16 Sep 2003 09:59:52 -0000 1.9 +++ gstdivxenc.c 30 Sep 2003 20:10:05 -0000 1.10 @@ -272,17 +272,16 @@ input.biCompression = divxenc->csp; memset(&output, 0, sizeof(SETTINGS)); - output.vbr_mode = 0; + output.vbr_mode = RCMODE_VBV_1PASS; output.bitrate = divxenc->bitrate; output.quantizer = 0; - output.use_bidirect = 0; + output.use_bidirect = 1; output.input_clock = 0; output.input_frame_period = 1000000; output.internal_timescale = divxenc->fps * 1000000; output.max_key_interval = (divxenc->max_key_interval == -1) ? - (2 * divxenc->fps) : - divxenc->max_key_interval; - output.key_frame_threshold = 0; + 150 : divxenc->max_key_interval; + output.key_frame_threshold = 50; output.vbv_bitrate = 0; output.vbv_size = 0; output.vbv_occupancy = 0; @@ -290,16 +289,18 @@ output.deinterlace = 0; output.quality = divxenc->quality; output.data_partitioning = 0; - output.quarter_pel = 0; - output.use_gmc = 0; + output.quarter_pel = 1; + output.use_gmc = 1; output.psychovisual = 0; output.pv_strength_frame = 0; output.pv_strength_MB = 0; output.interlace_mode = 0; output.enable_crop = 0; output.enable_resize = 0; - output.temporal_enable = 0; - output.spatial_passes = 0; + output.temporal_enable = 1; + output.spatial_passes = 3; + output.spatial_level = 1.0; + output.temporal_level = 1.0; if ((ret = encore(&handle, ENC_OPT_INIT, &input, &output))) { gst_element_error(GST_ELEMENT(divxenc), |
From: Ronald B. <rb...@us...> - 2003-10-09 09:08:29
|
CVS Root: /cvsroot/gstreamer Module: gst-plugins Changes by: rbultje Date: Thu Oct 09 2003 02:08:28 PDT Log message: Fix more typos in Andy's GstData commit Modified files: ext/divx : gstdivxdec.c gstdivxenc.c Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ext/divx/gstdivxdec.c.diff?r1=1.10&r2=1.11 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ext/divx/gstdivxenc.c.diff?r1=1.11&r2=1.12 ====Begin Diffs==== Index: gstdivxdec.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/ext/divx/gstdivxdec.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- gstdivxdec.c 8 Oct 2003 16:07:36 -0000 1.10 +++ gstdivxdec.c 9 Oct 2003 09:08:15 -0000 1.11 @@ -98,7 +98,7 @@ static void gst_divxdec_init (GstDivxDec *divxdec); static void gst_divxdec_dispose (GObject *object); static void gst_divxdec_chain (GstPad *pad, - GstBuffer *buf); + GstData *data); static GstPadLinkReturn gst_divxdec_connect (GstPad *pad, GstCaps *vscapslist); static GstPadLinkReturn gst_divxdec_negotiate (GstDivxDec *divxdec); Index: gstdivxenc.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/ext/divx/gstdivxenc.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- gstdivxenc.c 8 Oct 2003 16:07:36 -0000 1.11 +++ gstdivxenc.c 9 Oct 2003 09:08:15 -0000 1.12 @@ -103,7 +103,7 @@ static void gst_divxenc_init (GstDivxEnc *divxenc); static void gst_divxenc_dispose (GObject *object); static void gst_divxenc_chain (GstPad *pad, - GstBuffer *buf); + GstData *data); static GstPadLinkReturn gst_divxenc_connect (GstPad *pad, GstCaps *vscapslist); |
From: Ronald B. <rb...@us...> - 2003-11-02 20:38:04
|
CVS Root: /cvsroot/gstreamer Module: gst-plugins Changes by: rbultje Date: Sun Nov 02 2003 12:38:02 PST Log message: More Modified files: ext/divx : gstdivxdec.c gstdivxenc.c Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ext/divx/gstdivxdec.c.diff?r1=1.11&r2=1.12 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/ext/divx/gstdivxenc.c.diff?r1=1.12&r2=1.13 ====Begin Diffs==== Index: gstdivxdec.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/ext/divx/gstdivxdec.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- gstdivxdec.c 9 Oct 2003 09:08:15 -0000 1.11 +++ gstdivxdec.c 2 Nov 2003 20:37:50 -0000 1.12 @@ -32,11 +32,8 @@ GstElementDetails gst_divxdec_details = { "Divx decoder", "Codec/Video/Decoder", - "Commercial", "Divx decoder based on divxdecore", - VERSION, - "Ronald Bultje <rb...@ro...>", - "(C) 2003", + "Ronald Bultje <rb...@ro...>" }; GST_PAD_TEMPLATE_FACTORY(sink_template, @@ -94,6 +91,7 @@ }; +static void gst_divxdec_base_init (GstDivxDecClass *klass); static void gst_divxdec_class_init (GstDivxDecClass *klass); static void gst_divxdec_init (GstDivxDec *divxdec); static void gst_divxdec_dispose (GObject *object); @@ -145,7 +143,7 @@ { static const GTypeInfo divxdec_info = { sizeof(GstDivxDecClass), - NULL, + (GBaseInitFunc) gst_divxdec_base_init, NULL, (GClassInitFunc) gst_divxdec_class_init, NULL, @@ -163,6 +161,20 @@ static void +gst_divxdec_base_init (GstDivxDecClass *klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + GST_PAD_TEMPLATE_GET (sink_template)); + gst_element_class_add_pad_template (element_class, + GST_PAD_TEMPLATE_GET (src_template)); + + gst_element_class_set_details (element_class, &gst_divxdec_details); +} + + +static void gst_divxdec_class_init (GstDivxDecClass *klass) { GObjectClass *gobject_class = (GObjectClass *) klass; @@ -444,10 +456,8 @@ static gboolean -plugin_init (GModule *module, - GstPlugin *plugin) +plugin_init (GstPlugin *plugin) { - GstElementFactory *factory; int lib_version; lib_version = decore(NULL, DEC_OPT_VERSION, 0, 0); @@ -455,30 +465,24 @@ g_warning("Version mismatch! This plugin was compiled for " "DivX version %d, while your library has version %d!", DECORE_VERSION, lib_version); + return FALSE; } /* create an elementfactory for the v4lmjpegsrcparse element */ - factory = gst_element_factory_new("divxdec", GST_TYPE_DIVXDEC, - &gst_divxdec_details); - g_return_val_if_fail(factory != NULL, FALSE); - - /* add pad templates */ - gst_element_factory_add_pad_template(factory, - GST_PAD_TEMPLATE_GET(sink_template)); - gst_element_factory_add_pad_template(factory, - GST_PAD_TEMPLATE_GET(src_template)); - - gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (factory)); - - gst_element_factory_set_rank(factory, GST_ELEMENT_RANK_PRIMARY); - - return TRUE; + return gst_element_register(plugin, "divxdec", + GST_RANK_PRIMARY, GST_TYPE_DIVXDEC); } -GstPluginDesc plugin_desc = { +GST_PLUGIN_DEFINE ( GST_VERSION_MAJOR, GST_VERSION_MINOR, "divxdec", - plugin_init -}; + "DivX decoder", + plugin_init, + "5.03", + GST_LICENSE_UNKNOWN, + "(c) 2002 DivX Networks", + "divx4linux", + "http://www.divx.com/" +) Index: gstdivxenc.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/ext/divx/gstdivxenc.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- gstdivxenc.c 9 Oct 2003 09:08:15 -0000 1.12 +++ gstdivxenc.c 2 Nov 2003 20:37:50 -0000 1.13 @@ -33,11 +33,8 @@ GstElementDetails gst_divxenc_details = { "Divx encoder", "Codec/Video/Encoder", - "Commercial", "Divx encoder based on divxencore", - VERSION, - "Ronald Bultje <rb...@ro...>", - "(C) 2003", + "Ronald Bultje <rb...@ro...>" }; GST_PAD_TEMPLATE_FACTORY(sink_template, @@ -100,6 +97,7 @@ static void gst_divxenc_class_init (GstDivxEncClass *klass); +static void gst_divxenc_base_init (GstDivxEncClass *klass); static void gst_divxenc_init (GstDivxEnc *divxenc); static void gst_divxenc_dispose (GObject *object); static void gst_divxenc_chain (GstPad *pad, @@ -163,7 +161,7 @@ { static const GTypeInfo divxenc_info = { sizeof(GstDivxEncClass), - NULL, + (GBaseInitFunc) gst_divxenc_base_init, NULL, (GClassInitFunc) gst_divxenc_class_init, NULL, @@ -181,6 +179,20 @@ static void +gst_divxenc_base_init (GstDivxEncClass *klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + GST_PAD_TEMPLATE_GET (sink_template)); + gst_element_class_add_pad_template (element_class, + GST_PAD_TEMPLATE_GET (src_template)); + + gst_element_class_set_details (element_class, &gst_divxenc_details); +} + + +static void gst_divxenc_class_init (GstDivxEncClass *klass) { GstElementClass *gstelement_class; @@ -547,10 +559,8 @@ static gboolean -plugin_init (GModule *module, - GstPlugin *plugin) +plugin_init (GstPlugin *plugin) { - GstElementFactory *factory; int lib_version; lib_version = encore(NULL, ENC_OPT_VERSION, 0, 0); @@ -558,31 +568,24 @@ g_warning("Version mismatch! This plugin was compiled for " "DivX version %d, while your library has version %d!", ENCORE_VERSION, lib_version); - } - - if (!gst_library_load("gstvideo")) return FALSE; + } - /* create an elementfactory for the element */ - factory = gst_element_factory_new("divxenc", GST_TYPE_DIVXENC, - &gst_divxenc_details); - g_return_val_if_fail(factory != NULL, FALSE); - - /* add pad templates */ - gst_element_factory_add_pad_template(factory, - GST_PAD_TEMPLATE_GET(sink_template)); - gst_element_factory_add_pad_template(factory, - GST_PAD_TEMPLATE_GET(src_template)); - - gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (factory)); - - return TRUE; + /* create an elementfactory for the v4lmjpegsrcparse element */ + return gst_element_register(plugin, "divxenc", + GST_RANK_PRIMARY, GST_TYPE_DIVXENC); } -GstPluginDesc plugin_desc = { +GST_PLUGIN_DEFINE ( GST_VERSION_MAJOR, GST_VERSION_MINOR, "divxenc", - plugin_init -}; + "DivX encoder", + plugin_init, + "5.03", + GST_LICENSE_UNKNOWN, + "(c) 2002 DivX Networks", + "divx4linux", + "http://www.divx.com/" +) |