sm = streaming_msg_create(SMT_DESCRAMBLE_INFO);
sm->sm_data = di;
- streaming_pad_deliver(&t->s_streaming_pad, sm);
+ streaming_service_deliver((service_t *)t, sm);
}
static void
LIST_FOREACH(s, &mmi->mmi_mux->mm_transports, s_active_link) {
pthread_mutex_lock(&s->s_stream_mutex);
- streaming_pad_deliver(&s->s_streaming_pad, streaming_msg_clone(&sm));
+ streaming_service_deliver(s, streaming_msg_clone(&sm));
pthread_mutex_unlock(&s->s_stream_mutex);
}
}
sm.sm_data = &sigstat;
LIST_FOREACH(svc, &mmi->mmi_mux->mm_transports, s_active_link) {
pthread_mutex_lock(&svc->s_stream_mutex);
- streaming_pad_deliver(&svc->s_streaming_pad, streaming_msg_clone(&sm));
+ streaming_service_deliver(svc, streaming_msg_clone(&sm));
pthread_mutex_unlock(&svc->s_stream_mutex);
}
mtimer_arm_rel(&lfe->sf_monitor_timer, satip_frontend_signal_cb,
sm.sm_type = SMT_MPEGTS;
sm.sm_data = pb;
- streaming_pad_deliver(&t->s_streaming_pad, streaming_msg_clone(&sm));
+ streaming_service_deliver((service_t *)t, streaming_msg_clone(&sm));
pktbuf_ref_dec(pb);
- service_set_streaming_status_flags((service_t*)t, TSS_PACKETS);
+ service_set_streaming_status_flags((service_t *)t, TSS_PACKETS);
t->s_streaming_live |= TSS_LIVE;
sbuf_reset(sb, 2*TS_REMUX_BUFSIZE);
LIST_FOREACH(svc, &mmi->mmi_mux->mm_transports, s_active_link) {
pthread_mutex_lock(&svc->s_stream_mutex);
- streaming_pad_deliver(&svc->s_streaming_pad, streaming_msg_clone(&sm));
+ streaming_service_deliver(svc, streaming_msg_clone(&sm));
pthread_mutex_unlock(&svc->s_stream_mutex);
}
}
th_pkt_t *pkt = pkt_alloc(st->es_type, sub, off, pts, pts, pts);
pkt->pkt_componentindex = st->es_index;
- streaming_pad_deliver(&t->s_streaming_pad, streaming_msg_create_pkt(pkt));
+ streaming_service_deliver((service_t *)t, streaming_msg_create_pkt(pkt));
/* Decrease our own reference to the packet */
pkt_ref_dec(pkt);
}
/* Forward packet */
- streaming_pad_deliver(&t->s_streaming_pad, streaming_msg_create_pkt(pkt));
+ streaming_service_deliver(t, streaming_msg_create_pkt(pkt));
/* Decrease our own reference to the packet */
pkt_ref_dec(pkt);
void
service_send_streaming_status(service_t *t)
{
+ streaming_message_t *sm;
lock_assert(&t->s_stream_mutex);
- streaming_pad_deliver(&t->s_streaming_pad,
- streaming_msg_create_code(SMT_SERVICE_STATUS,
- t->s_streaming_status));
+ sm = streaming_msg_create_code(SMT_SERVICE_STATUS, t->s_streaming_status);
+ streaming_service_deliver(t, sm);
}
/**
void
service_restart(service_t *t)
{
+ streaming_message_t *sm;
int had_components;
if(t->s_type != STYPE_STD)
service_build_filter(t);
if(TAILQ_FIRST(&t->s_filt_components) != NULL) {
- if (had_components)
- streaming_pad_deliver(&t->s_streaming_pad,
- streaming_msg_create_code(SMT_STOP,
- SM_CODE_SOURCE_RECONFIGURED));
-
- streaming_pad_deliver(&t->s_streaming_pad,
- streaming_msg_create_data(SMT_START,
- service_build_stream_start(t)));
+ if (had_components) {
+ sm = streaming_msg_create_code(SMT_STOP, SM_CODE_SOURCE_RECONFIGURED);
+ streaming_service_deliver(t, sm);
+ }
+ sm = streaming_msg_create_data(SMT_START, service_build_stream_start(t));
+ streaming_pad_deliver(&t->s_streaming_pad, sm);
t->s_running = 1;
} else {
- streaming_pad_deliver(&t->s_streaming_pad,
- streaming_msg_create_code(SMT_STOP,
- SM_CODE_NO_SERVICE));
+ sm = streaming_msg_create_code(SMT_STOP, SM_CODE_NO_SERVICE);
+ streaming_service_deliver(t, sm);
t->s_running = 0;
}
streaming_msg_free(sm);
}
+/**
+ *
+ */
+void
+streaming_service_deliver(service_t *t, streaming_message_t *sm)
+{
+ streaming_pad_deliver(&t->s_streaming_pad, sm);
+}
+
/**
*
*/
void streaming_pad_deliver(streaming_pad_t *sp, streaming_message_t *sm);
+void streaming_service_deliver(service_t *t, streaming_message_t *sm);
+
void streaming_msg_free(streaming_message_t *sm);
streaming_message_t *streaming_msg_clone(streaming_message_t *src);
// Link to service output
streaming_target_connect(&t->s_streaming_pad, &s->ths_input);
- streaming_pad_deliver(&t->s_streaming_pad,
- streaming_msg_create_code(SMT_GRACE,
- s->ths_postpone +
- t->s_grace_delay));
+ sm = streaming_msg_create_code(SMT_GRACE, s->ths_postpone + t->s_grace_delay);
+ streaming_service_deliver(t, sm);
if(s->ths_start_message != NULL && t->s_streaming_status & TSS_PACKETS) {