diff options
author | Andy Wingo <wingo@pobox.com> | 2006-04-21 15:50:28 +0000 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2006-04-21 15:50:28 +0000 |
commit | 48892690e6f9e09c278569d9efb98f4a9a2313eb (patch) | |
tree | c040d6e4f6d19dccb37e33064a32182e0dcc3a47 /ext/dv | |
parent | a945c1582d7d6fd39d6e30b2febaa4ef08c7fc4e (diff) |
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 <wingo@pobox.com>
* 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.
Diffstat (limited to 'ext/dv')
-rw-r--r-- | ext/dv/gstdv.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/ext/dv/gstdv.c b/ext/dv/gstdv.c index 55d5cf07..90947f46 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; |