void ApplicationSink::Priv::setCallbacks(ApplicationSink *self) { if (m_appsink) { if (self) { static GstAppSinkCallbacks callbacks = { &eos, &new_preroll, &new_buffer, &new_buffer_list }; gst_app_sink_set_callbacks(appSink(), &callbacks, self, NULL); } else { static GstAppSinkCallbacks callbacks = { &eos_noop, &new_preroll_noop, &new_buffer_noop, &new_buffer_list_noop }; gst_app_sink_set_callbacks(appSink(), &callbacks, NULL, NULL); } } }
bool __stdcall pn_init_extension(int iface_version, extensions::IPN* pn) { if(iface_version != PN_EXT_IFACE_VERSION) return false; g_pn = pn; // Do your initialisation stuff here... pn->GetGlobalOutputWindow()->AddToolOutput("Hello from the demo extension!"); extensions::IAppEventSinkPtr appSink(new AppEventSink()); pn->AddEventSink(appSink); Menu menu; pn->AddPluginMenuItems(&menu); return true; }