static GstCaps *gst_dvd_spu_video_proxy_getcaps (GstPad * pad,
GstCaps * filter);
-static gboolean gst_dvd_spu_video_set_caps (GstPad * pad, GstCaps * caps);
+static gboolean gst_dvd_spu_video_set_caps (GstDVDSpu * dvdspu, GstPad * pad,
+ GstCaps * caps);
static GstFlowReturn gst_dvd_spu_video_chain (GstPad * pad, GstObject * parent,
GstBuffer * buf);
static gboolean gst_dvd_spu_video_event (GstPad * pad, GstObject * parent,
GstBuffer * buf);
static gboolean gst_dvd_spu_subpic_event (GstPad * pad, GstObject * parent,
GstEvent * event);
-static gboolean gst_dvd_spu_subpic_set_caps (GstPad * pad, GstCaps * caps);
+static gboolean gst_dvd_spu_subpic_set_caps (GstDVDSpu * dvdspu, GstPad * pad,
+ GstCaps * caps);
static void gst_dvd_spu_clear (GstDVDSpu * dvdspu);
static void gst_dvd_spu_flush_spu_info (GstDVDSpu * dvdspu,
}
static gboolean
-gst_dvd_spu_video_set_caps (GstPad * pad, GstCaps * caps)
+gst_dvd_spu_video_set_caps (GstDVDSpu * dvdspu, GstPad * pad, GstCaps * caps)
{
- GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (pad));
gboolean res = FALSE;
GstVideoInfo info;
gint i;
res = TRUE;
done:
- gst_object_unref (dvdspu);
return res;
}
GstCaps *caps;
gst_event_parse_caps (event, &caps);
- res = gst_dvd_spu_video_set_caps (pad, caps);
+ res = gst_dvd_spu_video_set_caps (dvdspu, pad, caps);
if (res)
res = gst_pad_push_event (dvdspu->srcpad, event);
else
GstCaps *caps;
gst_event_parse_caps (event, &caps);
- res = gst_dvd_spu_subpic_set_caps (pad, caps);
+ res = gst_dvd_spu_subpic_set_caps (dvdspu, pad, caps);
gst_event_unref (event);
break;
}
}
static gboolean
-gst_dvd_spu_subpic_set_caps (GstPad * pad, GstCaps * caps)
+gst_dvd_spu_subpic_set_caps (GstDVDSpu * dvdspu, GstPad * pad, GstCaps * caps)
{
- GstDVDSpu *dvdspu = GST_DVD_SPU (gst_pad_get_parent (pad));
gboolean res = FALSE;
GstStructure *s;
SpuInputType input_type;
DVD_SPU_UNLOCK (dvdspu);
res = TRUE;
done:
- gst_object_unref (dvdspu);
return res;
}