GNOME Bugzilla – Bug 529018
gst_ogm_parse_stream_header creates fraction value with wrong denominator argument width (64 bits)
Last modified: 2009-04-08 12:12:02 UTC
Please describe the problem: gst_ogm_parse_stream pases ogm->hdr.time_unit (which is gint64) directly to the gst_set_caps_simple for a GST_TYPE_FRACTION value. The arguments are passed va-style, but the eventual gst_value_set_fraction() expects and receives 32-bit integers. This is wrong, but it's mostly affecting the big endian machines because of the lack of byte reordering - gst_value_set_fraction() receives the most significant half of the denominator which will be 0 in most of the cases. Steps to reproduce: Actual results: Expected results: Does this happen every time? Other information:
2008-04-20 Sebastian Dröge <slomo@circular-chaos.org> * ext/ogg/gstogmparse.c: (gst_ogm_parse_stream_header): GST_TYPE_FRACTION contains gints so correctly cast gint64 arguments to vaargs functions to gint. Otherwise the fractions will get 0 set instead of the correct value on big endian systems. Fixes bug #529018.
*** Bug 466393 has been marked as a duplicate of this bug. ***