static gboolean gst_vaapidecode_query (GstPad *pad, GstQuery *query) { GstVaapiDecode *decode = GST_VAAPIDECODE (gst_pad_get_parent_element (pad)); gboolean res; GST_DEBUG ("sharing display %p", decode->display); if (gst_vaapi_reply_to_query (query, decode->display)) res = TRUE; else res = gst_pad_query_default (pad, query); g_object_unref (decode); return res; }
static gboolean gst_vaapiencode_query (GstPad * pad, GstObject * parent, GstQuery * query) { GstVaapiPluginBase *const plugin = GST_VAAPI_PLUGIN_BASE (gst_pad_get_parent_element (pad)); gboolean success; GST_INFO_OBJECT (plugin, "query type %s", GST_QUERY_TYPE_NAME (query)); if (gst_vaapi_reply_to_query (query, plugin->display)) success = TRUE; else if (GST_PAD_IS_SINK (pad)) success = plugin->sinkpad_query (plugin->sinkpad, parent, query); else success = plugin->srcpad_query (plugin->srcpad, parent, query); gst_object_unref (plugin); return success; }