static void gst_slvideo_update_caps (GstSLVideo * slvideo) { GstCaps *caps; // GStreamer will automatically convert colourspace if necessary. // GStreamer will automatically resize media to one of these enumerated // powers-of-two that we ask for (yay GStreamer!) caps = llgst_caps_from_string (SLV_ALLCAPS); llgst_caps_replace (&slvideo->caps, caps); }
/* initialize the new element * instantiate pads and add them to element * set functions * initialize structure */ static void gst_slvideo_init (GstSLVideo * filter, GstSLVideoClass * gclass) { filter->caps = NULL; filter->width = -1; filter->height = -1; // this is the info we share with the client app GST_OBJECT_LOCK(filter); filter->retained_frame_ready = FALSE; filter->retained_frame_data = NULL; filter->retained_frame_allocbytes = 0; filter->retained_frame_width = filter->width; filter->retained_frame_height = filter->height; filter->retained_frame_format = SLV_PF_UNKNOWN; GstCaps *caps = llgst_caps_from_string (SLV_ALLCAPS); llgst_caps_replace (&filter->caps, caps); filter->resize_forced_always = false; filter->resize_try_width = -1; filter->resize_try_height = -1; GST_OBJECT_UNLOCK(filter); }