diff --git a/src/dvr/dvr_rec.c b/src/dvr/dvr_rec.c index 904d7613..3b61430c 100644 --- a/src/dvr/dvr_rec.c +++ b/src/dvr/dvr_rec.c @@ -242,7 +242,7 @@ dvr_rec_fatal_error(dvr_entry_t *de, const char *fmt, ...) * */ static void -dvr_rec_start(dvr_entry_t *de, htsmsg_t *streams) +dvr_rec_start(dvr_entry_t *de, htsmsg_t *m) { dvr_rec_stream_t *drs; AVOutputFormat *fmt; @@ -255,10 +255,13 @@ dvr_rec_start(dvr_entry_t *de, htsmsg_t *streams) char urlname[512]; int err; htsmsg_field_t *f; - htsmsg_t *sub; + htsmsg_t *sub, *streams; const char *type, *lang; uint32_t idx; + if((streams = htsmsg_get_list(m, "streams")) == NULL) + abort(); + if(pvr_generate_filename(de) != 0) { dvr_rec_fatal_error(de, "Unable to create directories"); return; @@ -301,6 +304,7 @@ dvr_rec_start(dvr_entry_t *de, htsmsg_t *streams) av_set_parameters(fctx, NULL); + /** * Setup each stream */ @@ -368,6 +372,12 @@ dvr_rec_start(dvr_entry_t *de, htsmsg_t *streams) de->de_fctx = fctx; de->de_ts_offset = AV_NOPTS_VALUE; + + tvhlog(LOG_INFO, "dvr", + "%s - Recording from %s (%s)", + de->de_ititle, + htsmsg_get_str(m, "source"), htsmsg_get_str(m, "network")); + } diff --git a/src/htsp.c b/src/htsp.c index 29aae7d0..cf2b815c 100644 --- a/src/htsp.c +++ b/src/htsp.c @@ -1113,12 +1113,10 @@ htsp_stream_deliver(htsp_subscription_t *hs, th_pkt_t *pkt) * delivery start and all components. */ static void -htsp_subscription_start(htsp_subscription_t *hs, htsmsg_t *streams) +htsp_subscription_start(htsp_subscription_t *hs, htsmsg_t *m) { - htsmsg_t *m = htsmsg_create_map(); htsmsg_add_str(m, "method", "subscriptionStart"); htsmsg_add_u32(m, "subscriptionId", hs->hs_sid); - htsmsg_add_msg(m, "streams", streams); htsp_send(hs->hs_htsp, m, NULL, &hs->hs_q, 0); } diff --git a/src/subscriptions.c b/src/subscriptions.c index e1b29075..b4e32361 100644 --- a/src/subscriptions.c +++ b/src/subscriptions.c @@ -66,7 +66,9 @@ subscription_link_transport(th_subscription_t *s, th_transport_t *t) streaming_target_connect(&t->tht_streaming_pad, &s->ths_input); // Send a START message to the subscription client - sm = streaming_msg_create_msg(SMT_START, transport_build_stream_msg(t)); + sm = streaming_msg_create_msg(SMT_START, + transport_build_stream_start_msg(t)); + streaming_target_deliver(s->ths_output, sm); // Send a TRANSPORT_STATUS message to the subscription client diff --git a/src/transports.c b/src/transports.c index a906dc77..7f8fcd1f 100644 --- a/src/transports.c +++ b/src/transports.c @@ -687,15 +687,18 @@ transport_status_to_text(int status) * great care if you change anying. (Just adding is fine) */ htsmsg_t * -transport_build_stream_msg(th_transport_t *t) +transport_build_stream_start_msg(th_transport_t *t) { - htsmsg_t *streams, *c; + htsmsg_t *m, *streams, *c; th_stream_t *st; lock_assert(&t->tht_stream_mutex); + m = htsmsg_create_map(); + /* Setup each stream */ streams = htsmsg_create_list(); + LIST_FOREACH(st, &t->tht_components, st_link) { c = htsmsg_create_map(); htsmsg_add_u32(c, "index", st->st_index); @@ -704,7 +707,11 @@ transport_build_stream_msg(th_transport_t *t) htsmsg_add_str(c, "language", st->st_lang); htsmsg_add_msg(streams, NULL, c); } - return streams; + + htsmsg_add_msg(m, "streams", streams); + htsmsg_add_str(m, "network", t->tht_networkname(t)); + htsmsg_add_str(m, "source", t->tht_sourcename(t)); + return m; } diff --git a/src/transports.h b/src/transports.h index 9316e9c7..fcc321d5 100644 --- a/src/transports.h +++ b/src/transports.h @@ -80,7 +80,7 @@ transport_find_stream_by_pid(th_transport_t *t, int pid) return NULL; } -htsmsg_t *transport_build_stream_msg(th_transport_t *t); +htsmsg_t *transport_build_stream_start_msg(th_transport_t *t); #endif /* TRANSPORTS_H */