diff --git a/docs/html/config_esfilter.html b/docs/html/config_esfilter.html index 4cdf15a2..9f4dff83 100644 --- a/docs/html/config_esfilter.html +++ b/docs/html/config_esfilter.html @@ -1,7 +1,7 @@
This table defines rules to filter and order the elementary streams -like video or audio from the input feed. +(PIDs) like video or audio from the input feed.

The execution order of commands is granted. It means that first rule @@ -90,10 +90,20 @@ The columns have the following functions:

USE
Use this elementary stream. -
ONCE -
Use this elementary stream only once per service type. - The language is distinguished, too. - The first successfully compared rule wins. +
ONE_TIME +
Use this elementary stream only one time per service type (like + video, audio, subtitles) and language. The first sucessfully + compared rule wins. For example, when one AC3 elementary stream + is marked to be used with 'eng' language and another rule with + the ONE_TIME action was matched, the new AC3 elementary stream + will not be added if the language for new AC3 elementary stream + is 'eng'. Note that the second rule might not have the language + filter (column) set. +

+ For the CA filter, this rule means that the new CA elementary stream + is added only if another CA is not already used. +

+
EXCLUSIVE
Use only this elementary stream. No other elementary streams diff --git a/src/esfilter.c b/src/esfilter.c index 6dabd87f..549d0606 100644 --- a/src/esfilter.c +++ b/src/esfilter.c @@ -85,7 +85,7 @@ esfilter_txt2class(const char *s) static struct strtab esfilteractiontab[] = { { "NONE", ESFA_NONE }, { "USE", ESFA_USE }, - { "ONCE", ESFA_ONCE }, + { "ONE_TIME", ESFA_ONE_TIME }, { "EXCLUSIVE", ESFA_EXCLUSIVE }, { "EMPTY", ESFA_EMPTY }, { "IGNORE", ESFA_IGNORE } diff --git a/src/esfilter.h b/src/esfilter.h index 38113406..8bb9f6aa 100644 --- a/src/esfilter.h +++ b/src/esfilter.h @@ -73,7 +73,7 @@ extern struct esfilter_entry_queue esfilters[]; typedef enum { ESFA_NONE = 0, ESFA_USE, /* use this stream */ - ESFA_ONCE, /* use this stream once per language */ + ESFA_ONE_TIME, /* use this stream once per language */ ESFA_EXCLUSIVE, /* use this stream exclusively */ ESFA_EMPTY, /* use this stream when no streams were added */ ESFA_IGNORE, diff --git a/src/service.c b/src/service.c index 25822580..0188a7a2 100644 --- a/src/service.c +++ b/src/service.c @@ -517,7 +517,7 @@ ca_ignore: ca->filter |= ESFM_IGNORE; st->es_filter |= ESFM_IGNORE; break; - case ESFA_ONCE: + case ESFA_ONE_TIME: TAILQ_FOREACH(st2, &t->s_components, es_link) if (st2->es_type == SCT_CA && (st2->es_filter & ESFM_USED) != 0) break; @@ -566,7 +566,7 @@ ca_ignore: ignore: st->es_filter |= ESFM_IGNORE; break; - case ESFA_ONCE: + case ESFA_ONE_TIME: TAILQ_FOREACH(st2, &t->s_components, es_link) { if (st == st2) continue;