winks: fix framerate fraction range mapping
authorChristian Berentsen <christian.berentsen@cisco.com>
Mon, 29 Nov 2010 12:47:11 +0000 (13:47 +0100)
committerOle André Vadla Ravnås <oravnas@cisco.com>
Fri, 10 Dec 2010 03:06:53 +0000 (04:06 +0100)
Min and max may be slightly different but compress to the same fraction.

sys/winks/ksvideohelpers.c

index 8399762..1772e5b 100644 (file)
@@ -309,6 +309,7 @@ ks_video_append_video_stream_cfg_fields (GstStructure * structure,
     const KS_VIDEO_STREAM_CONFIG_CAPS * vscc)
 {
   GValue val = { 0, };
+  gint64 min_n, min_d;
   gint64 max_n, max_d;
 
   g_return_val_if_fail (structure, FALSE);
@@ -335,16 +336,13 @@ ks_video_append_video_stream_cfg_fields (GstStructure * structure,
   }
 
   /* framerate */
+  compress_fraction (NANOSECONDS, vscc->MinFrameInterval, &min_n, &min_d);
   compress_fraction (NANOSECONDS, vscc->MaxFrameInterval, &max_n, &max_d);
 
-  if (vscc->MinFrameInterval == vscc->MaxFrameInterval) {
+  if (min_n == max_n && min_d == max_d) {
     g_value_init (&val, GST_TYPE_FRACTION);
     gst_value_set_fraction (&val, max_n, max_d);
   } else {
-    gint64 min_n, min_d;
-
-    compress_fraction (NANOSECONDS, vscc->MinFrameInterval, &min_n, &min_d);
-
     g_value_init (&val, GST_TYPE_FRACTION_RANGE);
     gst_value_set_fraction_range_full (&val, max_n, max_d, min_n, min_d);
   }