From: Andy Wingo Date: Fri, 21 Apr 2006 15:50:28 +0000 (+0000) Subject: ext/dv/gstdv.c (plugin_init): libdv is a marginal decoder, at best, on big endian... X-Git-Tag: RELEASE-0_10_3~62 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=48892690e6f9e09c278569d9efb98f4a9a2313eb;p=platform%2Fupstream%2Fgst-plugins-good.git ext/dv/gstdv.c (plugin_init): libdv is a marginal decoder, at best, on big endian systems. Drop its rank in that case... Original commit message from CVS: 2006-04-21 Andy Wingo * ext/dv/gstdv.c (plugin_init): libdv is a marginal decoder, at best, on big endian systems. Drop its rank in that case. OTOH on x86 it's quite fine. See changes from today in gst-ffmpeg as well. --- diff --git a/ChangeLog b/ChangeLog index 9d3c9ef..4e162c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-04-21 Andy Wingo + + * ext/dv/gstdv.c (plugin_init): libdv is a marginal decoder, at + best, on big endian systems. Drop its rank in that case. OTOH on + x86 it's quite fine. See changes from today in gst-ffmpeg as well. + 2006-04-21 Michael Smith * configure.ac: diff --git a/ext/dv/gstdv.c b/ext/dv/gstdv.c index 55d5cf0..90947f4 100644 --- a/ext/dv/gstdv.c +++ b/ext/dv/gstdv.c @@ -28,12 +28,21 @@ static gboolean plugin_init (GstPlugin * plugin) { + GstRank dvdec_rank; + if (!gst_element_register (plugin, "dvdemux", GST_RANK_PRIMARY, gst_dvdemux_get_type ())) return FALSE; - if (!gst_element_register (plugin, "dvdec", GST_RANK_SECONDARY, - gst_dvdec_get_type ())) + /* libdv does not correctly play back videos on big-endian machines. also it's + only optimized properly on x86-32 and x86-64. */ +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + rank = GST_RANK_PRIMARY; +#else + rank = GST_RANK_MARGINAL; +#endif + + if (!gst_element_register (plugin, "dvdec", rank, gst_dvdec_get_type ())) return FALSE; return TRUE;