<div class="hts-doc-text">
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.
<p>
The execution order of commands is granted. It means that first rule
<dt>USE
<dd>Use this elementary stream.
- <dt>ONCE
- <dd>Use this elementary stream only once per service type.
- The language is distinguished, too.
- The first successfully compared rule wins.
+ <dt>ONE_TIME
+ <dd>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.
+ <p>
+ For the CA filter, this rule means that the new CA elementary stream
+ is added only if another CA is not already used.
+ </p>
+
<dt>EXCLUSIVE
<dd>Use only this elementary stream. No other elementary streams
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 }
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,
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;
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;