From dad9986cb4646c0090a9c8408c1a1d9e00869ae2 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Tue, 22 Nov 2005 20:07:47 +0000 Subject: Convert to fractional framerates. Original commit message from CVS: * ext/aalib/gstaasink.c: (gst_aasink_fixate): * gst/debug/gstnavigationtest.c: (gst_navigationtest_handle_src_event): * gst/videofilter/gstvideofilter.c: (gst_videofilter_format_get_structure), (gst_videofilter_setcaps), (gst_videofilter_init): * gst/videofilter/gstvideofilter.h: Convert to fractional framerates. --- gst/videofilter/gstvideofilter.c | 11 +++++++---- gst/videofilter/gstvideofilter.h | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'gst/videofilter') diff --git a/gst/videofilter/gstvideofilter.c b/gst/videofilter/gstvideofilter.c index 1c206294..89951bb9 100644 --- a/gst/videofilter/gstvideofilter.c +++ b/gst/videofilter/gstvideofilter.c @@ -147,7 +147,7 @@ gst_videofilter_format_get_structure (GstVideofilterFormat * format) gst_structure_set (structure, "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, "width", GST_TYPE_INT_RANGE, 1, G_MAXINT, - "framerate", GST_TYPE_DOUBLE_RANGE, 0.0, G_MAXDOUBLE, NULL); + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); return structure; } @@ -221,7 +221,7 @@ gst_videofilter_setcaps (GstPad * pad, GstCaps * caps) GstVideofilter *videofilter; GstStructure *structure; int width, height; - double framerate; + const GValue *framerate; int ret; videofilter = GST_VIDEOFILTER (GST_PAD_PARENT (pad)); @@ -234,7 +234,9 @@ gst_videofilter_setcaps (GstPad * pad, GstCaps * caps) ret = gst_structure_get_int (structure, "width", &width); ret &= gst_structure_get_int (structure, "height", &height); - ret &= gst_structure_get_double (structure, "framerate", &framerate); + + framerate = gst_structure_get_value (structure, "framerate"); + ret &= (framerate != NULL && GST_VALUE_HOLDS_FRACTION (framerate)); if (!ret) return FALSE; @@ -256,7 +258,7 @@ gst_videofilter_setcaps (GstPad * pad, GstCaps * caps) videofilter->to_height = height; videofilter->from_width = width; videofilter->from_height = height; - videofilter->framerate = framerate; + g_value_copy (framerate, &videofilter->framerate); gst_videofilter_setup (videofilter); @@ -288,6 +290,7 @@ gst_videofilter_init (GTypeInstance * instance, gpointer g_class) gst_pad_set_getcaps_function (videofilter->srcpad, gst_videofilter_getcaps); videofilter->inited = FALSE; + g_value_init (&videofilter->framerate, GST_TYPE_FRACTION); } static GstFlowReturn diff --git a/gst/videofilter/gstvideofilter.h b/gst/videofilter/gstvideofilter.h index 83d07e32..9923a2a7 100644 --- a/gst/videofilter/gstvideofilter.h +++ b/gst/videofilter/gstvideofilter.h @@ -75,7 +75,7 @@ struct _GstVideofilter { /* private */ gint from_buf_size; gint to_buf_size; - gdouble framerate; + GValue framerate; GstBuffer *in_buf; GstBuffer *out_buf; -- cgit