Make TRANSPORT_FEED_ error code -> string conversion centralized.
This commit is contained in:
parent
4de0ef733d
commit
315b389e2c
8 changed files with 54 additions and 84 deletions
|
@ -31,6 +31,7 @@
|
|||
#include "streaming.h"
|
||||
#include "dvr.h"
|
||||
#include "spawn.h"
|
||||
#include "transports.h"
|
||||
|
||||
typedef struct dvr_rec_stream {
|
||||
LIST_ENTRY(dvr_rec_stream) drs_link;
|
||||
|
@ -431,6 +432,9 @@ dvr_thread(void *aux)
|
|||
break;
|
||||
|
||||
case SMT_TRANSPORT_STATUS:
|
||||
if(sm->sm_code != TRANSPORT_FEED_VALID_PACKETS)
|
||||
dvr_rec_fatal_error(de, "Source problems: %s",
|
||||
transport_feed_status_to_text(sm->sm_code));
|
||||
break;
|
||||
|
||||
case SMT_NOSOURCE:
|
||||
|
|
31
src/htsp.c
31
src/htsp.c
|
@ -37,6 +37,7 @@
|
|||
#include "access.h"
|
||||
#include "htsp.h"
|
||||
#include "streaming.h"
|
||||
#include "transports.h"
|
||||
|
||||
#include "htsmsg_binary.h"
|
||||
|
||||
|
@ -1159,35 +1160,9 @@ htsp_subscription_transport_status(htsp_subscription_t *hs,
|
|||
{
|
||||
const char *err = NULL;
|
||||
|
||||
switch(status) {
|
||||
case TRANSPORT_FEED_UNKNOWN:
|
||||
return;
|
||||
if(status != TRANSPORT_FEED_VALID_PACKETS)
|
||||
err = transport_feed_status_to_text(status);
|
||||
|
||||
case TRANSPORT_FEED_NO_INPUT:
|
||||
err = "No data input from adapter detected";
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_NO_DEMUXED_INPUT:
|
||||
err = "No mux packets for this service";
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_RAW_INPUT:
|
||||
err = "Data received for service, "
|
||||
"but no packets could be reassembled";
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_NO_DESCRAMBLER:
|
||||
err = "No descrambler available for service";
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_NO_ACCESS:
|
||||
err = "Access denied";
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_VALID_PACKETS:
|
||||
err = NULL;
|
||||
break;
|
||||
}
|
||||
htsp_subscription_status(hs, err);
|
||||
}
|
||||
|
||||
|
|
|
@ -114,40 +114,12 @@ serviceprobe_thread(void *aux)
|
|||
if(sm->sm_type == SMT_TRANSPORT_STATUS) {
|
||||
status = sm->sm_code;
|
||||
|
||||
switch(status) {
|
||||
case TRANSPORT_FEED_UNKNOWN:
|
||||
break;
|
||||
run = 0;
|
||||
|
||||
case TRANSPORT_FEED_NO_INPUT:
|
||||
err = "No data input from adapter detected";
|
||||
run = 0;
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_NO_DEMUXED_INPUT:
|
||||
err = "No mux packets for this service";
|
||||
run = 0;
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_RAW_INPUT:
|
||||
err = "Data received for service, "
|
||||
"but no packets could be reassembled";
|
||||
run = 0;
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_NO_DESCRAMBLER:
|
||||
err = "No descrambler available for service";
|
||||
run = 0;
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_NO_ACCESS:
|
||||
err = "Access denied";
|
||||
run = 0;
|
||||
break;
|
||||
|
||||
case TRANSPORT_FEED_VALID_PACKETS:
|
||||
if(status == TRANSPORT_FEED_VALID_PACKETS) {
|
||||
err = NULL;
|
||||
run = 0;
|
||||
break;
|
||||
} else {
|
||||
err = transport_feed_status_to_text(status);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -72,8 +72,10 @@ subscription_link_transport(th_subscription_t *s, th_transport_t *t)
|
|||
streaming_target_deliver(s->ths_output, sm);
|
||||
|
||||
// Send a TRANSPORT_STATUS message to the subscription client
|
||||
sm = streaming_msg_create_code(SMT_TRANSPORT_STATUS, t->tht_feed_status);
|
||||
streaming_target_deliver(s->ths_output, sm);
|
||||
if(t->tht_feed_status != TRANSPORT_FEED_UNKNOWN) {
|
||||
sm = streaming_msg_create_code(SMT_TRANSPORT_STATUS, t->tht_feed_status);
|
||||
streaming_target_deliver(s->ths_output, sm);
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&t->tht_stream_mutex);
|
||||
}
|
||||
|
|
|
@ -666,25 +666,6 @@ transport_set_feed_status(th_transport_t *t, transport_feed_status_t newstatus)
|
|||
newstatus));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Table for status -> text conversion
|
||||
*/
|
||||
static struct strtab transportstatustab[] = {
|
||||
{ "Ok", TRANSPORT_FEED_VALID_PACKETS },
|
||||
{ "No input", TRANSPORT_FEED_NO_INPUT },
|
||||
{ "No descrambler", TRANSPORT_FEED_NO_DESCRAMBLER },
|
||||
{ "No access", TRANSPORT_FEED_NO_ACCESS },
|
||||
};
|
||||
|
||||
|
||||
const char *
|
||||
transport_status_to_text(int status)
|
||||
{
|
||||
return val2str(status, transportstatustab) ?: "Unknown";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate a message containing info about all components
|
||||
*
|
||||
|
@ -720,3 +701,39 @@ transport_build_stream_start_msg(th_transport_t *t)
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Table for status -> text conversion
|
||||
*/
|
||||
static struct strtab transportstatustab[] = {
|
||||
{ "Unknown",
|
||||
TRANSPORT_FEED_UNKNOWN },
|
||||
|
||||
{ "No data input from adapter detected",
|
||||
TRANSPORT_FEED_NO_INPUT},
|
||||
|
||||
{"No mux packets for this service",
|
||||
TRANSPORT_FEED_NO_DEMUXED_INPUT},
|
||||
|
||||
{"Data received for service, but no packets could be reassembled",
|
||||
TRANSPORT_FEED_RAW_INPUT},
|
||||
|
||||
{"No descrambler available for service",
|
||||
TRANSPORT_FEED_NO_DESCRAMBLER},
|
||||
|
||||
{"Access denied",
|
||||
TRANSPORT_FEED_NO_ACCESS},
|
||||
|
||||
{"OK",
|
||||
TRANSPORT_FEED_VALID_PACKETS},
|
||||
};
|
||||
|
||||
|
||||
const char *
|
||||
transport_feed_status_to_text(transport_feed_status_t status)
|
||||
{
|
||||
return val2str(status, transportstatustab) ?: "Unknown";
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ void transport_destroy(th_transport_t *t);
|
|||
void transport_set_feed_status(th_transport_t *t,
|
||||
transport_feed_status_t newstatus);
|
||||
|
||||
const char *transport_status_to_text(int status);
|
||||
const char *transport_feed_status_to_text(transport_feed_status_t status);
|
||||
|
||||
void transport_remove_subscriber(th_transport_t *t, th_subscription_t *s);
|
||||
|
||||
|
|
|
@ -322,7 +322,7 @@ typedef enum {
|
|||
/** No status known */
|
||||
TRANSPORT_FEED_UNKNOWN,
|
||||
|
||||
/** No input is received from source at all */
|
||||
/** No packets are received from source at all */
|
||||
TRANSPORT_FEED_NO_INPUT,
|
||||
|
||||
/** No input is received from source destined for this transport */
|
||||
|
|
|
@ -580,7 +580,7 @@ build_transport_msg(th_transport_t *t)
|
|||
htsmsg_add_str(r, "network", t->tht_networkname(t));
|
||||
htsmsg_add_str(r, "source", t->tht_sourcename(t));
|
||||
|
||||
htsmsg_add_str(r, "status", transport_status_to_text(t->tht_feed_status));
|
||||
htsmsg_add_str(r, "status", "");
|
||||
|
||||
video[0] = 0;
|
||||
audio[0] = 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue