From ff1182f0bdba71efe2ba8750f20f8a6f55239fde Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Mon, 14 Jul 2003 06:31:26 +0000 Subject: Fix some weird-ass segfaults in xvid Original commit message from CVS: Fix some weird-ass segfaults in xvid --- ext/xvid/gstxvidenc.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'ext/xvid/gstxvidenc.c') diff --git a/ext/xvid/gstxvidenc.c b/ext/xvid/gstxvidenc.c index 5a4156ce..eb27b8ff 100644 --- a/ext/xvid/gstxvidenc.c +++ b/ext/xvid/gstxvidenc.c @@ -147,6 +147,23 @@ gst_xvidenc_class_init (GstXvidEncClass *klass) { GstElementClass *gstelement_class; GObjectClass *gobject_class; + XVID_INIT_PARAM xinit; + gint ret; + + /* set up xvid initially (function pointers, CPU flags) */ + memset(&xinit, 0, sizeof(XVID_INIT_PARAM)); + xinit.cpu_flags = 0; + if ((ret = xvid_init(NULL, 0, &xinit, NULL)) != XVID_ERR_OK) { + g_warning("Failed to initialize XviD: %s (%d)", + gst_xvid_error(ret), ret); + return; + } + + if (xinit.api_version != API_VERSION) { + g_warning("Xvid API version mismatch! %d.%d (that's us) != %d.%d (lib)", + (API_VERSION >> 8) & 0xff, API_VERSION & 0xff, + (xinit.api_version >> 8) & 0xff, xinit.api_version & 0xff); + } gobject_class = (GObjectClass *) klass; gstelement_class = (GstElementClass *) klass; -- cgit v1.2.1