break;
case SMT_GRACE:
+ case SMT_NOSTART_WARN:
case SMT_SPEED:
case SMT_SKIP:
case SMT_SIGNAL_STATUS:
break;
case SMT_NOSTART:
+ case SMT_NOSTART_WARN:
htsp_subscription_status(hs, streaming_code2txt(sm->sm_code),
sm->sm_code ? _htsp_get_subscription_status(sm->sm_code) : NULL);
break;
case SMT_SERVICE_STATUS:
case SMT_SIGNAL_STATUS:
case SMT_NOSTART:
+ case SMT_NOSTART_WARN:
case SMT_MPEGTS:
case SMT_SPEED:
case SMT_SKIP:
case SMT_SERVICE_STATUS:
case SMT_SIGNAL_STATUS:
case SMT_NOSTART:
+ case SMT_NOSTART_WARN:
case SMT_MPEGTS:
case SMT_SKIP:
case SMT_SPEED:
case SMT_SERVICE_STATUS:
case SMT_SIGNAL_STATUS:
case SMT_NOSTART:
+ case SMT_NOSTART_WARN:
case SMT_MPEGTS:
streaming_target_deliver2(t->t_output, sm);
break;
case SMT_SERVICE_STATUS:
case SMT_SIGNAL_STATUS:
case SMT_NOSTART:
+ case SMT_NOSTART_WARN:
case SMT_MPEGTS:
case SMT_SPEED:
case SMT_SKIP:
case SMT_START:
case SMT_STOP:
+ case SMT_NOSTART_WARN:
case SMT_PACKET:
case SMT_GRACE:
case SMT_SKIP:
case SMT_STOP:
case SMT_SERVICE_STATUS:
case SMT_NOSTART:
+ case SMT_NOSTART_WARN:
dst->sm_code = src->sm_code;
break;
case SMT_EXIT:
case SMT_SERVICE_STATUS:
case SMT_NOSTART:
+ case SMT_NOSTART_WARN:
case SMT_SPEED:
break;
s->ths_testing_error = 0;
s->ths_current_instance = NULL;
service_instance_list_clear(&s->ths_instances);
+ sm = streaming_msg_create_code(SMT_NOSTART_WARN, error);
+ streaming_target_deliver(s->ths_output, sm);
continue;
}
/* No service available */
/* Unhandled */
case SMT_START:
case SMT_NOSTART:
+ case SMT_NOSTART_WARN:
case SMT_SERVICE_STATUS:
return -1;
break;
/* Status */
case SMT_GRACE:
case SMT_NOSTART:
+ case SMT_NOSTART_WARN:
case SMT_SERVICE_STATUS:
case SMT_TIMESHIFT_STATUS:
break;
*/
SMT_NOSTART,
+ /**
+ * Streaming unable to start (non-fatal).
+ *
+ * sm_code indicates reason. Scheduler will try to restart
+ */
+ SMT_NOSTART_WARN,
+
/**
* Raw MPEG TS data
*/
}
break;
+ case SMT_NOSTART_WARN:
case SMT_SKIP:
case SMT_SPEED:
case SMT_SIGNAL_STATUS: