profile_chain_t *prch = opaque, *prch2;
profile_sharer_t *prsh = prch->prch_sharer;
- if (sm->sm_type == SMT_START)
+ if (sm->sm_type == SMT_START) {
+ if (!prsh->prsh_master)
+ prsh->prsh_master = prch;
prch->prch_stop = 0;
+ }
if (prch == prsh->prsh_master) {
if (sm->sm_type == SMT_STOP) {
streaming_pad_deliver(&t->s_streaming_pad,
streaming_msg_create_data(SMT_START,
service_build_stream_start(t)));
+ } else {
+ streaming_pad_deliver(&t->s_streaming_pad,
+ streaming_msg_create_code(SMT_STOP,
+ SM_CODE_NO_SERVICE));
}
pthread_mutex_unlock(&t->s_stream_mutex);