diff options
Diffstat (limited to 'util/scan/scan.c')
-rw-r--r-- | util/scan/scan.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/util/scan/scan.c b/util/scan/scan.c index 1b7a3e5..3058bdb 100644 --- a/util/scan/scan.c +++ b/util/scan/scan.c @@ -236,6 +236,17 @@ static struct transponder *find_transponder(uint32_t frequency) static void copy_transponder(struct transponder *d, struct transponder *s) { + struct list_head *pos; + struct service *service; + + if (d->transport_stream_id != s->transport_stream_id) { + /* propagate change to any already allocated services */ + list_for_each(pos, &d->services) { + service = list_entry(pos, struct service, list); + service->transport_stream_id = s->transport_stream_id; + } + } + d->network_id = s->network_id; d->original_network_id = s->original_network_id; d->transport_stream_id = s->transport_stream_id; |