From 1f0b6f35d5cd5a9fe7272c82e680eb2b84655015 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 17 Feb 2010 12:16:37 +0100 Subject: [PATCH] filesrc: Don't use expensive cast checks in _create _create() is a pad function set by ourselves, therefore we're sure basesrc is a GstFileSrc. Speeds up _create() by 17% and the total call by 8% (instruction calls measurements done with valgrind). Fixes #610246 --- plugins/elements/gstfilesrc.c | 2 +- plugins/elements/gstfilesrc.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c index 2c40c32b70..6aadc42125 100644 --- a/plugins/elements/gstfilesrc.c +++ b/plugins/elements/gstfilesrc.c @@ -898,7 +898,7 @@ gst_file_src_create (GstBaseSrc * basesrc, guint64 offset, guint length, GstFileSrc *src; GstFlowReturn ret; - src = GST_FILE_SRC (basesrc); + src = GST_FILE_SRC_CAST (basesrc); #ifdef HAVE_MMAP if (src->using_mmap) { diff --git a/plugins/elements/gstfilesrc.h b/plugins/elements/gstfilesrc.h index 3a3eee7c33..dbd6fe45fe 100644 --- a/plugins/elements/gstfilesrc.h +++ b/plugins/elements/gstfilesrc.h @@ -41,6 +41,7 @@ G_BEGIN_DECLS (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FILE_SRC)) #define GST_IS_FILE_SRC_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FILE_SRC)) +#define GST_FILE_SRC_CAST(obj) ((GstFileSrc*) obj) typedef struct _GstFileSrc GstFileSrc; typedef struct _GstFileSrcClass GstFileSrcClass;