diff -urp gst-plugins-base-base/gst-libs/gst/rtp/gstbasertpaudiopayload.c gst-plugins-base/gst-libs/gst/rtp/gstbasertpaudiopayload.c
--- gst-plugins-base-base/gst-libs/gst/rtp/gstbasertpaudiopayload.c	2007-03-15 12:25:53.000000000 -0400
+++ gst-plugins-base/gst-libs/gst/rtp/gstbasertpaudiopayload.c	2007-03-15 12:32:06.000000000 -0400
@@ -83,14 +83,6 @@ struct _GstBaseRTPAudioPayloadPrivate
   guint64 min_ptime;
 };
 
-#define DEFAULT_MIN_PTIME 0
-
-enum
-{
-  PROP_0,
-  PROP_MIN_PTIME
-};
-
 
 #define GST_BASE_RTP_AUDIO_PAYLOAD_GET_PRIVATE(o) \
   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GST_TYPE_BASE_RTP_AUDIO_PAYLOAD, \
@@ -114,15 +106,7 @@ static GstStateChangeReturn
 gst_base_rtp_payload_audio_change_state (GstElement * element,
     GstStateChange transition);
 static gboolean
-gst_base_rtp_payload_audio_handle_event (GstPad * pad, GstEvent * event,
-    gpointer data);
-
-static void
-gst_base_rtp_payload_audio_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec);
-static void
-gst_base_rtp_payload_audio_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec);
+gst_base_rtp_payload_audio_handle_event (GstPad * pad, GstEvent * event);
 
 GST_BOILERPLATE (GstBaseRTPAudioPayload, gst_base_rtp_audio_payload,
     GstBaseRTPPayload, GST_TYPE_BASE_RTP_PAYLOAD);
@@ -149,8 +133,6 @@ gst_base_rtp_audio_payload_class_init (G
   gobject_class->dispose =
       GST_DEBUG_FUNCPTR (gst_base_rtp_audio_payload_dispose);
 
-  gobject_class->set_property = gst_base_rtp_payload_audio_set_property;
-  gobject_class->get_property = gst_base_rtp_payload_audio_get_property;
 
   parent_class = g_type_class_ref (GST_TYPE_BASE_RTP_PAYLOAD);
 
@@ -159,11 +141,9 @@ gst_base_rtp_audio_payload_class_init (G
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_base_rtp_payload_audio_change_state);
+  gstbasertppayload_class->handle_event = 
+      GST_DEBUG_FUNCPTR (gst_base_rtp_payload_audio_handle_event);
 
-  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MIN_PTIME,
-      g_param_spec_int64 ("min-ptime", "Min packet time",
-          "Minimum duration of the packet data in ns (can't go above MTU)",
-          0, G_MAXINT64, DEFAULT_MIN_PTIME, G_PARAM_READWRITE));
 
   GST_DEBUG_CATEGORY_INIT (basertpaudiopayload_debug, "basertpaudiopayload", 0,
       "base audio RTP payloader");
@@ -173,9 +153,6 @@ static void
 gst_base_rtp_audio_payload_init (GstBaseRTPAudioPayload * basertpaudiopayload,
     GstBaseRTPAudioPayloadClass * klass)
 {
-  GstBaseRTPPayload *basertppayload =
-      GST_BASE_RTP_PAYLOAD (basertpaudiopayload);
-
   basertpaudiopayload->priv =
       GST_BASE_RTP_AUDIO_PAYLOAD_GET_PRIVATE (basertpaudiopayload);
 
@@ -192,8 +169,6 @@ gst_base_rtp_audio_payload_init (GstBase
 
   basertpaudiopayload->priv->adapter = gst_adapter_new ();
 
-  gst_pad_add_event_probe (basertppayload->sinkpad,
-      G_CALLBACK (gst_base_rtp_payload_audio_handle_event), NULL);
 }
 
 
@@ -382,7 +357,7 @@ gst_base_rtp_audio_payload_handle_frame_
 
   /* min number of bytes based on a given ptime, has to be a multiple
      of frame duration */
-  guint minptime_ms = basertpaudiopayload->priv->min_ptime / 1000000;
+  guint minptime_ms = basepayload->min_ptime / 1000000;
 
   minptime_octets = frame_size * (int) (minptime_ms / frame_duration);
 
@@ -510,8 +485,8 @@ gst_base_rtp_audio_payload_handle_sample
 
   /* min number of bytes based on a given ptime, has to be a multiple
      of sample rate */
-  minptime_octets = basertpaudiopayload->priv->min_ptime *
-      basepayload->clock_rate / (sample_size * GST_SECOND);
+  minptime_octets = basepayload->min_ptime * basepayload->clock_rate /
+      (sample_size * GST_SECOND);
 
   min_payload_len = MAX (minptime_octets, sample_size);
 
@@ -645,45 +620,8 @@ gst_base_rtp_payload_audio_change_state 
   return ret;
 }
 
-static void
-gst_base_rtp_payload_audio_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GstBaseRTPAudioPayload *basertpaudiopayload;
-
-  basertpaudiopayload = GST_BASE_RTP_AUDIO_PAYLOAD (object);
-
-  switch (prop_id) {
-    case PROP_MIN_PTIME:
-      basertpaudiopayload->priv->min_ptime = g_value_get_int64 (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gst_base_rtp_payload_audio_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec)
-{
-  GstBaseRTPAudioPayload *basertpaudiopayload;
-
-  basertpaudiopayload = GST_BASE_RTP_AUDIO_PAYLOAD (object);
-
-  switch (prop_id) {
-    case PROP_MIN_PTIME:
-      g_value_set_int64 (value, basertpaudiopayload->priv->min_ptime);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
 static gboolean
-gst_base_rtp_payload_audio_handle_event (GstPad * pad, GstEvent * event,
-    gpointer data)
+gst_base_rtp_payload_audio_handle_event (GstPad * pad, GstEvent * event)
 {
   GstBaseRTPAudioPayload *basertpaudiopayload;
   gboolean res = TRUE;
Only in gst-plugins-base/gst-libs/gst/rtp: gstbasertpaudiopayload.c.orig
diff -urp gst-plugins-base-base/gst-libs/gst/rtp/gstbasertppayload.c gst-plugins-base/gst-libs/gst/rtp/gstbasertppayload.c
--- gst-plugins-base-base/gst-libs/gst/rtp/gstbasertppayload.c	2007-03-05 12:23:52.000000000 -0500
+++ gst-plugins-base/gst-libs/gst/rtp/gstbasertppayload.c	2007-03-15 12:30:26.000000000 -0400
@@ -44,6 +44,7 @@ enum
 #define DEFAULT_TIMESTAMP_OFFSET        -1
 #define DEFAULT_SEQNUM_OFFSET           -1
 #define DEFAULT_MAX_PTIME               -1
+#define DEFAULT_MIN_PTIME               0
 
 enum
 {
@@ -54,6 +55,7 @@ enum
   PROP_TIMESTAMP_OFFSET,
   PROP_SEQNUM_OFFSET,
   PROP_MAX_PTIME,
+  PROP_MIN_PTIME,
   PROP_TIMESTAMP,
   PROP_SEQNUM
 };
@@ -150,6 +152,10 @@ gst_basertppayload_class_init (GstBaseRT
       g_param_spec_int64 ("max-ptime", "Max packet time",
           "Maximum duration of the packet data in ns (-1 = unlimited up to MTU)",
           -1, G_MAXINT64, DEFAULT_MAX_PTIME, G_PARAM_READWRITE));
+  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MIN_PTIME,
+      g_param_spec_int64 ("min-ptime", "Min packet time",
+          "Minimum duration of the packet data in ns (can't go above MTU)",
+          0, G_MAXINT64, DEFAULT_MIN_PTIME, G_PARAM_READWRITE));
 
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TIMESTAMP,
       g_param_spec_uint ("timestamp", "Timestamp",
@@ -201,6 +207,7 @@ gst_basertppayload_init (GstBaseRTPPaylo
   basertppayload->ssrc = DEFAULT_SSRC;
   basertppayload->ts_offset = DEFAULT_TIMESTAMP_OFFSET;
   basertppayload->max_ptime = DEFAULT_MAX_PTIME;
+  basertppayload->min_ptime = DEFAULT_MIN_PTIME;
 
   basertppayload->media = NULL;
   basertppayload->encoding_name = NULL;
@@ -253,9 +260,20 @@ static gboolean
 gst_basertppayload_event (GstPad * pad, GstEvent * event)
 {
   GstBaseRTPPayload *basertppayload;
+  GstBaseRTPPayloadClass *basertppayload_class;
   gboolean res;
 
   basertppayload = GST_BASE_RTP_PAYLOAD (gst_pad_get_parent (pad));
+  basertppayload_class = GST_BASE_RTP_PAYLOAD_GET_CLASS (basertppayload);
+
+  if (basertppayload_class->handle_event) {
+    res = basertppayload_class->handle_event (pad, event);
+    if (res) {
+      gst_object_unref (basertppayload);
+
+      return res;
+    }
+  }
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_START:
@@ -464,6 +482,9 @@ gst_basertppayload_set_property (GObject
     case PROP_MAX_PTIME:
       basertppayload->max_ptime = g_value_get_int64 (value);
       break;
+    case PROP_MIN_PTIME:
+      basertppayload->min_ptime = g_value_get_int64 (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -497,6 +518,9 @@ gst_basertppayload_get_property (GObject
     case PROP_MAX_PTIME:
       g_value_set_int64 (value, basertppayload->max_ptime);
       break;
+    case PROP_MIN_PTIME:
+      g_value_set_int64 (value, basertppayload->min_ptime);
+      break;
     case PROP_TIMESTAMP:
       g_value_set_uint (value, basertppayload->timestamp);
       break;
diff -urp gst-plugins-base-base/gst-libs/gst/rtp/gstbasertppayload.h gst-plugins-base/gst-libs/gst/rtp/gstbasertppayload.h
--- gst-plugins-base-base/gst-libs/gst/rtp/gstbasertppayload.h	2007-03-05 12:23:52.000000000 -0500
+++ gst-plugins-base/gst-libs/gst/rtp/gstbasertppayload.h	2007-03-15 12:31:05.000000000 -0400
@@ -78,8 +78,11 @@ struct _GstBaseRTPPayload
 
   GstSegment segment;
 
+  guint64  min_ptime;
+
   /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
+
+  gpointer _gst_reserved[GST_PADDING - (sizeof(guint64)/sizeof(gpointer))];
 };
 
 struct _GstBaseRTPPayloadClass
@@ -92,9 +95,10 @@ struct _GstBaseRTPPayloadClass
    * the RTP buffers */
   GstFlowReturn (*handle_buffer)        (GstBaseRTPPayload *payload, 
                                          GstBuffer *buffer);
+  gboolean      (*handle_event)         (GstPad * pad, GstEvent * event);
 
   /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
+  gpointer _gst_reserved[GST_PADDING-1];
 };
 
 GType           gst_basertppayload_get_type             (void);
