Hi I am trying to understand how the corking/uncorking events reach from PA module to PA applications/clients e.g gst-launch Say, we are corking the playback stream in module-cork-music-on-phone by calling : apply_cork(struct userdata *u, pa_sink *s, pa_sink_input *ignore, pa_bool_t cork) pa_sink_input_send_event(ignore, PA_STREAM_EVENT_REQUEST_CORK, NULL); (in sink-input.c) (pa_hook_fire(&i->core->hooks[PA_CORE_HOOK_SINK_INPUT_SEND_EVENT], &hook_data) (function then fire an hook) sink_input_send_event_hook_cb( pa_core *c, pa_sink_input_send_event_hook_data *data, struct userdata *u) ( in module-x11-cork-request, passing *data that contains cork event) now inside sink_input_send_event_hook_cb( ) ( in module-x11-cork-request ) there is an if-else check if (pa_streq(data->event, PA_STREAM_EVENT_REQUEST_CORK)) sym = XF86XK_AudioPause; else if (pa_streq(data->event, PA_STREAM_EVENT_REQUEST_UNCORK)) sym = XF86XK_AudioPlay; else return PA_HOOK_OK; further the same function is calling XTestFakeKeyEvent(display, code, True, CurrentTime); XSync(display, False); But it is not clear to me how the Cork/Uncork events then reach to PA client (say pulsesink or Gst-launch) and then where gst listens to these events and pause / resume gst pipeline accordingly ? Is pulsesink involved here somehow ? I can see gst_pulsering_stream_event_cb( ) function (inside pulsesink.c) handling PA_STREAM_EVENT_REQUEST_CORK but currently it is under #ifdef HAVE_PULSE_0_9_15 flag and disabled. Thanks in advance, Best Regards, Himanshu -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20110616/59ec89a1/attachment.htm>